added an update
Project
Teaching Software Engineering by Contributing to Free, Libre and Open Source Software
Updates
0 new
1
Recommendations
0 new
0
Followers
0 new
1
Reads
0 new
22
Project log
1) Background: final year students of computer science engineering degrees must carry out a final degree project (FDP) in order to graduate. Students' contributions to improve open source software (OSS) through FDPs can offer multiple benefits and challenges, both for the students, the instructors and for the project itself. This work reports on a practical experience developed by four students contributing to mature OSS projects during their FDPs, detailing how they addressed the multiple challenges involved, both from the students and teachers perspective. (2) Methods: we followed the work of four students contributing to two established OSS projects for two academic years and analyzed their work on GitHub and their responses to a survey. (3) Results: we obtained a set of specific recommendations for future practitioners and detailed a list of benefits achieved by steering FDP towards OSS contributions, for students, teachers and the OSS projects. (4) Conclusion: we find out that FDPs oriented towards enhancing OSS projects can introduce students into real-world, practical examples of software engineering principles, give them a boost in their confidence about their technical and communication skills and help them build a portfolio of contributions to daily used worldwide open source applications.
Due to time constraints (one term or quarterly subjects) software projects used in university classes of Software Engineering are usually limited to small developments, with few people involved and without any previous code base to build upon, that is, without taking into account important aspects like software maintenance or software evolution. Open source software (OSS) is currently being considered as a way of involving students in the realities of professional software development, confronting them with a constantly evolving code base, maintenance, portability problems (compatibility with multiple operating systems), localization and programming styles. It is also remarkable the amount of learning obtained by collaborating in a distributed software development, carried out among a group of developers from different parts of the world. This in turn, allows students to be trained in communication skills to be able to interact with the OSS community. The problem is that, again, it is difficult to integrate this OSS project-based learning into a quarterly course. This work advocates a more feasible scenario, proposing that students that have to develop their capstone projects build them by contributing to consolidated OSS applications. In this context, a practical experience developed with 3 capstone students is shown, detailing the benefits obtained, both from the point of view of the students and the project itself. A series of recommendations are also presented, provided by the students and the teacher involved, so that any interested teacher can replicate the experience with a higher guarantee of success.