FLOSS in Software Engineering Education: Supporting the Instructor in the Quest for Providing Real Experience for Students

Software engineering courses play an important role in computer science programs and are expected to provide the required basic knowledge and skills for professional practice in software industry. However, teaching software engineering principles, concepts and practices, and relating them to real-world scenarios are challenging tasks. The adoption of open source software projects may address such challenges. In this paper we report on an experience of the teaching object-oriented modeling with Unified Modeling Language (UML) Class Diagrams using open source projects. We conducted a case study with students of the software engineering discipline of the Computer Science course. We supported the instructor in some activities related to syllabus planning, including the selection of a Free/Libre/Open Source Software (FLOSS) projects and the creation of examples to be used in the classroom. The instructor selected and used a small FLOSS project to support the modeling activities. Then, the instructor applied an evaluation activity and a perception questionnaire about the methodology used. After the end of the classes, we conducted an interview with the instructor to present a brief report of his experience in the classroom. In the perception of students, the experience with FLOSS projects enhanced their ability to handle real projects and third-party code, and to deal with the job market. They also reported developing skills such as proactivity and communication. From the instructor's perspective, the group was enthusiastic and dynamic, and interacted more during practical activities.

[1]  Václav Rajlich,et al.  Teaching developer skills in the first software engineering course , 2013, 2013 35th International Conference on Software Engineering (ICSE).

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

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

[4]  Jose Antonio Pow-Sang Replacing a traditional lecture class with a jigsaw class to teach analysis class diagrams , 2015, 2015 International Conference on Interactive Collaborative Learning (ICL).

[5]  Mirela Gutica,et al.  Improving students' engagement with large-team software development projects , 2018, ITiCSE.

[6]  Ioannis Stamelos,et al.  Data collection and analysis of GitHub repositories and users , 2015, 2015 6th International Conference on Information, Intelligence, Systems and Applications (IISA).

[7]  Davi Viana,et al.  Identifying emerging topics and difficulties in software engineering education in Brazil , 2018, SBES.

[8]  Gregorio Robles,et al.  Practices and Perceptions of UML Use in Open Source Projects , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP).

[9]  Audris Mockus,et al.  Patterns of folder use and project popularity: a case study of github repositories , 2014, ESEM '14.

[10]  Gregory W. Hislop,et al.  Faculty Development for FLOSS Education , 2019, OSS.

[11]  R. Atkinson,et al.  Transitioning From Studying Examples to Solving Problems: Effects of Self-Explanation Prompts and Fading Worked-Out Steps. , 2003 .

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

[13]  Mary Shaw,et al.  Software engineering education: a roadmap , 2000, ICSE '00.

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

[15]  Andrew Luxton-Reilly,et al.  Worked examples in computer science , 2014, ACE.

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

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

[18]  Tayana Conte,et al.  Is It Better to Learn from Problems or Erroneous Examples? , 2017, 2017 IEEE 30th Conference on Software Engineering Education and Training (CSEE&T).

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

[20]  Roberto A. Bittencourt,et al.  The Adoption of Open Source Projects in Engineering Education: A Real Software Development Experience , 2018, 2018 IEEE Frontiers in Education Conference (FIE).

[21]  Marco Aurélio Gerosa,et al.  Training Software Engineers Using Open-Source Software: The Professors' Perspective , 2017, 2017 IEEE 30th Conference on Software Engineering Education and Training (CSEE&T).

[22]  Thomas Reichlmayr,et al.  Using a real world project in a software testing course , 2014, SIGCSE.

[23]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[24]  Roberto Almeida Bittencourt,et al.  Open source projects in software engineering education: a mapping study , 2015, Comput. Sci. Educ..

[25]  Ivar Jacobson,et al.  Unified Modeling Language User Guide, The (2nd Edition) (Addison-Wesley Object Technology Series) , 2005 .