You are here
Teaching Computer Science in the Cloud
In this talk, I present Harvard University's first experience with cloud computing in the classroom. In the autumn of 2008, rather than continue to rely on the university's own instructional computing environment, we relocated our 300-student introductory computer science course to Amazon's Elastic Compute Cloud (EC2), a "web service that provides resizable compute capacity" by way of Xen-based virtual machines that can be spawned on demand.
Our goals were both technical and pedagogical. As computer scientists, we wanted full control over our course's infrastructure (i.e., root access), so that we could install software at will and respond to problems at any hour without an IT department between us and our hardware.
As teachers, we wanted easier access to our students' work (i.e., root access), as well as the ability to grow and shrink our infrastructure as problem sets' computational requirements demanded. But we also wanted to integrate into the course's own syllabus a discussion of scalability, virtualization, multicore processing, and cloud computing itself. What better way to teach topics like those than to have students actually experience them?
Although our experiment was not without cost (namely, the time to system-administer and some late-night technical difficulties), the upsides proved worth it. We have since run even more courses "in the cloud." I present in this talk what we did, how we did it, and why we did it—and I confess some mistakes so that you don't repeat them.
Open Access Media
USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.