ABSTRACT
The ubiquity of distributed computing systems has led to an increased focus on distributed systems in the undergraduate curriculum. In this paper, we describe the design of, and our experiences with, a new distributed systems project where students implement the core components of a distributed file system called WatDFS. The WatDFS project enables students to meet learning objectives from across the distributed systems curriculum and interact with real systems, while providing a high-quality testing environment that yields actionable feedback to students on their submissions.
- 2017. strace. https://www.cs.hmc.edu/~geoff/classes/hmc.cs135.201109/ homework/fuse/.Google Scholar
- 2018. libfuse. https://github.com/libfuse/libfuse.Google Scholar
- Daniel J Abadi. 2012. Consistency tradeoffs in modern distributed database system design: CAP is only part of the story. Computer 2 (2012), 37--42. Google ScholarDigital Library
- ACM/IEEE-CS Joint Task Force on Computing Curricula. 2013. Computer Science Curricula 2013. Technical Report. ACM Press and IEEE Computer Society Press.Google ScholarDigital Library
- Jeannie R Albrecht. 2009. Bringing big systems to small schools: Distributed systems for undergraduates. In ACM SIGCSE Bulletin, Vol. 41. ACM, 101--105. Google ScholarDigital Library
- Jeremy Andrus and Jason Nieh. 2012. Teaching operating systems using android. In Proceedings of the 43rd ACM technical symposium on Computer Science Education. ACM, 613--618. Google ScholarDigital Library
- Andrew D Birrell and Bruce Jay Nelson. 1984. Implementing remote procedure calls. ACM Transactions on Computer Systems (TOCS) 2, 1 (1984), 39--59. Google ScholarDigital Library
- Navin Budhiraja and Keith Marzullo. 1992. Tradeoffs in Implementing Primary- Backup Protocols. Technical Report. CORNELL UNIV ITHACA NY DEPT OF COMPUTER SCIENCE.Google Scholar
- Justin Cappos, Ivan Beschastnikh, Arvind Krishnamurthy, and Tom Anderson. 2009. Seattle: a platform for educational cloud computing. Acm sigcse bulletin 41, 1 (2009), 111--115. Google ScholarDigital Library
- Martin Casado and Nick McKeown. 2005. The virtual network system. In ACM SIGCSE Bulletin, Vol. 37. ACM, 76--80. Google ScholarDigital Library
- Henrik Bærbak Christensen. 2016. Teaching DevOps and cloud computing using a cognitive apprenticeship and story-telling approach. In Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education. ACM, 174--179. Google ScholarDigital Library
- Jeffery Forrester. 2015. Platforms for Teaching Distributed Computing Concepts to Undergraduate Students. (2015).Google Scholar
- Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. 2003. The Google file system. Vol. 37. ACM. Google ScholarDigital Library
- Sarah Heckman, Kathryn T Stolee, and Christopher Parnin. 2018. 10+ years of teaching software engineering with itrust: the good, the bad, and the ugly. In Proceedings of the 40th International Conference on Software Engineering: Software Engineering Education and Training. ACM, 1--4. Google ScholarDigital Library
- David A Holland, Ada T Lim, and Margo I Seltzer. 2002. A new instructional operating system. In ACM SIGCSE Bulletin, Vol. 34. ACM, 111--115. Google ScholarDigital Library
- Mark A Holliday, J Traynham Houston, and E Matthew Jones. 2008. From sockets and RMI to web services. In ACM SIGCSE Bulletin, Vol. 40. ACM, 236--240. Google ScholarDigital Library
- Cheng Huang, Huseyin Simitci, Yikang Xu, Aaron Ogus, Brad Calder, Parikshit Gopalan, Jin Li, Sergey Yekhanin, et al. 2012. Erasure Coding in Windows Azure Storage.. In Usenix annual technical conference. Boston, MA, 15--26. Google ScholarDigital Library
- Steve R Kleiman et al. 1986. Vnodes: An Architecture for Multiple File System Types in Sun UNIX.. In USENIX Summer, Vol. 86. 238--247.Google Scholar
- Geoff Kuenning. 2011. CS 135 FUSE Homework Assignments, Fall 2011. https: //www.cs.hmc.edu/~geoff/classes/hmc.cs135.201109/homework/fuse/.Google Scholar
- Chris McDonald. 1996. User-level distributed file systems projects. In ACM SIGCSE Bulletin, Vol. 28. ACM, 333--337. Google ScholarDigital Library
- Halli Elaine Meth. 2014. Decafs: A modular distributed file system to facilitate distributed systems education. (2014).Google Scholar
- Subramanian Muralidhar, Wyatt Lloyd, Sabyasachi Roy, Cory Hill, Ernest Lin, Weiwen Liu, Satadru Pan, Shiva Shankar, Viswanath Sivakumar, Linpeng Tang, et al. 2014. f4: Facebook's warm blob storage system. In Proceedings of the 11th USENIX conference on Operating Systems Design and Implementation. USENIX Association, 383--398. Google ScholarDigital Library
- David Oppenheimer, Jeannie Albrecht, David Patterson, and Amin Vahdat. 2005. Design and implementation tradeoffs for wide-area resource discovery. In High Performance Distributed Computing, 2005. HPDC-14. Proceedings. 14th IEEE International Symposium on. IEEE, 113--124. Google ScholarDigital Library
- Sushil K Prasad, Almadena Yu Chtchelkanova, et al. 2011. NSF/IEEE-TCPP curriculum initiative on parallel and distributed computing: core topics for undergraduates.Google Scholar
- Ariel S Rabkin, Charles Reiss, Randy Katz, and David Patterson. 2012. Experiences teaching MapReduce in the cloud. In Proceedings of the 43rd ACM technical symposium on Computer Science Education. ACM, 601--606. Google ScholarDigital Library
- Aditya Rajgarhia and Ashish Gehani. 2010. Performance and extension of user space file systems. In Proceedings of the 2010 ACM Symposium on Applied Computing. ACM, 206--213. Google ScholarDigital Library
- Mahadev Satyanarayanan, James J. Kistler, Puneet Kumar, Maria E. Okasaki, Ellen H. Siegel, and David C. Steere. 1990. Coda: A highly available file system for a distributed workstation environment. IEEE Transactions on computers 39, 4 (1990), 447--459. Google ScholarDigital Library
- Sam Silvestro, Timothy T Yuen, Corey Crosser, Dakai Zhu, Turgay Korkmaz, and Tongping Liu. 2018. A User Space-based Project for Practicing Core Memory Management Concepts. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education. ACM, 98--103. Google ScholarDigital Library
- Jaime Spacco, David Hovemeyer, William Pugh, Fawzi Emad, Jeffrey K Hollingsworth, and Nelson Padua-Perez. 2006. Experiences with marmoset: designing and using an advanced submission and testing system for programming courses. ACM Sigcse Bulletin 38, 3 (2006), 13--17. Google ScholarDigital Library
- Michael Stonebraker, Sam Madden, and Pradeep Dubey. 2013. Intel big data science and technology center vision and execution plan. ACM SIGMOD Record 42, 1 (2013), 44--49. Google ScholarDigital Library
- Red Hat Storage. 2011. Linus Torvalds doesn't understand userspace filesystems. https://redhatstorage.redhat.com/2011/06/28/ linus-torvalds-doesnt-understand-user-space-storage/.Google Scholar
- Douglas B Terry, Marvin M Theimer, Karin Petersen, Alan J Demers, Mike J Spreitzer, and Carl H Hauser. 1995. Managing update conflicts in Bayou, a weakly connected replicated storage system. In ACM SIGOPS Operating Systems Review, Vol. 29. ACM, 172--182. Google ScholarDigital Library
- Maarten van Steen and Andrew S Tanenbaum. 2016. A brief introduction to distributed systems. Computing 98, 10 (2016), 967--1009. Google ScholarDigital Library
- Maarten Van Steen and Andrew S Tanenbaum. 2017. Distributed Systems. Pearson Education.Google Scholar
- Bharath Kumar Reddy Vangoor, Vasily Tarasov, and Erez Zadok. 2017. To FUSE or Not to FUSE: Performance of User-Space File Systems. In Proceedings of FAST'17: 15th USENIX Conference on File and Storage Technologies. 59. Google ScholarDigital Library
- Ivan Voras and Mario Zagar. 2006. Network distributed file system in user space. In Information Technology Interfaces, 2006. 28th International Conference on. IEEE, 669--674.Google ScholarCross Ref
- Sage AWeil, Scott A Brandt, Ethan L Miller, Darrell DE Long, and Carlos Maltzahn. 2006. Ceph: A scalable, high-performance distributed file system. In Proceedings of the 7th symposium on Operating systems design and implementation. USENIX Association, 307--320. Google ScholarDigital Library
- 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 41, 1 (2009), 246--250. Google ScholarDigital Library
Index Terms
- WatDFS: A Project for Understanding Distributed Systems in the Undergraduate Curriculum
Recommendations
NSF/IEEE-TCPP curriculum initiative on parallel and distributed computing: core topics for undergraduates (abstract only)
SIGCSE '14: Proceedings of the 45th ACM technical symposium on Computer science educationParallelism pervades all aspects of modern computing, from in-home devices such as cell phones to large-scale supercomputers. Recognizing this - and motivated by the premise that every undergraduate student in a computer-related field should be prepared ...
NSF/IEEE-TCPP Curriculum on Parallel and Distributed Computing for Undergraduates - Version II - Big Data, Energy, and Distributed Computing
SIGCSE 2023: Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 2This special session will report on the updated NSF/IEEE-TCPP Curriculum on Parallel and Distributed Computing released in Nov 2020 by the Center for Parallel and Distributed Computing Curriculum Development and Educational Resources (CDER). The purpose ...
NSF/IEEE-TCPP curriculum initiative on parallel and distributed computing: core topics for undergraduates
SIGCSE '11: Proceedings of the 42nd ACM technical symposium on Computer science education
Comments