ABSTRACT
Correctly applying distributed systems concepts is important for software that seeks to be scalable, reliable and fast. For this reason, Distributed Systems is a course included in many Computer Science programs. To both describe current trends in teaching distributed systems and as a reference for educators that seek to improve the quality of their syllabi, we present a review of 51 syllabi of distributed systems courses from top Computer Science programs around the world. We manually curated the syllabi and extracted data that allowed us to identify approaches used in teaching this subject, including choice of topics, book, and paper reading list. We present our results and a discussion on whether what is being taught matches the guidelines of two important curriculum initiatives.
- Cristina Abad. 2008. Learning through creating learning objects: Experiences with a class project in a distributed systems course. In Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE).Google ScholarDigital Library
- Michael Abebe, Brad Glasbergen, and Khuzaima Daudjee. 2019. WatDFS: A Project for Understanding Distributed Systems in the Undergraduate Curriculum. In ACM Technical Symposium on Computer Science Education (SIGCSE).Google ScholarDigital Library
- Jeannie Albrecht. 2009. Bringing big systems to small schools: Distributed systems for undergraduates. In ACM Technical Symposium on Computer Science Education (SIGCSE).Google ScholarDigital Library
- Steven K Andrianoff. 1990. A module on distributed systems for the operating systems course. ACM SIGCSE Bulletin, Vol. 22, 1 (1990).Google ScholarDigital Library
- Brett Becker and Thomas Fitzpatrick. 2019. What Do CS1 Syllabi Reveal About Our Expectations of Introductory Programming Students?. In ACM Technical Symposium on Computer Science Education (SIGCSE TS).Google ScholarDigital Library
- Mordechai Ben-Ari. 2005. Principles of concurrent and distributed programming .Pearson Education.Google Scholar
- Eric Brewer. 2012. CAP twelve years later: How the “rules” have changed. Computer, Vol. 45, 2 (2012).Google Scholar
- Mike Burrows. 2006. The Chubby lock service for loosely-coupled distributed systems. In Symposium on Operating Systems Design and Implementation (OSDI).Google ScholarDigital Library
- Miguel Castro and Barbara Liskov. 1999. Practical Byzantine fault tolerance. In ACM Symposium on Operating Systems Principles (OSDI).Google Scholar
- K Mani Chandy and Leslie Lamport. 1985. Distributed snapshots: Determining global states of distributed systems. ACM Trans. Computer Systems, Vol. 3, 1 (1985).Google Scholar
- Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson Hsieh, Deborah Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, and Robert Gruber. 2008. BigTable: A distributed storage system for structured data. ACM Transactions on Computer Systems (TOCS), Vol. 26, 2 (2008).Google ScholarDigital Library
- James Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost, Jeffrey Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, et al. 2013. Spanner: Google's globally distributed database. ACM Transactions on Computer Systems (TOCS), Vol. 31, 3 (2013).Google ScholarDigital Library
- George Coulouris, Jean Dollimore, Tim Kindberg, and Gordon Blair. 2011. Distributed systems: Concepts and Design 5th ed.). Pearson.Google Scholar
- Jeffrey Dean and Sanjay Ghemawat. 2008. MapReduce: Simplified data processing on large clusters. Commun. ACM, Vol. 51, 1 (2008).Google ScholarDigital Library
- Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall, and Werner Vogels. 2007. Dynamo: Amazon's highly available key-value store. ACM SIGOPS operating systems review, Vol. 41, 6 (2007).Google ScholarDigital Library
- Casey Fiesler, Natalie Garrett, and Nathan Beard. 2020. What Do We Teach When We Teach Tech Ethics? A Syllabi Analysis. In ACM Technical Symposium on Computer Science Education (SIGCSE TS).Google Scholar
- Michael Fischer, Nancy Lynch, and Michael Paterson. 1985. Impossibility of distributed consensus with one faulty process. J. ACM, Vol. 32, 2 (1985).Google ScholarDigital Library
- Nadjim Fréchet, Justin Savoie, and Yannick Dufresne. 2020. Analysis of Text-Analysis Syllabi: Building a Text-Analysis Syllabus Using Scaling. Political Science & Politics, Vol. 53, 2 (2020).Google ScholarCross Ref
- Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. 2003. The Google file system. In ACM Symposium on Operating Systems Principles (OSDI).Google ScholarDigital Library
- Sukumar Ghosh. 2014. Distributed systems: An algorithmic approach .CRC press.Google Scholar
- Seth Gilbert and Nancy Lynch. 2002. Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services. SIGACT News, Vol. 33, 2 (June 2002).Google ScholarDigital Library
- Seth Gilbert and Nancy Lynch. 2012. Perspectives on the CAP Theorem. Computer, Vol. 45, 2 (Feb. 2012).Google ScholarDigital Library
- Rachid Guerraoui and Lu'is Rodrigues. 2006. Introduction to Reliable Distributed Programming .Springer.Google ScholarDigital Library
- Gregory Hislop, Lillian Cassel, Lois Delcambre, et al. 2009. Ensemble: Creating a National Digital Library for Computing Education. In ACM Conference on SIG-Information Technology Education.Google ScholarDigital Library
- Patrick Hunt, Mahadev Konar, Flavio Paiva Junqueira, and Benjamin Reed. 2010. ZooKeeper: Wait-free Coordination for Internet-scale Systems.. In USENIX Annual Technical Conference (ATC).Google Scholar
- David John and Stan Thomas. 2014. Parallel and distributed computing across the computer science curriculum. In IEEE International Parallel & Distributed Processing Symposium Workshops.Google ScholarDigital Library
- ACM Joint Task Force on Computing Curricula and IEEE Computer Society. 2013. Computer Science Curricula 2013. Final Report.Google Scholar
- David Karger, Eric Lehman, Tom Leighton, et al. 1997. Consistent hashing and random trees: Distributed caching protocols for relieving hot spots on the world wide web. In ACM Symposium on Theory of computing.Google ScholarDigital Library
- Martin Kleppmann. 2017. Designing data-intensive applications: The big ideas behind reliable, scalable, and maintainable systems .O'Reilly Media.Google Scholar
- Leslie Lamport. 1978. Time, Clocks, and the Ordering of Events in a Distributed System. Commun. ACM, Vol. 21, 7 (July 1978).Google ScholarDigital Library
- Leslie Lamport. 2001. Paxos made simple. ACM Sigact News, Vol. 32, 4 (2001).Google Scholar
- Leslie Lamport, Robert Shostak, and Marshall Pease. 1982. The Byzantine Generals Problem. ACM Trans. Programming Languages and Systems, Vol. 4, 3 (July 1982).Google ScholarDigital Library
- Wyatt Lloyd, Michael Freedman, Michael Kaminsky, and David Andersen. 2011. Don't settle for eventual: Scalable causal consistency for wide-area storage with COPS. In ACM Symposium on Operating Systems Principles (SOSP).Google ScholarDigital Library
- Evan Maicus, Matthew Peveler, Stacy Patterson, and Barbara Cutler. 2019. Autograding Distributed Algorithms in Networked Containers. In ACM Technical Symposium on Computer Science Education (SIGCSE).Google Scholar
- Satoshi Nakamoto. 2008. Bitcoin: A peer-to-peer electronic cash system. Technical Report.Google Scholar
- Erik Nygren, Ramesh K. Sitaraman, and Jennifer Sun. 2010. The Akamai Network: A Platform for High-Performance Internet Applications. SIGOPS Operating Systems Review, Vol. 44, 3 (2010).Google ScholarDigital Library
- Diego Ongaro and John Ousterhout. 2014. In search of an understandable consensus algorithm. In USENIX Annual Technical Conference (ATC).Google Scholar
- Sushil Prasad, Anshul Gupta, Krishna Kant, Andrew Lumsdaine, David Padua, Yves Robert, Arnold Rosenberg, Alan Sussman, Charles Weems, et al. 2012. Literacy for all in parallel and distributed computing: guidelines for an undergraduate core curriculum. CSI Journal of Computing, Vol. 1, 2 (2012).Google Scholar
- Sushil Prasad, Charles Weems, John Dougherty, and Debzani Deb. 2018. NSF/IEEE-TCPP curriculum initiative on parallel and distributed computing: status report. In ACM Technical Symposium on Computer Science Education (SIGCSE).Google ScholarDigital Library
- Margaret Reek. 1989. An undergraduate concentration in networking and distributed systems. ACM SIGCSE Bulletin, Vol. 21, 1 (1989).Google ScholarDigital Library
- Sami Rollins. 2011. Introducing networking and distributed systems concepts in an undergraduate-accessible wireless sensor networks course. In ACM Technical Symposium on Computer Science Education (SIGCSE).Google ScholarDigital Library
- A Udaya Shankar. 2012. Distributed Programming: Theory and Practice .Springer Science & Business Media.Google Scholar
- PAG Sivilotti. 2004. Introduction to distributed systems .Lecture Notes. Computer Science and Engineering, The Ohio State University.Google Scholar
- Ion Stoica, Robert Morris, David Karger, M Frans Kaashoek, and Hari Balakrishnan. 2001. Chord: A scalable peer-to-peer lookup service for internet applications. ACM SIGCOMM Computer Communication Review, Vol. 31, 4 (2001).Google ScholarDigital Library
- Claudia Szabo and Michael Scott Pointon. 2019. Final Year Students' Approaches to Implementing Complex Distributed Systems. In ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE.Google ScholarDigital Library
- Douglas Terry, Marvin Theimer, Karin Petersen, Alan Demers, Mike Spreitzer, and Carl Hauser. 1995. Managing update conflicts in Bayou, a weakly connected replicated storage system. ACM SIGOPS Operating Systems Review, Vol. 29, 5 (1995).Google ScholarDigital Library
- Manas Tungare, Xiaoyan Yu, William Cameron, GuoFang Teng, Manuel Pérez-Qui nones, Lillian Cassel, Weiguo Fan, and Edward Fox. 2007. Towards a Syllabus Repository for Computer Science Courses. SIGCSE Bulletin (March 2007).Google Scholar
- Maarten Van Steen and Andrew S Tanenbaum. 2017. Distributed systems 3rd ed.).Google Scholar
- Roger Wattenhofer. 2019. Blockchain Science: Distributed Ledger Technology .Inverted Forest Publishing.Google Scholar
- Joel Wein, Kirill Kourtchikov, Yan Cheng, Ron Gutierez, Roman Khmelichek, Matthew Topol, and Chris Sherman. 2009. Virtualized games for teaching about distributed systems. ACM SIGCSE Bulletin, Vol. 41, 1 (2009).Google ScholarDigital Library
- Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, et al. 2012. Resilient distributed datasets: A fault-tolerant abstraction for in-memory cluster computing. In USENIX Symposium on Networked Systems Design and Implementation (NSDI).Google ScholarDigital Library
- Yanyan Zhuang, Chris Matthews, Stephen Tredger, Steven Ness, et al. 2014. Taking a walk on the wild side: teaching cloud computing on distributed research testbeds. In ACM Technical Symposium on Computer Science Education (SIGCSE).Google ScholarDigital Library
Index Terms
- Have We Reached Consensus? An Analysis of Distributed Systems Syllabi
Recommendations
An Analysis of Distributed Systems Syllabi With a Focus on Performance-Related Topics
ICPE '21: Companion of the ACM/SPEC International Conference on Performance EngineeringWe analyze a dataset of 51 current (2019-2020) Distributed Systems syllabi from top Computer Science programs, focusing on finding the prevalence and context in which topics related to performance are being taught in these courses. We also study the ...
CRIM: curricular resources in interactive multimedia
MULTIMEDIA '99: Proceedings of the seventh ACM international conference on Multimedia (Part 1)The CRIM project addresses the need for curricular guidelines and educational resources for the Interactive Multimedia area. A digital library / repository allows educators to submit knowledge modules that will be reviewed and made available for use by ...
Virtualized games for teaching about distributed systems
SIGCSE '09Complex distributed systems are increasingly important in modern computer science, yet many undergraduate curricula do not give students the opportunity to develop the skill sets necessary to grapple with the complexity of such systems. We have ...
Comments