Using Open Source Projects in software engineering education: A systematic mapping study

Context: It is common practice in academia to have students work with “toy” projects in software engineering courses. One way to make such courses more realistic and reduce the gap between academic courses and industry needs is getting students involved in Open Source Projects with faculty supervision. Objective: This study aims to summarize existing information on how open source projects have been used to facilitate students' learning of software engineering. Method: A systematic mapping study was undertaken by identifying, filtering and classifying primary studies using a predefined strategy. Results: 53 papers were selected and classified. The main results were: a) most studies focus on comprehensive software engineering courses, although some papers deal with specific areas; b) the most prevalent approach was the traditional project method; c) surveys are the main learning assessment instrument, especially for student self-assessment; d) conferences are the typical publication venue; and e) more than half of the studies were published in the last five years. Conclusions: The resulting map gives an overview of the existing initiatives in this context and shows gaps where further research can be pursued.

[1]  Jouni Juntunen,et al.  Open source project as a pedagogical tool in higher education , 2011, MindTrek.

[2]  Kai Petersen,et al.  Systematic Mapping Studies in Software Engineering , 2008, EASE.

[3]  Ralph Morelli,et al.  A comparison of software engineering knowledge gained from student participation in humanitarian foss projects , 2011, ITiCSE '11.

[4]  Hong Zhang,et al.  A Collaborative System for Software Engineering Education , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[5]  Jennifer Pérez,et al.  Teaching software architectures and aspect-oriented software development using open-source projects , 2009, ITiCSE '09.

[6]  Danny Krizanc,et al.  Revitalizing computing education through free and open source software for humanity , 2009, Commun. ACM.

[7]  Chang Liu Enriching software engineering courses with service-learning projects and the open-source approach , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[8]  Fabio Kon,et al.  Free and Open Source Software Development and Research: Opportunities for Software Engineering , 2011, 2011 25th Brazilian Symposium on Software Engineering.

[9]  Yasuhiro Takemura,et al.  A Method for Creating Teaching Materials of Practical Object-Oriented Methods Education , 2006, ICCE.

[10]  Thomas J. Reichlmay Collaborating with industry: strategies for an undergraduate software engineering program , 2006, SSEE '06.

[11]  Michael P. Conlon,et al.  Is There a Role for Open Source Software in Systems Analysis , 2005 .

[12]  Ralph Morelli,et al.  Student Software Engineering Learning via Participation in Humanitarian FOSS Projects , 2012 .

[13]  Gregory W. Hislop,et al.  Courseware: student learning via FOSS field trips , 2011, ITiCSE '11.

[14]  G.W. Hislop,et al.  Work in progress - challenges to educating students within the Community of Open Source Software for Humanity , 2008, 2008 38th Annual Frontiers in Education Conference.

[15]  Ralph Morelli,et al.  Holistic Software Engineering Education Based on a Humanitarian Open Source Project , 2007, 20th Conference on Software Engineering Education & Training (CSEET'07).

[16]  V. Adinarayanan,et al.  Bridging the Computer Science skill gap with Free and Open Source Software , 2009, 2009 International Conference on Engineering Education (ICEED).

[17]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[18]  Juan José Marín Martinez Learning Free Software Development from Real-World Experience , 2009, 2009 International Conference on Intelligent Networking and Collaborative Systems.

[19]  Ralph Morelli,et al.  The Humanitarian FOSS Project: Goals, Activities, and Outcomes , 2011, 2011 IEEE Global Humanitarian Technology Conference.

[20]  L. Williams,et al.  Work in Progress: Exploring Security and Privacy Concepts through the Development and Testing of the iTrust Medical Records System , 2006, Proceedings. Frontiers in Education. 36th Annual Conference.

[21]  Swapna S. Gokhale,et al.  Integrating Open Source Software into software engineering curriculum: Challenges in selecting projects , 2012, 2012 First International Workshop on Software Engineering Education Based on Real-World Experiences (EduRex).

[22]  Daniel W. Nachbar Bringing real-world software development into the classroom: a proposed role for public software in computer science education , 1998, SIGCSE '98.

[23]  Lijuan Peng,et al.  Creating synergy between usability courses and open source software projects , 2008, SGCS.

[24]  Denys Poshyvanyk,et al.  Teaching Software Evolution in Open Source , 2007, Computer.

[25]  Eric Scharff Applying open source principles to collaborative learning environments , 2002, CSCL.

[26]  Gregory W. Hislop,et al.  How to involve students in FOSS projects , 2011, 2011 Frontiers in Education Conference (FIE).

[27]  Weibin Li,et al.  Open Source Movement and Computer Science Education Innovation , 2009, 2009 International Conference on Information Engineering and Computer Science.

[28]  Kai Qian,et al.  Teaching Component-Based Software Development , 2008, 2008 21st IEEE-CS Conference on Software Engineering Education and Training Workshop.

[29]  Kal Toth,et al.  Experiences with Open Source Software Engineering Tools , 2006, IEEE Software.

[30]  L. Jaccheri,et al.  Open Source Software: A Source of Possibilities for Software Engineering Education and Empirical Software Engineering , 2007, First International Workshop on Emerging Trends in FLOSS Research and Development (FLOSS'07: ICSE Workshops 2007).

[31]  Pearl Brereton,et al.  Using Mapping Studies in Software Engineering , 2008, PPIG.

[32]  Robert M. Marmorstein Open source contribution as an effective software engineering class project , 2011, ITiCSE '11.

[33]  Soon-Kyeong Kim,et al.  Teaching software design with open source software , 2003, 33rd Annual Frontiers in Education, 2003. FIE 2003..

[34]  V.N. Gudivada,et al.  Learning software engineering principles using open source software , 2008, 2008 38th Annual Frontiers in Education Conference.

[35]  Daniel D. Garcia,et al.  200 Students Can't Be Wrong! GamesCrafters, a Computational Game Theory Undergraduate Research and Development Group , 2008, AAAI Spring Symposium: Using AI to Motivate Greater Participation in Computer Science.

[36]  Denys Poshyvanyk,et al.  Teaching Evolution of Open-Source Projects in Software Engineering Courses , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[37]  Guilherme Horta Travassos,et al.  Cross versus Within-Company Cost Estimation Studies: A Systematic Review , 2007, IEEE Transactions on Software Engineering.

[38]  Ioannis Stamelos,et al.  A Hybrid Approach to Computer Science Education - A Case Study: Software Engineering at Aristotle University , 2009, CSEDU.

[39]  G.W. Hislop,et al.  Support for Educating Software Engineers Through Humanitarian Open Source Projects , 2008, 2008 21st IEEE-CS Conference on Software Engineering Education and Training Workshop.

[40]  Ralph Morelli,et al.  Evaluating student experiences in developing software for humanity , 2009, ITiCSE '09.

[41]  Edward F. Gehringer,et al.  From the manager's perspective: Classroom contributions to open-source projects , 2011, 2011 Frontiers in Education Conference (FIE).

[42]  T. Yamakami Re-engineering software education: OSS-aware software education in the era of utilizing external resources , 2012, 2012 14th International Conference on Advanced Communication Technology (ICACT).

[43]  David Murphy,et al.  The software engineering class builds a GUI for subversion , 2010, SGCS.

[44]  Guangming Xing Teaching software engineering using open source software , 2010, ACM SE '10.

[45]  Clifton Kussmaul Software Projects Using Free And Open Source Software: Opportunities, Challenges, And Lessons Learned , 2009 .

[46]  K. Shockey,et al.  Using open source to enhance learning , 2005, 2005 6th International Conference on Information Technology Based Higher Education and Training.

[47]  Gregory W. Hislop,et al.  An approach for evaluating FOSS projects for student participation , 2012, SIGCSE '12.

[48]  Birgit R. Krogstie,et al.  Power through brokering , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[49]  Robert Cartwright,et al.  Production programming in the classroom , 2003, SIGCSE.

[50]  Eleni Stroulia,et al.  Teaching distributed software engineering with UCOSP: the undergraduate capstone open-source project , 2011, CTGDSD '11.

[51]  Ioannis Stamelos,et al.  A Framework for Teaching Software Testing using F/OSS Methodology , 2006, OSS.

[52]  Ralph Morelli,et al.  Foss 101: engaging introductory students in the open source movement , 2009, SIGCSE '09.

[53]  Yonglei Tao,et al.  Work in Progress: Open Source Software as the Basis of Developing Software Design Case Studies , 2006, Proceedings. Frontiers in Education. 36th Annual Conference.

[54]  Andrew Meneely,et al.  ROSE: a repository of education-friendly open-source projects , 2008, SIGCSE 2008.

[55]  Ralph Morelli,et al.  Can humanitarian open-source software development draw new students to CS? , 2007, SIGCSE '07.

[56]  Swapna S. Gokhale,et al.  Evaluating an early software engineering course with projects and tools from open source software , 2012, ICER '12.

[57]  Terhi Kilamo The community game: learning open source development through participatory exercise , 2010, MindTrek.

[58]  David Megías,et al.  Free technology academy: a European initiative for distance education about free software and open standards , 2009, ITiCSE '09.