Distributed applications have become a core component of the Internet's infrastructure. However, many undergraduate curriculums, especially at small colleges, do not offer courses that focus on the design and implementation of distributed systems. The courses that are offered address the theoretical aspects of system design, but often fail to provide students with the opportunity to develop and evaluate distributed applications in real-world environments. As a result, undergraduate students are not as prepared as they should be for graduate study or careers in industry. This paper describes an undergraduate course in Distributed Systems that not only studies the key design principles of distributed systems, but also has a unique emphasis on giving students hands-on access to distributed systems through the use of shared computing testbeds, such as PlanetLab and GENI, and open-source technologies, such as Xen and Hadoop. Using these platforms, students can perform large-scale, dis...
Jeannie R. Albrecht