Pastry: Scalable, Decentralized Object Location, and Routing for Large-Scale Peer-to-Peer Systems
Middleware '01 Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms Heidelberg
PlanetLab: an overlay testbed for broad-coverage services
ACM SIGCOMM Computer Communication Review
MapReduce: simplified data processing on large clusters
Communications of the ACM - 50th anniversary issue: 1958 - 2008
Large-scale virtualization in the Emulab network testbed
ATC'08 USENIX 2008 Annual Technical Conference on Annual Technical Conference
Scalaris: reliable transactional p2p key/value store
Proceedings of the 7th ACM SIGPLAN workshop on ERLANG
Hadoop at home: large-scale computing at a small college
Proceedings of the 40th ACM technical symposium on Computer science education
Seattle: a platform for educational cloud computing
Proceedings of the 40th ACM technical symposium on Computer science education
Hadoop: The Definitive Guide
Experiences teaching MapReduce in the cloud
Proceedings of the 43rd ACM technical symposium on Computer Science Education
Hi-index | 0.00 |
Distributed platforms are now a de facto standard in modern software and application development. Although the ACM/IEEE Curriculum 2013 introduces Parallel and Distributed Computing as a first class knowledge area for the first time, the right level of abstraction to teach these concepts is still an important question that needs to be explored. This work presents our findings in teaching cloud computing by exposing upper-level students to testbeds in use by the distributed systems research community. The possibility of giving students practical and relevant experience was explored in the context of new course assignment objectives. Furthermore, students were able to significantly contribute to a pilot class project with medium-scale computation based on satellite data. However, the software engineering challenges in these environments proved to be daunting. In particular, these challenges were exacerbated by a lack of debugging support relative to the environments students were more familiar with---requiring development practices that out-stripped typical course experiences. Our proposed set of experiments and project provide a basis for an evaluation of the trade-offs of teaching cloud and distributed systems on the wild side. We hope that these findings provide insight into some of the possibilities to consider when preparing the next generation of computer scientists to engage with software practices and paradigms that are already fundamental in today's highly distributed systems.