Teaching Operating Systems Using Virtual Appliances and Distributed Version Control

Proceedings of the 41st ACM Technical Symposium on Computer Science Education (SIGCSE 2010), Milwaukee, WI, March 10-13, 2010, pp. 480-484


Students learn more through hands-on project experience for computer science courses such as operating systems, but pro- viding the infrastructure support for a large class to learn by doing can be hard. To address this issue, we introduce a new approach to managing and grading operating system home- work assignments based on virtual appliances, a distributed version control system, and live demonstrations. Our solu- tion is easy to deploy and use with students’ personal com- puters, and obviates the need to provide a computer labora- tory for teaching purposes. It supports the most demanding course projects, such as those that involve operating system kernel development, and can be used by both on-campus and remote distance learning students even with intermit- tent network connectivity. Our experiences deploying and using this solution to teach operating systems at Columbia University show that it is easier to use, more flexible, and more pedagogically effective than other approaches.



Columbia University Department of Computer Science