4 ms·
This is really good to hear. On campus, CS50 has a cult-like reputation. You'll regularly see CS50 t-shirts worn on campus; upperclassman insist that CS50 is o
by benesch 14y ago
This is really good to hear.
On campus, CS50 has a cult-like reputation. You'll regularly see CS50 t-shirts worn on campus; upperclassman insist that CS50 is one of those classes "you just have to take"; Malan is practically a celebrity. (I'll admit I was excited to spot him in CVS one day.)
But I've watched students struggle through CS50 on-campus and come out barely understanding C and never wanting to touch computer science again. A small percentage, but enough to make me wonder if CS50 is the best approach. There's no "intro to programming" course at Harvard—this is it. There's also no advanced first-semester CS course: only four or five kids a year will skip 50. So CS50 is forced to teach both kids who've never touched more than an internet browser and kids who've lived on the terminal. Starting with C isn't easy, and HTML/CSS/Javascript (and goddamit, PHP) are shoved into the last 20% of the class.
There was a study done a while back about why programming is so hard to learn. Wish I could find it. The researchers discovered something like a third of people picked up programming with little effort, a third could grok it with hard work, and the last third never had a chance. I think CS50 is great for the first two-thirds, but completely lacking for the last third. There's just too much material in too little time.
Based on your reaction to edX, I think there's significant potential here. A one-size-fits-all class works much better online since you can move at your own pace. I'm excited to see where this goes. First place might be an option to pay for human grading. It's awfully hard to learn from automated grading.
Also, David Malan and his TFs have literally dedicated their lives to this class. I went to a talk by Tommy MacWilliam (one of the head TFs and lead developers of the CS50 edX platform), and they've been working tirelessly for months to develop the UX at scale. They scrapped the standard edX format to truly optimize the experience for this class, and I'm glad it worked. [1] (Some of the apps were used on-campus first and had a few years in the wild.) Most of Malan's recent research has been on large-scale pedagogy. Interesting stuff. [2] [3]
PS. The appliance really is complete crap, isn't it? (For those unfamiliar, Malan puts together a VMWare Fusion image with a heavily stripped-down version of Fedora. It's got a command-line auto-submission tool and some other CS50-specific stuff as well.) Do yourself a favor and use a vanilla install of your favorite linux distro. It's a necessary effort to normalize hundreds of thousands of development environments, but god they managed to cripple Fedora.
[1] http://cs.harvard.edu/malan/publications/ccscne10.pdf http://cs.harvard.edu/malan/publications/ccscne10.pdf
[2] http://cs.harvard.edu/malan/publications/CMU.pdf http://cs.harvard.edu/malan/publications/CMU.pdf
[3] http://cs.harvard.edu/malan/publications/fp129-malan.pdf http://cs.harvard.edu/malan/publications/fp129-malan.pdf
- MaxGabriel 14y agoNot an exact match to the description, but are you referencing this study? http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html http://www.codinghorror.com/blog/2006/07/separating-programm...
- benesch 14y agoAh, yes, the paper Atwood mentions is the one. The draft paper has since been taken offline (and I can't seem to find the published paper) but still available on archive.org. [1] Thanks! [1] http://web.archive.org/web/20091122080500/http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf http://web.archive.org/web/20091122080500/http://www.cs.mdx....
- objclxt 14y ago"There's no "intro to programming" course at Harvard—this is it [...] I think CS50 is great for the first two-thirds, but completely lacking for the last third. There's just too much material in too little time." There is actually a course for the last third, it's CS1. I used to Head TF it: like CS50 it counts for Gen Ed credit, but it is designed primarily for that last third you talk about that may find CS50 too fast paced. It uses Java rather than C. No plans to take it to edX though (with both MIT and Harvard's Intro CS classes the space is crowded enough!). CS1 was originally designed pre-Malan when CS50 was basically only taken by those majoring in CS, and it is somewhat less popular now as many students want to take CS50 for the 'experience'. The massive success of CS50 at Harvard (now one of the top three most popular classes across the entire undergraduate catalog) is both a blessing and a curse: it's great that more students are interested in learning to program, but it's also meant the department is having to rethink what it offers post-CS50.
- 2arrs2ells 14y agoFormer CS1 (and CS50) TF here. I wish CS1 would rebrand itself - maybe focus on web programming with a framework (like Hartl's Rails Tutorial) or computational thinking with Python. As is, Java has nearly as much syntactic overhead as C (at least no pointers, thank god), which makes it hard to get into useful & exciting things.