Open source projects in software engineering education: a mapping study

Context: It is common practice in academia to have students work with “toy” projects in software engineering (SE) 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 (OSP) with faculty supervision. Objective: This study aims to summarize the literature on how OSP have been used to facilitate students’ learning of SE. Method: A systematic mapping study was undertaken by identifying, filtering and classifying primary studies using a predefined strategy. Results: 72 papers were selected and classified. The main results were: (a) most studies focused on comprehensive SE courses, although some dealt with specific areas; (b) the most prevalent approach was the traditional project method; (c) studies’ general goals were: learning SE concepts and principles by using OSP, learning open source software or both; (d) most studies tried out ideas in regular courses within the curriculum; (e) in general, students had to work with predefined projects; (f) there was a balance between approaches where instructors had either inside control or no control on the activities performed by students; (g) when learning was assessed, software artefacts, reports and presentations were the main instruments used by teachers, while surveys were widely used for students’ self-assessment; (h) most studies were published in the last seven 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]  Laurie A. Williams,et al.  ROSE: a repository of education-friendly open-source projects , 2008, ITiCSE.

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

[3]  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.

[4]  Gary B. Parker,et al.  Creating an Academic Community to build Humanitarian FOSS: A Progress Report , 2008 .

[5]  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).

[6]  Judy Kay,et al.  Problem-Based Learning for Foundation Computer Science Courses , 2000, Comput. Sci. Educ..

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

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

[9]  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.

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

[11]  E. Cousin,et al.  Picolibre: a free collaborative platform to improve students' skills in software engineering , 2002, IEEE International Conference on Systems, Man and Cybernetics.

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

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

[14]  NachbarDaniel Bringing real-world software development into the classroom , 1998 .

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

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

[17]  Ioannis Stamelos,et al.  Students' Perspectives on Learning Software Engineering with Open Source Projects - Lessons Learnt after Three Years of Program Operation , 2012, CSEDU.

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

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

[20]  A. Brown,et al.  The Architecture of Open Source Applications , 2011 .

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

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

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

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

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

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

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

[28]  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.

[29]  Jennifer S. Kay,et al.  Open source software and computer science education , 2003 .

[30]  Björn Lundell,et al.  Learning Through Practical Involvement in the OSS Ecosystem: Experiences from a Masters Assignment , 2007, OSS.

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

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

[33]  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).

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

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

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

[37]  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.

[38]  Roberto Almeida Bittencourt,et al.  Using Open Source Projects in software engineering education: A systematic mapping study , 2013, 2013 IEEE Frontiers in Education Conference (FIE).

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

[40]  Pankaj Kamthan,et al.  Journal of Information Technology Education on the Prospects and Concerns of Integrating Open Source Software Environment in Software Engineering Education Prospects and Concerns of Integrating Open Source Software Environment Background and Related Work , 2022 .

[41]  Duyun Chen,et al.  Transition from Undergraduate Research Program Participants to Researchers and Open Source Community Contributors , 2011 .

[42]  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).

[43]  Michael J. Prince,et al.  Does Active Learning Work? A Review of the Research , 2004 .

[44]  Mihaela Sabin Free and open source software development of IT systems , 2011, SIGITE '11.

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

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

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

[48]  Mary Shaw,et al.  Software Engineering Body of Knowledge (SWEBOK) , 2001, ICSE.

[49]  Vaclav Rajlich Software Engineering: The Current Practice , 2011 .

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

[51]  Ioannis Stamelos,et al.  Involving Software Engineering Students in Open Source Software Projects: Experiences from a Pilot Study , 2007, J. Inf. Syst. Educ..

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

[53]  John Carroll,et al.  Computer Science and service learning: Empowering nonprofit organizations through open source content management systems , 2009 .

[54]  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.

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

[56]  Diomidis Spinellis Open Source and Professional Advancement , 2006, IEEE Software.

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

[58]  Pamela Samuelson IBM's pragmatic embrace of open source , 2006, CACM.

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

[60]  Cornelia Boldyreff,et al.  Undergraduate Research Opportunities in OSS , 2009, OSS.

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

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

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

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

[65]  R.K. Raj,et al.  Using Open Source Software in Computer Science Courses , 2006, Proceedings. Frontiers in Education. 36th Annual Conference.

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

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

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

[69]  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..

[70]  Hanan Lutfiyya,et al.  Experiences with a software maintenance project course , 2000, IEEE Trans. Educ..

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

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

[73]  Cay S. Horstmann Challenges and Opportunities in an Open Source Software Development Course , 2009 .

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

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

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

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

[78]  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).

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