Moving CS50 into the Cloud

DSpace/Manakin Repository

Moving CS50 into the Cloud

Citable link to this page


Title: Moving CS50 into the Cloud
Author: Malan, David J.
Citation: Malan, David J. 2010. Moving CS50 into the Cloud. Paper presented at the 15th Annual Conference of the Northeast Region of the Consortium for Computing Sciences in Colleges, Hartford, Connecticut, April 2010.
Full Text & Related Files:
Abstract: In Fall 2008, we moved Harvard College’s introductory computer science course, CS50, into the cloud. Rather than continue to rely on our own instructional computing infrastructure on campus, we created a load-balanced cluster of virtual machines (VMs) for our 330 students within Amazon Elastic Compute Cloud (EC2). Our goals were
both technical and pedagogical. As computer scientists, we wanted more control over our course’s infrastructure (e.g., root access), so that we ourselves could install software at will and respond to students’ needs at any hour without an IT department between us and our systems. As teachers, we wanted easier access to our students’ work (as via su) 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 discussion of scalability, virtualization, multi-core processing, and cloud computing itself. What better way to teach topics like those than to have students actually experience them. Although Amazon supported our experiment financially with credits, it was not without costs. Serving as our own system administers cost us time, as did some self-induced late-night technical difficulties.
But the upsides proved worth it, as we accomplished our goals. We present in this paper what we did right, what we did wrong, and how we did both so that others can more easily build their own home in the cloud.
Published Version:
Terms of Use: This article is made available under the terms and conditions applicable to Other Posted Material, as set forth at
Citable link to this page:
Downloads of this work:

Show full Dublin Core record

This item appears in the following Collection(s)


Search DASH

Advanced Search