The last few days were spent at Harvard University attending CS50 Boot camp in Cambridge (Videos of most of the talks should be at that link soon.) It was an interesting experience. A learning experience. Originally I planned three posts about it – one for the pre-work and others for each of the two days of the boot camp[. I soon realized that wouldn’t work for me. I needed to noodle on the entirety and write one post. So this may be longer than usual.
What is CS50 AP you may ask. Well the official answer is:
CS50 is Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for students less comfortable and more comfortable alike. CS50 AP is a free adaptation for high schools that satisfies the new AP CS Principles curriculum framework (that officially debuts in Fall 2016).
This boot camp was one of two sponsored by Microsoft that were run this summer. Interestingly no Microsoft technology is used in CS 50. None. Not even Windows. The CS50 appliance that is used to do the computer work is a virtual machine running on VMware. The OS of the VM is Ubuntu. Mind boggling!
That leads me to the pre-work. Attendees were asked to sign up for CS50x via EdX and complete the first three psets (problem sets.) Some teachers watched all the videos and did some or just a couple of the psets. I skipped the lecture videos and just did the psets. I think I made a mistake doing that. I plan to go back and watch the lectures. The early psets are nothing special and I’ve used most of them in one form or another in the past. I think the real value for me is how lectures and demos are run rather than the psets.
I was not too pleased with the “appliance.” I had some issues with bouncing back and forth between the VM and the regular Windows. It might have been easier if I printed out the instructions and just stayed in the VM. Interestingly enough things went smoother after I upgraded to Windows 10. I delayed the upgrade until I finished to psets and wish I’d done it before.
The other thing about the appliance was that we did our editing with a text editor with limited functionality compared to Visual Studio which I use for most development these days. And then we had to compile and run in the command line. Oh and the programs were in C. Overall it felt like a giant step backwards. On the last day of the boot camp David Malan, who runs CS50, explained his reasoning for using C. His arguments make sense but I am still thinking about the wisdom of it all for beginners.
Regardless of language I am still not sure why Linux and not Windows. I’m sure Microsoft would let them create a Windows VM with Visual Studio to do what they need. They have a bunch of automation tools that probably don’t migrate off of Linux though. I also suspect though that, like many others, they may think that using the command line is useful in terms of getting closer to the machine. I tend to think that can wait beyond the first course.
There is a web browser based IDE for CS50 coming soon. It avoids the need to install VMware and download a large VM file. It’s still a lot like using the current appliance though.
CS50 seems to be almost as much about culture as curriculum. I like that idea. David Malan is a very charismatic guy and a great presenter. You’d easily cast him to play himself in the movie.He’s also has had a few years and a great support team to pull it all off. I’m not so charismatic so can I pull of the cultural aspect? An open question.
The materials that are being made available are remarkable. The videos, both major lectures and smaller walkthroughs, are totally p[professional. The quality of the talks is outstanding. The project descriptions are tested and clear as is the grading plan and rubrics they use. I’m definitely planning on adapting their grading methods to my existing programming courses.
I could see using these materials as a flipped classroom. That is to say assign the lecture videos to be watched at home and follow up with discussions in class. Will students watch hour (or longer) videos? That might be hard. Can I show them in class? Probably but the attentions span problem is still there. Another option which I would consider would be to give lectures myself so I could include the engagement exercises that Prof. Malan uses live with my students involved rather than just watching other students in a video.
The shorter walkthroughs, generally 3 to 5 minutes long, students will watch and I can also use them in class so it is not just me talking. I may try some of them this year in my honors programming class (which is in C#) and even my Explorations in Computer Science class (some of the stuff on Binary for example). This will also let me gage how well they hold the attention of younger students who are not Harvard undergrads.
One last thing I find particularly interesting is the intention to build a larger community of teachers teaching with the CS5t0 AP curriculum to help, encourage and support each other. That could be very helpful in the long run.
Right now we don’t offer AP CS Principles at my school. I’m not sure if we can get it in for 2016/2017 either. There are issues with adding a new AP course. And if we do get it in I am not completely sold on the CS50 model. But I’m going to continue to look at the materials as they become more and more available. The community my school attracts from (New England parents with ivy in their eyes for their children) may be impressed by the Harvard “stamp.” Ultimately though I’ll have to decide what curriculum I can make work best and that is more complex than where the curriculum comes from. I’ve got a lot to think about.