skip to main content
10.1145/3408877.3432409acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
research-article

Have We Reached Consensus? An Analysis of Distributed Systems Syllabi

Authors Info & Claims
Published:05 March 2021Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. Jeannie Albrecht. 2009. Bringing big systems to small schools: Distributed systems for undergraduates. In ACM Technical Symposium on Computer Science Education (SIGCSE).Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Steven K Andrianoff. 1990. A module on distributed systems for the operating systems course. ACM SIGCSE Bulletin, Vol. 22, 1 (1990).Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. Mordechai Ben-Ari. 2005. Principles of concurrent and distributed programming .Pearson Education.Google ScholarGoogle Scholar
  7. Eric Brewer. 2012. CAP twelve years later: How the “rules” have changed. Computer, Vol. 45, 2 (2012).Google ScholarGoogle Scholar
  8. Mike Burrows. 2006. The Chubby lock service for loosely-coupled distributed systems. In Symposium on Operating Systems Design and Implementation (OSDI).Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Miguel Castro and Barbara Liskov. 1999. Practical Byzantine fault tolerance. In ACM Symposium on Operating Systems Principles (OSDI).Google ScholarGoogle Scholar
  10. K Mani Chandy and Leslie Lamport. 1985. Distributed snapshots: Determining global states of distributed systems. ACM Trans. Computer Systems, Vol. 3, 1 (1985).Google ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. George Coulouris, Jean Dollimore, Tim Kindberg, and Gordon Blair. 2011. Distributed systems: Concepts and Design 5th ed.). Pearson.Google ScholarGoogle Scholar
  14. Jeffrey Dean and Sanjay Ghemawat. 2008. MapReduce: Simplified data processing on large clusters. Commun. ACM, Vol. 51, 1 (2008).Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle Scholar
  17. Michael Fischer, Nancy Lynch, and Michael Paterson. 1985. Impossibility of distributed consensus with one faulty process. J. ACM, Vol. 32, 2 (1985).Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarCross RefCross Ref
  19. Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. 2003. The Google file system. In ACM Symposium on Operating Systems Principles (OSDI).Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Sukumar Ghosh. 2014. Distributed systems: An algorithmic approach .CRC press.Google ScholarGoogle Scholar
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. Seth Gilbert and Nancy Lynch. 2012. Perspectives on the CAP Theorem. Computer, Vol. 45, 2 (Feb. 2012).Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Rachid Guerraoui and Lu'is Rodrigues. 2006. Introduction to Reliable Distributed Programming .Springer.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle Scholar
  26. David John and Stan Thomas. 2014. Parallel and distributed computing across the computer science curriculum. In IEEE International Parallel & Distributed Processing Symposium Workshops.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. ACM Joint Task Force on Computing Curricula and IEEE Computer Society. 2013. Computer Science Curricula 2013. Final Report.Google ScholarGoogle Scholar
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. Martin Kleppmann. 2017. Designing data-intensive applications: The big ideas behind reliable, scalable, and maintainable systems .O'Reilly Media.Google ScholarGoogle Scholar
  30. Leslie Lamport. 1978. Time, Clocks, and the Ordering of Events in a Distributed System. Commun. ACM, Vol. 21, 7 (July 1978).Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Leslie Lamport. 2001. Paxos made simple. ACM Sigact News, Vol. 32, 4 (2001).Google ScholarGoogle Scholar
  32. Leslie Lamport, Robert Shostak, and Marshall Pease. 1982. The Byzantine Generals Problem. ACM Trans. Programming Languages and Systems, Vol. 4, 3 (July 1982).Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle Scholar
  35. Satoshi Nakamoto. 2008. Bitcoin: A peer-to-peer electronic cash system. Technical Report.Google ScholarGoogle Scholar
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. Diego Ongaro and John Ousterhout. 2014. In search of an understandable consensus algorithm. In USENIX Annual Technical Conference (ATC).Google ScholarGoogle Scholar
  38. 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 ScholarGoogle Scholar
  39. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  40. Margaret Reek. 1989. An undergraduate concentration in networking and distributed systems. ACM SIGCSE Bulletin, Vol. 21, 1 (1989).Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  42. A Udaya Shankar. 2012. Distributed Programming: Theory and Practice .Springer Science & Business Media.Google ScholarGoogle Scholar
  43. PAG Sivilotti. 2004. Introduction to distributed systems .Lecture Notes. Computer Science and Engineering, The Ohio State University.Google ScholarGoogle Scholar
  44. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  45. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  46. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  47. 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 ScholarGoogle Scholar
  48. Maarten Van Steen and Andrew S Tanenbaum. 2017. Distributed systems 3rd ed.).Google ScholarGoogle Scholar
  49. Roger Wattenhofer. 2019. Blockchain Science: Distributed Ledger Technology .Inverted Forest Publishing.Google ScholarGoogle Scholar
  50. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  51. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  52. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Have We Reached Consensus? An Analysis of Distributed Systems Syllabi

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        SIGCSE '21: Proceedings of the 52nd ACM Technical Symposium on Computer Science Education
        March 2021
        1454 pages
        ISBN:9781450380621
        DOI:10.1145/3408877

        Copyright © 2021 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 5 March 2021

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate1,595of4,542submissions,35%

        Upcoming Conference

        SIGCSE Virtual 2024

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader