Computational Complexity

 

Creative Commons License
This work is licensed under a Creative Commons License.

Powered by Blogger™

Wednesday, August 22, 2007

 
Impact of Facebook platform on CS enrollment

Posted by GASARCH

(Guest Blog by Amir Michail) As you may know, the Facebook platform was launched recently amid great excitement. This API allows developers to integrate their web applications with Facebook, a popular social networking service, particularly among students.

So why is the Facebook platform interesting? And what does it have to do with CS enrollment?

Web 2.0 entrepreneurs aim to attract millions of users to their service. The Facebook platform facilitates this by creating a highly viral environment for spreading a web service by leveraging the social network graph. In particular, when a Facebook user uses an application, his/her friends in the social network graph will know about it automatically and they might use it too, thus automatically informing their friends, and so on.

The Facebook platform may very well boost CS enrollment. After all, who cares about an uncertain job market when what you really want to do is to pursue your own startup and make millions?

For more on the Facebook platform and its potential, see this excellent keynote by Facebook's CEO Mark Zuckerberg: excellent keynote by Facebook's CEO Mark Zuckerberg

Now a question for you: as educators, what can you do to take advantage of this phenomenon to increase CS enrollment?

2:16 PM #

  1. Blogger Amir Michail says:  
    A nice way to explore app popularity on Facebook:

    http://apps.facebook.com/appsaholic/

    If you don't have a Facebook account, see:

    http://appaholic.com/

    It's interesting to note that some of the most popular apps are ones that you can code in a week or two.

    But it takes some skill to know what sorts of things Facebook users would like.

  2. Anonymous Anonymous says:  

  3. Anonymous Anonymous says:  
    It's not clear why an undergraduate CS education is relevant to any of this. I can't imagine that any knowledge beyond what is taught in a typical intro CS sequence is needed to make Facebook apps, or to "pursue your own startup and make millions". (In particular, the founder of Facebook dropped out and is doing quite nicely...)

  4. Blogger Amir Michail says:  
    It's not clear why an undergraduate CS education is relevant to any of this. I can't imagine that any knowledge beyond what is taught in a typical intro CS sequence is needed to make Facebook apps, or to "pursue your own startup and make millions". (In particular, the founder of Facebook dropped out and is doing quite nicely...)

    I'm assuming here that you would like to attract more students to CS.

    Not all students can learn things on their own.

    Moreover, take the uncertain job market out of the equation. Focus more on startups.

    Finally, developing a successful Facebook app is a hit and miss thing: you build an app and see if it spreads. If it doesn't, you try something else.

    Maybe there are more scientific ways to predict what sorts of apps are likely to spread. And this would be a useful thing for students to learn.

  5. Blogger Amir Michail says:  
    I should also add that web entrepreneurs would benefit from a multidisciplinary education including courses in psychology and sociology.

    And of course, such an education would be more compelling if such courses were adapted to a web context.

    Also see:

    http://jdupuis.blogspot.com/2007/05/web-science-provocative-invitation-to.html

  6. Anonymous Bram Cohen says:  
    Uh, not that many web entrepeneurs actually *graduated* in CS. Many of them attended CS programs for a bit, but the dropout rate is quite amazingly high.

  7. Blogger Amir Michail says:  
    Uh, not that many web entrepeneurs actually *graduated* in CS. Many of them attended CS programs for a bit, but the dropout rate is quite amazingly high.

    What changes do you think would make a CS program worthwhile for entrepreneurs?

  8. Anonymous Anonymous says:  
    Uh, not that many web entrepeneurs actually *graduated* in CS. Many of them attended CS programs for a bit, but the dropout rate is quite amazingly high.

    Dropping out of a graduate CS program doesn't count.

    Would those web entrepreneurs rather hire CS Bachelors dropouts or grads?

  9. Anonymous Anonymous says:  

  10. Anonymous Bram Cohen says:  
    What changes do you think would make a CS program worthwhile for entrepreneurs?

    What most people really want is a software development program, not a computer science program. The mismatch is quite pronounced, with CS grads frequently never even using a real version control system, much less working on a useful project with multiple other people.

    Dropping out of a graduate CS program doesn't count.

    That's not what I was talking about.

    Would those web entrepreneurs rather hire CS Bachelors dropouts or grads?

    Some number prefer grads, but much less in other fields. I for one simply give people a coding challenge, which tells a lot more about peoples's skills than their resume. I've definitely interviewed people with 3.85 GPAs in their major who had no business passing an introductory programming course.

  11. Blogger Amir Michail says:  
    What most people really want is a software development program, not a computer science program. The mismatch is quite pronounced, with CS grads frequently never even using a real version control system, much less working on a useful project with multiple other people.

    Software engineering programs like that already exist.

    I would argue however that you would need to go much further than that and integrate other fields.

    Entrepreneurs need to know much more than implementation issues. They need to know about how typical web users think and interact with each other.

  12. Anonymous Anonymous says:  
    How many higher-ranking universities (say, top 25) in the U.S. offer a B.S. degree in software engineering? (M.S. degrees or certificates do not count, because they are mostly watered-down evening programs)

    A proper B.S. degree in software engineering, contrary to what you imply, would not just focus on programming.

    Curiously, the need to create software engineering programs was recognized in the east side of the atlantic long time ago. See e.g. the article by Parnas at doi.ieeecomputersociety.org/10.1109/52.805469

  13. Blogger Amir Michail says:  
    How many higher-ranking universities (say, top 25) in the U.S. offer a B.S. degree in software engineering? (M.S. degrees or certificates do not count, because they are mostly watered-down evening programs)

    I don't know, but that isn't really my point.

    A proper B.S. degree in software engineering, contrary to what you imply, would not just focus on programming.

    My point actually is that you really need much more than learning about implementation -- even CS is way too focused on implementation.

    See:

    http://www.cs.umd.edu/~ben/ShneidermanCACM6-2007.pdf

    In particular,

    "The social perspective pushes Web science researchers toward a deep understanding of the information and services users want. The disruptive shift involves moving away from studying the technology toward studying what users can do with the technology [7]. While computer scientists have found Moore’s Law to be a helpful measure of progress, Web scientists are more interested in counting page views and unique visitors. In short, the shift is from chips to clicks."

  14. Anonymous Bram Cohen says:  
    Amir, the self-proclaimed visionaries in that article you linked to are a bunch of bullshitters. If people want to learn about sociology/psychology they can major in some other field. If they want to learn about CS theory they can major in CS, and if they want to learn about programming they can work on projects on their own, but in terms of classes they're SOL.

  15. Blogger Amir Michail says:  
    Amir, the self-proclaimed visionaries in that article you linked to are a bunch of bullshitters. If people want to learn about sociology/psychology they can major in some other field. If they want to learn about CS theory they can major in CS, and if they want to learn about programming they can work on projects on their own, but in terms of classes they're SOL.

    One needs to make a distinction between people you would like to hire for your company and people who will be starting their own companies.

    For the former, you just want software engineers who will implement what you give them without debate.

    But the latter need a much broader sort of education. It's not enough to know how to implement stuff. You also need to understand people very well.

    And what's particularly exciting about Facebook is that one person can build apps and potentially make enough money to live on.

    Moreover, the implementation is no longer the bottleneck. Rather, it's knowing what to build that will spread quickly and attract lots of clicks.

  16. Anonymous Kamal Jain says:  
    To start a technology start-up you do not really need advance degree but only basic understanding of the modern technology and a creative mind besides a lot of emotional thingies such as a brave heart, passion, devotion ....


    But to make a start-up successful you generally need advanced skills. Those do come from training, either by education or by experience. After a founder has shown that the creative idea is worthwhile to pursue, he/she seeks/gets help from people with advanced skills.

    A company typicalls has one or two founders but hundreds or even thousands of other trained people. I would say university education is a major resource in making companies succeed.

  17. Blogger Amir Michail says:  
    To start a technology start-up you do not really need advance degree but only basic understanding of the modern technology and a creative mind besides a lot of emotional thingies such as a brave heart, passion, devotion ....


    But to make a start-up successful you generally need advanced skills. Those do come from training, either by education or by experience. After a founder has shown that the creative idea is worthwhile to pursue, he/she seeks/gets help from people with advanced skills.

    A company typicalls has one or two founders but hundreds or even thousands of other trained people. I would say university education is a major resource in making companies succeed.

    I think this is changing. Many successful Facebook apps are built by only one or two people.

    More generally, the web combined with cheaper technology is making it possible for almost everyone to attempt their own startup.

    So we are seeing a transformation from a world where almost everyone is an employee to one where almost everyone is an entrepreneur.

    And so it would make sense to consider a different sort of CS degree for entrepreneurs.

  18. Anonymous Kamal Jain says:  
    I am not sure Amir if it is changing. I am sure Facebook must have a tons of employees with advanced skills.

    Think of it this way, if it was not too hard to become a doctor then the doctor won't be charging huge fees. If it wasn't difficult to get medical experience, then expreinced doctors won't be making tons.

    And BTW, schools do teach enterpreuner skills. The course is called MBA. If writing facebook apps does not require CS skills but only enterpreuner skills then I suggest a budding enterpreuner to do MBA and take a course on two on CS on the side.

    There is always a scope of improvement, but I think the current CS curriculum is fine. What you are suggesting, i.e., making money on facebook app is closer to MBA than closer to CS. The CS here is to be able to write good and clean facebook apps.

  19. Blogger Amir Michail says:  
    And BTW, schools do teach enterpreuner skills. The course is called MBA. If writing facebook apps does not require CS skills but only enterpreuner skills then I suggest a budding enterpreuner to do MBA and take a course on two on CS on the side.

    An MBA would teach generic entrepreneur skills, not state of the art techniques for maximizing clicks.

    Why is it so important for CS to keep the people element out of its curriculum?

    Is it because that any science involving the study of people is invariably messy and less predictive?

  20. Anonymous Anonymous says:  
    Ack. The facebook apps destroyed a elegant user interface. The site turned into myspace overnight. If facebook had just decided to open up their API a la google maps to outside applications that would be one thing. But hosing the user interface of their own site is terrible.

  21. Blogger Amir Michail says:  
    I am not sure Amir if it is changing. I am sure Facebook must have a tons of employees with advanced skills.

    From the Facebook jobs page, "We serve over 30 billion page views a month, and we do it with fewer than 60 engineers."

    By contrast, the group for outside people developing Facebook apps has over 70,000 members.

    I predict that we will see many more companies "outsource" their development to entrepreneurs -- hence resulting in most people working for themselves.

  22. Anonymous Kamal Jain says:  
    Amir, what you are proposing is just a course on people management. By very nature it is a course should be run by a economics department and/or management department. And I do not see any argument to change CS curriculum in any way.

    When I did my CS degree, I did half the courses outside included two economics courses and one business management course.

    People management is not a CS subject and nor all CS schools have faculty capable of teaching this course. The people management departments would have faculty to offer such a course. I am sure if they do, CS departments will allow their students to take this course.

  23. Blogger Amir Michail says:  
    People management is not a CS subject and nor all CS schools have faculty capable of teaching this course. The people management departments would have faculty to offer such a course. I am sure if they do, CS departments will allow their students to take this course.

    Have you read this paper?

    http://www.cs.umd.edu/~ben/ShneidermanCACM6-2007.pdf

    How would a people management course help address the issues discussed in the paper?

  24. Anonymous Bram Cohen says:  
    Amir, the things you're interested in clearly don't even vaguely fall under the purview of computer science. Perhaps you would be interested in some classes in viral marketing.

  25. Anonymous Kamal Jain says:  
    I see this paper and found this interesting. But there are things which are neglected by the paper. First, I want to note that several of the questions the paper is asking have been well studied and answered in social sciences.

    Second, I like to note that I can make a better case of Crypto science, Algo science, Graphic science, ... than the case of web science this paper is making.

    Just like it is not important for all the CS students to specialize in crypto science, algo science, graphic science etc, it is not important for all CS students to specialize in web-science either.

    I interview two doen students every year and some of them in web-sciece. I find that people who want to specialize in web-science are well prepared. There are ample courses, universties offer which prepare students about web-science, just like they can specialize in crypto science.

    Sure some more courses can be added. But at this point web-science looks an area of specialization within CS just like any other area, such as graphics, crypto, complexity, algorithms,...

  26. Blogger Amir Michail says:  
    Amir, the things you're interested in clearly don't even vaguely fall under the purview of computer science. Perhaps you would be interested in some classes in viral marketing.

    These web topics are not currently a major focus of CS, but I would argue that they should be.

    Your comments seem to imply that you don't think there's much benefit in researching/teaching such topics from a web perspective.

    I disagree.

    Apparently, Jon Kleinberg disagrees as well:

    http://www.cs.cornell.edu/home/kleinber/

    And so do people at HP Labs:

    http://www.hpl.hp.com/research/idl/results.html

    And what do you think of Luis von Ahn's work? Is that CS?

    http://video.google.com/videoplay?docid=-8246463980976635143

    As for teaching, see:

    http://smg.media.mit.edu/classes.html

    An example of why this sort of work is helpful for entrepreneurs is mentioned in the paper I linked to in my previous comments:

    "However, I wish the authors of the Web science framework would go even further to address such challenges as developing descriptive theories to explain the wide variations in adoption of social computing projects and prescriptive models to guide implementers. For example, they should be trying to understand whether moderated online communities generate greater participation when discussions are kept on topic and when harsh language is prohibited. They should ask: Does moderation inhibit spirited debate, thereby undermining interest? And how can
    successful discussion groups grow by, say, a
    factor of a hundred yet preserve the intense participation of their
    originators?"

  27. Blogger Amir Michail says:  
    Sure some more courses can be added. But at this point web-science looks an area of specialization within CS just like any other area, such as graphics, crypto, complexity, algorithms,...

    Web science isn't even a major area of research/teaching yet. At the very least, universities should take it seriously as a specialization.

    Later, with more research results and experience with teaching, you could have a specialized degree.

    Just imagine one day marking student assignments based on how viral they are and how much money the students made from them.

  28. Anonymous Bram Cohen says:  
    Amir, I'm a very successful web entrepeneur and good friends with the authors of some of the most successful facebook apps. You keep pointing to these people who have no involvement in such things as if them having written stuff down is supposed to be impressive. It's not. It's just stupid. Now please, listen to my points, because I'm not going to repeat them again:

    1. There are skills in entrepeneurship outside of the purview of computer science. Those belong under, and are adequately covered by, marketing and business. Anyone who wants to learn about such things in school can take those classes. There is no need to add such things to CS programs.

    2. CS programs are a bad match for the type of job skills which most people want to get, which involves little if any theory and lots of coding experience on different kinds of projects. Such basic skills as how to work with others using version control and how to structure the schema of a database are frequently not covered at all, and many people get no experience in school with a program of more than a few hundred lines, and those are the things which need more emphasis.

    There's are some other issues, such as most school classes teaching things about how to structure large programs which are flat-out wrong, but that's a whole other discussion.

  29. Blogger Amir Michail says:  
    Amir, I'm a very successful web entrepeneur and good friends with the authors of some of the most successful facebook apps.

    Ok, then, what should I do to create a highly viral Facebook app?

  30. Anonymous Aaron Sterling says:  
    I'd like to provide a quote from the syllabus of our Computer Science 228 class, Intro to Java Structures (which is Java-based).

    Each problem statement for programming assignments may contain design issues that need further clarification. Finding these issues is part of the assignment. (This is much like the real world, where any interesting problem can not be specified exactly ahead of time. Getting clarifications is part of a programmer's job.)

    Our attempt to introduce the importance of communication is, perhaps, unusual, stemming from the fact that both the overall course coordinator and the head ta (me) used to be officers in software corporations. (In his case, he decided he loved teaching more than anything; in my case, after a career away from computing, I decided to "chase the dream" and finally prove some of the conjectures that had been banging around my head for years.)

    Amir, please accept in good spirit when I say you are coming across as shrill and defensive -- not good business practice :-) I have never met B. Cohen or K. Jain, but I have read things both have written and know a little about their accomplishments, and for you to pick an intellectual fight with either of them shows poor judgment.

    I am also suspicious of any attempt to "academize" teaching students how to create the next "big thing." It's already too easy to buy snake oil. Better to teach fundamentals, and how to think both rigorously and creatively.

    OMG, this is getting too long, but one more thing --- I can tell you do not have great business skills yourself, Amir, because you can't stop commenting. Not joking: it demonstrates a need to win every battle instead of looking ahead strategically. If you want a for-real, no-fooling suggestion for how to be a better communicator, I suggest you control yourself enough so you don't fire back some attacking response at me. I suppose we'll all see whether you believe my advice is of value.

  31. Anonymous Kamal Jain says:  
    Amir, I found the discussion interesting and found it a worthy use of time. Thanks to you for bringing in such an important explanatory topic.

    I do not think many worthy skills such as "enterpreunering" is commoditizable by education, just like any form of art is not. Surely fundamentals can always be taught and persumably a semester course can be prepared and taught on web-science.

    There is nothing more I have in order to add to this discussion. So I may not respond further. But would be reading any comment you or others might post.

  32. Anonymous Bram Cohen says:  
    Ok, then, what should I do to create a highly viral Facebook app?

    Figure it out for yourself. You seem to have plenty of links which offer suggestions.

  33. Anonymous Anonymous says:  
    I would really like to know how many ranks there are on CS for facebook and wich one its the higer rank

  34. Anonymous Anonymous says:  
    7aj te7ko... tawashtuna

Comment Feeds: This Post All

Links to this post:

Weblog Home

Archives