Wednesday, August 22, 2007

Impact of Facebook platform on CS enrollment

(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?

34 comments:

  1. 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.

    ReplyDelete
  2. 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...)

    ReplyDelete
  3. 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.

    ReplyDelete
  4. 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

    ReplyDelete
  5. 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.

    ReplyDelete
  6. 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?

    ReplyDelete
  7. 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?

    ReplyDelete
  8. 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.

    ReplyDelete
  9. 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.

    ReplyDelete
  10. 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

    ReplyDelete
  11. 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."

    ReplyDelete
  12. 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.

    ReplyDelete
  13. 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.

    ReplyDelete
  14. 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.

    ReplyDelete
  15. 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.

    ReplyDelete
  16. 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.

    ReplyDelete
  17. 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?

    ReplyDelete
  18. 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.

    ReplyDelete
  19. 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.

    ReplyDelete
  20. 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.

    ReplyDelete
  21. 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?

    ReplyDelete
  22. 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.

    ReplyDelete
  23. 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,...

    ReplyDelete
  24. 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?"

    ReplyDelete
  25. 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.

    ReplyDelete
  26. 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.

    ReplyDelete
  27. 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?

    ReplyDelete
  28. 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.

    ReplyDelete
  29. 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.

    ReplyDelete
  30. 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.

    ReplyDelete
  31. I would really like to know how many ranks there are on CS for facebook and wich one its the higer rank

    ReplyDelete
  32. 7aj te7ko... tawashtuna

    ReplyDelete