PADS: Design and Implementation of a Cloud-Based, Immersive Learning Environment for Distributed Systems Algorithms

As distributed systems become more complex, understanding the underlying algorithms that make these systems work becomes even harder. Traditional learning modalities based on didactic teaching and theoretical proofs alone are no longer sufficient for a holistic understanding of these algorithms. Instead, an environment that promotes an immersive, hands-on learning of distributed systems algorithms is needed to complement existing teaching modalities. Such an environment must be flexible to support the learning of a variety of algorithms. The environment should also support extensibility and reuse since many of these algorithms share several common traits with each other while differing only in some aspects. Finally, it must also allow students to experiment with large-scale deployments in a variety of operating environments. To address these concerns, we use the principles of software product lines and model-driven engineering, and adopt the cloud platform to design an immersive learning environment called the Playground of Algorithms for Distributed Systems (PADS). A prototype implementation of PADS is described to showcase use cases involving BitTorrent Peer-to-Peer file sharing, ZooKeeper-based coordination, and Paxos-based consensus, which show the benefits of rapid deployment of the distributed systems algorithms. Results from a preliminary user study are also presented.

[1]  Vytautas Štuikys,et al.  Model-driven processes and tools to design robot-based generative learning objects for computer science education , 2016, Sci. Comput. Program..

[2]  Vytautas Stuikys,et al.  Smart Learning Objects for Smart Education in Computer Science , 2015, Springer International Publishing.

[3]  Aniruddha S. Gokhale,et al.  Teaching Computational Thinking Skills in C3STEM with Traffic Simulation , 2013, CHI-KDD.

[4]  Ákos Lédeczi,et al.  NetsBlox : a Visual Language and Web-based Environment for Teaching Distributed Programming , 2016 .

[5]  Jeannette M. Wing An introduction to computer science for non-majors using principles of computation , 2007, SIGCSE.

[6]  Gautam Biswas,et al.  Identifying middle school students’ challenges in computational thinking-based science learning , 2016, Research and Practice in Technology Enhanced Learning.

[7]  André Schiper,et al.  Distal: A framework for implementing fault-tolerant distributed algorithms , 2013, 2013 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).

[8]  Francisco Javier,et al.  Learning about Distributed Systems , 2010 .

[9]  Li Liu,et al.  The auxiliary role of information technology in teaching: enhancing programming course using alice , 2014 .

[10]  Mireille Blay-Fornarino,et al.  Exploiting the Internet of Things to Teach Domain-Specific Languages and Modeling: The ArduinoML project , 2014, EduSymp@MoDELS.

[11]  Filiz Kalelioglu,et al.  A new way of teaching programming skills to K-12 students: Code.org , 2015, Comput. Hum. Behav..

[12]  Aniruddha S. Gokhale,et al.  Improving Domain-Specific Language Reuse with Software Product Line Techniques , 2009, IEEE Software.

[13]  Gabor Karsai,et al.  The Generic Modeling Environment , 2001 .

[14]  Brian Hand,et al.  Moving Past Curricula and Strategies: Language and the Development of Adaptive Pedagogy for Immersive Learning Environments , 2016 .

[15]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[16]  David C. Webb,et al.  Scalable game design and the development of a checklist for getting computational thinking into public schools , 2010, SIGCSE.

[17]  Douglas C. Schmidt,et al.  Evolution in Model-Driven Software Product-Line Architectures , 2009 .

[18]  Danilo Beuche,et al.  Variability management with feature models , 2004, Sci. Comput. Program..

[19]  Douglas C. Schmidt,et al.  Model-Driven Engineering , 2006 .

[20]  Stuart Kent,et al.  Model Driven Engineering , 2002, IFM.

[21]  Daniel Churchill,et al.  Design of learning objects for concept learning: effects of multimedia learning principles and an instructional approach , 2016, Interact. Learn. Environ..

[22]  Robin Mason,et al.  Online education using learning objects , 2004, Br. J. Educ. Technol..

[23]  Fionnuala O'Donnell Simulation Frameworks for the Teaching and Learning of Distributed Algorithms , 2006 .

[24]  Stephen Downes Learning Objects: Resources For Distance Education Worldwide , 2001 .

[25]  Mladjan Jovanovic,et al.  Motivation and Multimodal Interaction in Model-Driven Educational Game Design , 2011, IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans.

[26]  A. Gokhale,et al.  Collaborative Problem-solving Using a Cloud-based Infrastructure to Support High School STEM Education , 2015 .

[27]  Aniruddha S. Gokhale,et al.  A Cloud-Based Immersive Learning Environment for Distributed Systems Algorithms , 2016, 2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC).

[28]  Sridhar Chimalakonda,et al.  What makes it hard to apply software product lines to educational technologies? , 2013, 2013 4th International Workshop on Product LinE Approaches in Software Engineering (PLEASE).

[29]  Kyoungho An,et al.  Model-driven performance estimation, deployment, and resource management for cloud-hosted services , 2013, DSM '13.

[30]  Rubén Peredo Valderrama,et al.  Development of intelligent reusable learning objects for web-based education systems , 2005, Expert Syst. Appl..

[31]  Mohamed Mosbah,et al.  ViSiDiA: A Java Framework for Designing, Simulating, and Visualizing Distributed Algorithms , 2014, 2014 IEEE/ACM 18th International Symposium on Distributed Simulation and Real Time Applications.

[32]  Kyoungho An,et al.  A Model-driven Performance Analysis and Deployment Planning for Real-time Stream Processing , 2013 .

[33]  Robertas Damasevicius,et al.  On the Technological Aspects of Generative Learning Object Development , 2008, ISSEP.

[34]  Gautam Biswas,et al.  Designing Learning by Teaching Agents: The Betty's Brain System , 2008, Int. J. Artif. Intell. Educ..

[35]  Miklós Maróti,et al.  A Visual Programming Environment for Learning Distributed Programming , 2017, SIGCSE.

[36]  KalelioğluFiliz A new way of teaching programming skills to K-12 students , 2015 .

[37]  Aniruddha S. Gokhale Advancing Model Driven Development Education via Collaborative Research , 2005 .