A Multi-Institutional Perspective on H/FOSS Projects in the Computing Curriculum

Many computer science programs have capstone experiences or project courses that allow students to integrate knowledge from the full breadth of their major. Such capstone projects may be student-designed, instructor-designed, designed in conjunction with outside companies, or integrated with ongoing free and open source (FOSS) projects. The literature shows that the FOSS approach has attracted a great deal of interest, in particular when implemented with projects that have humanitarian goals (HFOSS). In this article, we describe five unique models from five distinct types of institutions for incorporating sustained FOSS or HFOSS (alternatively H/FOSS) project work into capstone experiences or courses. The goal is to provide instructors wishing to integrate open source experiences into their curriculum with additional perspectives and resources to help in adapting this approach to the specific needs and goals of their institution and students. All of the models presented are based on sustained engagement with H/FOSS projects that last at least one semester and often more. Each model is described in terms of its characteristics and how it fits the needs of the institution using the model. Assessment of each model is also presented. We then discuss the themes that are common across the models, such as project selection, team formation, mentoring, and student assessment. We examine the choices made by each model, as well as the challenges faced. We end with a discussion how the models have leveraged institutional initiatives and collaborations with outside organizations to address some of the challenges associated with these projects.

[1]  Gregory W. Hislop,et al.  A Multi-Institutional Study of Learning via Student Involvement in Humanitarian Free and Open Source Software Projects , 2015, ICER.

[2]  Edward J. Mirielli,et al.  Student reflections on an academic service learning experience in a computer science classroom , 2007, SIGITE '07.

[3]  Cameron Macdonell Teaching software engineering with an open-source humanitarian software project (abstract only) , 2013, SIGCSE '13.

[4]  Claudia Szabo Student projects are not throwaways: teaching practical software maintenance in a software engineering course , 2014, SIGCSE '14.

[5]  Kevin Buffardi Localized open source software projects: Exploring realism and motivation , 2016, 2016 11th International Conference on Computer Science & Education (ICCSE).

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

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

[8]  Stoney Jackson,et al.  Learning within a professional environment: shared ownership of an HFOSS project , 2014, SIGITE '14.

[9]  Sally Fincher,et al.  Computer Science Curricula 2013 , 2013 .

[10]  Eric A. Brewer,et al.  How computer science serves the developing world , 2009, CACM.

[11]  Herbert H. Tsang,et al.  Industry in the Classroom: Equipping Students with Real-World Experience A reflection on the effects of industry partnered projects on computing education , 2014, WCCCE.

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

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

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

[15]  Huiling Ding Open Source: Platform for virtual service learning and user-initiated research , 2007, 2007 IEEE International Professional Communication Conference.

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

[17]  Bonnie MacKellar A software engineering course with a large-scale project and diverse roles for students , 2011 .

[18]  Steven P. Crain,et al.  Open source security assessment as a class project , 2017 .

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

[20]  Margaret R. Heil,et al.  Reflections on 10 years of sponsored senior design projects: Students win-clients win! , 2007, J. Syst. Softw..

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

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

[23]  Carlos Jensen,et al.  Lessons Learned from Teaching Open Source Software Development , 2014, OSS.

[24]  Stephen Jacobs Building an education ecology on serious game design and development for the One Laptop Per Child and Sugar platforms: A service learning course builds a base for peer mentoring, Cooperative Education internships and sponsored research , 2010, 2010 2nd International IEEE Consumer Electronics Society's Games Innovations Conference.

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

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

[27]  Bonnie MacKellar Analyzing coordination among students in a software engineering project course , 2013, 2013 26th International Conference on Software Engineering Education and Training (CSEE&T).

[28]  Audris Mockus,et al.  Software Dependencies, Work Dependencies, and Their Impact on Failures , 2009, IEEE Transactions on Software Engineering.

[29]  Mihaela Sabin,et al.  Bridging the Academia-Industry Gap in Software Engineering: A Client-Oriented Open Source Software Projects Course , 2014 .

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

[31]  Dragutin Petkovic,et al.  Teaching practical software engineering and global software engineering: evaluation and comparison , 2006, ITICSE '06.

[32]  Chang Liu,et al.  Enriching software engineering courses with service-learning projects and the open-source approach , 2005, ICSE.

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

[34]  Gregory W. Hislop,et al.  Towards a model of faculty development for FOSS in education , 2013, 2013 26th International Conference on Software Engineering Education and Training (CSEE&T).

[35]  Gregory W. Hislop,et al.  Software Engineering Learning in HFOSS: A Multi-Institutional Study , 2015 .

[36]  Allen B. Tucker,et al.  Software Development: An Open Source Approach , 2011 .

[37]  Cam Macdonell Ushahidi: a crisis mapping system , 2015, CSOC.

[38]  Christian Murphy,et al.  A Two-Course Sequence of Real Projects for Real Customers , 2017, SIGCSE.

[39]  Mihaela Sabin,et al.  Scaling a framework for client-driven open source software projects: a report from three schools , 2013 .

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

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

[42]  Stoney Jackson,et al.  Team Project Experiences in Humanitarian Free and Open Source Software (HFOSS) , 2015, TOCE.

[43]  Bendik Bygstad,et al.  Cross-Community Collaboration and Learning in Customer-Driven Software Engineering Student Projects , 2007, 20th Conference on Software Engineering Education & Training (CSEET'07).

[44]  Quinn Burke,et al.  Shaping Software Engineering Curricula Using Open Source Communities , 2016 .

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

[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]  Eleni Stroulia,et al.  Teaching distributed software engineering with UCOSP: the undergraduate capstone open-source project , 2011, CTGDSD '11.

[48]  James M. Hogan,et al.  Tight Spirals and Industry Clients: The Modern SE Education Experience , 2005, ACE.

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

[50]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[51]  Adrian Rusu,et al.  Academia-academia-industry collaborations on software engineering projects using local-remote teams , 2009, SIGCSE '09.

[52]  Ralph Morelli,et al.  The Humanitarian FOSS Project , 2010 .

[53]  Fabio Kon,et al.  Free/Libre/Open Source Software Development in Software Engineering Education: Opportunities and Experiences , 2011 .

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

[55]  J. Huffman Hayes Energizing software engineering education through real-world projects as experimental studies , 2002, Proceedings 15th Conference on Software Engineering Education and Training (CSEE&T 2002).

[56]  Jr. Frederick P. Brooks,et al.  The mythical man-month (anniversary ed.) , 1995 .

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

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

[59]  Mohsen Dorodchi,et al.  Utilizing open source software in teaching practice-based software engineering courses , 2016, 2016 IEEE Frontiers in Education Conference (FIE).

[60]  Swapna S. Gokhale,et al.  Selecting open source software projects to teach software engineering , 2014, SIGCSE.

[61]  Clifton Kussmaul Experience Report: Guiding Faculty & Students to Participate in Humanitarian FOSS Communities , 2016, 2016 IEEE Eighth International Conference on Technology for Education (T4E).

[62]  Nasser Tadayon Software engineering based on the team software process with a real world project , 2004 .

[63]  Kevin Buffardi,et al.  Tech startups: realistic software engineering projects with interdisciplinary collaboration , 2017 .

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

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

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

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