ABSTRACT
Context: The use of Free/Libre/Open Source Software (FLOSS) projects in Software Engineering Education (SEE) provides an opportunity for learning the theory and practicing technical and soft skills, narrowing the theory-practice gap usually present in undergraduate software engineering courses. However, selecting a FLOSS project for pedagogical use has its challenges. The selection should consider technical, social and pedagogical criteria, and the search process is often manual and ad-hoc. Objective: We present an approach to the selection of FLOSS projects for SEE based on technical and social criteria, and evaluate it from the students' perspective. Method: We performed a literature review to identify the criteria for selecting FLOSS projects used in SEE research. A set of selection criteria was documented and operationalized so that automatic search could be performed in open source projects repositories. We implemented a tool called FlossSearch.Edu to support the selection of FLOSS projects, based on the combination of one or more criteria, from a randomly populated repository of cloned GitHub projects. A case study was conducted with undergraduate students. They used the tool to select FLOSS projects based on criteria defined by the professor and answered a survey based on the Technology Acceptance Model (TAM). Results: FlossSearch.Edu played an important role in the process of selecting FLOSS projects. Most participants that used FlossSearch.Edu stated that the tool was useful, easy to use and that they intended to use it in the future.
- 2016. The 29th IEEE Conference on Software Engineering Education and Training. http://paris.utdallas.edu/cseet16/Google Scholar
- Sogol Balali, Igor Steinmacher, Umayal Annamalai, Anita Sarma, and Marco Aurelio Gerosa. 2018. Newcomers' Barriers... Is That All? An Analysis of Mentors' and Newcomers' Barriers in OSS Projects. Computer Supported Cooperative Work (CSCW) (2018), 1--36.Google Scholar
- Ana María Bautista and Tomás San Feliu. 2015. A process to mining issues of software repositories. In Information Systems and Technologies (CISTI), 2015 10th Iberian Conference on. IEEE, 1--6.Google ScholarCross Ref
- Judith Bishop, Carlos Jensen, Walt Scacchi, and Arfon Smith. 2016. How to Use Open Source Software in Education. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education. ACM, 321--322.Google ScholarDigital Library
- Grady Booch, James Rumbaugh, and Ivar Jacobson. 2005. Unified Modeling Language User Guide, The (2Nd Edition) (Addison-Wesley Object Technology Series). Addison-Wesley Professional.Google Scholar
- Moara Sousa Brito, Fernanda Gomes Silva, Christina von Flach G. Chavez, Debora C Nascimento, and Roberto A Bittencourt. 2018. FLOSS in software engineering education: an update of a systematic mapping study. In Proceedings of the XXXII Brazilian Symposium on Software Engineering. 250--259.Google ScholarDigital Library
- Moara Sousa Brito, Fernanda Gomes Silva, Christina von Flach G. Chavez, Debora C. Nascimento, and Roberto A. Bittencourt. 2018. FLOSS in software engineering education: An Update of a Systematic Mapping Study. In Proceedings of the XXXII Brazilian Symposium on Software Engineering - SBES '18. ACM Press, 250--259. https://doi.org/10.1145/3266237.3266249Google ScholarDigital Library
- Joseph Buchta, Maksym Petrenko, Denys Poshyvanyk, and Václav Rajlich. 2006. Teaching evolution of open-source projects in software engineering courses. In null. IEEE, 136--144.Google Scholar
- Christina Chavez, Antonio Terceiro, Paulo Meirelles, Carlos Santos Jr, and Fabio Kon. 2011. Free/Libre/Open source software development in software engineering education: Opportunities and experiences. Fórum de Educação em Engenharia de Software (CBSoft'11-SBES-FEES) (2011).Google Scholar
- V Cicirello. 2017. Student developed computer science educational tools as software engineering course projects. Journal of Computing Sciences in Colleges 32, 3 (2017), 55--61.Google ScholarDigital Library
- Fred D Davis. 1989. Perceived usefulness, perceived ease of use, and user acceptance of information technology. MIS quarterly (1989), 319--340.Google ScholarDigital Library
- Rossana M de Castro Andrade, Ismayle de Sousa Santos, Italo Linhares de Araújo, Bruno Sabóia Aragão, and Fernanda Siewerdt. 2017. Retrospective for the Last 10 years of Teaching Software Engineering in UFC's Computer Department. In Proceedings of the 31st Brazilian Symposium on Software Engineering. ACM, 358--367.Google ScholarDigital Library
- Heidi JC Ellis, Mel Chua, Gregory W Hislop, Michelle Purcell, and Sebastian Dziallas. 2013. Towards a model of faculty development for FOSS in education. In Software Engineering Education and Training (CSEE&T), 2013 IEEE 26th Conference on. IEEE, 269--273.Google Scholar
- Heidi JC Ellis, Gregory W Hislop, and Darci Burdge. 2017. Courseware: HFOSS Project Evaluation. In Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education. ACM, 90--91.Google ScholarDigital Library
- Heidi JC Ellis, Gregory W Hislop, and Michelle Purcell. 2013. Project selection for student involvement in humanitarian FOSS. In Software Engineering Education and Training (CSEE&T), 2013 IEEE 26th Conference on. IEEE, 359--361.Google Scholar
- Heidi JC Ellis, Michelle Purcell, and Gregory W Hislop. 2012. An approach for evaluating FOSS projects for student participation. In Proceedings of the 43rd ACM technical symposium on Computer Science Education. ACM, 415--420.Google ScholarDigital Library
- Clarice Ferreira, Cleice Souza, Gustavo Pinto, Igor Steinmacher, and Paulo Meirelles. 2018. When students become contributors: leveraging OSS contributions in software engineering courses. In Proceedings of the XXXII Brazilian Symposium on Software Engineering. ACM, 260--269.Google ScholarDigital Library
- Erich Gamma. 1995. Design patterns: elements of reusable object-oriented software. Pearson Education India.Google Scholar
- Swapna Gokhale, Thérèse Smith, and Robert McCartney. 2013. Teaching software maintenance with open source software: Experiences and lessons. In 2013 IEEE Frontiers in Education Conference (FIE). IEEE, 1664--1670.Google ScholarCross Ref
- S Gokhale, T Smith, and R McCartney. 2013. Teaching software maintenance with open source software: Experiences and lessons. In Frontiers in Education Conference, IEEE. IEEE, 1664--1670.Google ScholarCross Ref
- Swapna S Gokhale, Thérèse Smith, and Robert McCartney. 2012. Integrating open source software into software engineering curriculum: Challenges in selecting projects. In Proceedings of the First International Workshop on Software Engineering Education Based on Real-World Experiences. IEEE Press, 9--12.Google ScholarCross Ref
- Mirela Gutica. 2018. Improving students' engagement with large-team software development projects. In Proceedings of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education. ACM, 356--357.Google ScholarDigital Library
- Reid Holmes, Michelle Craig, Karen Reid, and Eleni Stroulia. 2014. Lessons learned managing distributed software engineering courses. In Companion Proceedings of the 36th International Conference on Software Engineering. ACM, 321--324.Google ScholarDigital Library
- C Horstmann. 2009. Challenges and Opportunities in an Open Source Software Development Course. In Free and Open Source Software (FOSS) Symposium. 1--3. http://www.hfoss.org/symposium09/.Google Scholar
- Gary Hsieh, Youyang Hou, Ian Chen, and Khai N Truong. 2013. Welcome!: social and psychological predictors of volunteer socializers in online communities. In Proceedings of the 2013 conference on Computer supported cooperative work. ACM, 827--838.Google ScholarDigital Library
- Letizia Jaccheri and Thomas Osterlie. 2007. Open source software: A source of possibilities for software engineering education and empirical software engineering. In Emerging Trends in FLOSS Research and Development, 2007. FLOSS'07. First International Workshop on. IEEE, 5--5.Google ScholarDigital Library
- Oliver Laitenberger and Horst M Dreyer. 1998. Evaluating the usefulness and the ease of use of a web-based inspection data collection tool. In Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No. 98TB100262). IEEE, 122--132.Google ScholarCross Ref
- Becka Morgan and Carlos Jensen. 2014. Lessons learned from teaching open source software development. In IFIP International Conference on Open Source Systems. Springer, 133--142.Google ScholarCross Ref
- Debora MC Nascimento, Roberto Almeida Bittencourt, and Christina Chavez. 2015. Open source projects in software engineering education: a mapping study. Computer Science Education 25, 1 (2015), 67--114.Google ScholarCross Ref
- Debora MC Nascimento, Christina FG Chavez, and Roberto A Bittencourt. 2018. The adoption of open source projects in engineering education: a real software development experience. In 2018 IEEE Frontiers in Education Conference (FIE). IEEE, 1--9.Google ScholarDigital Library
- Debora Maria Coelho Nascimento. 2017. Educacão em engenharia de software com a adoção de projetos de código aberto: uma análise detalhada. Ph.D. Dissertation. Universidade Federal da Bahia.Google Scholar
- O OMG. 2011. OMG Unified Modeling Language (OMG UML) Version 2.4. 1. (2011).Google Scholar
- PM Papadopoulos, I Stamelos, and A Meiszner. 2013. Enhancing software engineering education through open source projects: Four years of students' perspectives. Education and Information Technologies 18, 2 (2013), 381--397.Google ScholarDigital Library
- Gustavo Henrique Lima Pinto, Fernando Figueira Filho, Igor Steinmacher, and Marco Aurelio Gerosa. 2017. Training software engineers using open-source software: the professors' perspective. In Software Engineering Education and Training (CSEE&T), 2017 IEEE 30th Conference on. IEEE, 117--121.Google Scholar
- S Rekha and V Adinarayanan. 2014. An Open Source approach to enhance industry preparedness of students. In Advances in Computing, Communications and Informatics (ICACCI), Intern. Conf. on. IEEE, 194--200.Google Scholar
- Bianca Shibuya and Tetsuo Tamai. 2009. Understanding the process of participating in open source communities. In Proceedings of the 2009 ICSE Workshop on Emerging Trends in Free/Libre/Open Source Software Research and Development. IEEE Computer Society, 1--6.Google ScholarDigital Library
- Therese Mary Smith, Robert McCartney, Swapna S Gokhale, and Lisa C Kaczmarczyk. 2014. Selecting open source software projects to teach software engineering. In Proceedings of the 45th ACM technical symposium on Computer science education. ACM, 397--402.Google ScholarDigital Library
- Igor Steinmacher, Tayana Uchoa Conte, Christoph Treude, and Marco Aurélio Gerosa. 2016. Overcoming open source project entry barriers with a portal for newcomers. In Proceedings of the 38th International Conference on Software Engineering. ACM, 273--284.Google ScholarDigital Library
- Igor Steinmacher, Igor Wiese, Ana Paula Chaves, and Marco Aurélio Gerosa. 2013. Why do newcomers abandon open source software projects?. In 2013 6th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE). IEEE, 25--32.Google ScholarCross Ref
- David L Streiner. 2003. Being inconsistent about consistency: When coefficient alpha does and doesn't matter. Journal of personality assessment 80, 3 (2003), 217--222.Google ScholarCross Ref
- A Van Deursen, M Aniche, J Aué, R Slag, M De Jong, A Nederlof, and E Bouwers. 2017. A collaborative approach to teaching software architecture. In ACM SIGCSE Technical Symposium on Computer Science Education. ACM, 591--596.Google ScholarDigital Library
Index Terms
- An Approach for Selecting FLOSS Projects for Education
Recommendations
Do we use FLOSS in Software Engineering Education?: Mapping the Profiles and Practices of Higher Education Teachers from Brazil
SBES '20: Proceedings of the XXXIV Brazilian Symposium on Software EngineeringContext: Software Engineering (SE) is a key topic in undergraduate computing-related courses that provides the basic knowledge and skills necessary for professional practice in the software industry. Teaching SE principles, concepts and practices and ...
FLOSS in Software Engineering Education: Supporting the Instructor in the Quest for Providing Real Experience for Students
SBES '19: Proceedings of the XXXIII Brazilian Symposium on Software EngineeringSoftware 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, ...
FLOSS in software engineering education: an update of a systematic mapping study
SBES '18: Proceedings of the XXXII Brazilian Symposium on Software EngineeringContext: Free/Libre/Open Source Software (FLOSS) projects have been used in Software Engineering Education (SEE) to address the need for more realistic settings that reduce the gap between software engineering (SE) courses and industry needs. A ...
Comments