FLOSS in Software Engineering Education: Supporting the Instructor in the Quest for Providing Real Experience for Students
Resumo
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.
Referências
Benjamin S Bloom, Max D Engelhart, Edward J Furst, Walker H Hill, David R Krathwohl, and Flávia Maria Santana. 1973. Taxionomia de objetivos educacionais.
Grady Booch, James Rumbaugh, and Ivar Jacobson. 2005. Unified Modeling Language User Guide, The (2Nd Edition) (Addison-Wesley Object Technology Series). Addison-Wesley Professional.
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.
David Carrington and S-K Kim. 2003. Teaching software design with open source software. In 33rd Annual Frontiers in Education, 2003. FIE 2003., Vol. 3. IEEE, S1C-9.
Fragkiskos Chatziasimidis and Ioannis Stamelos. 2015. Data collection and analysis of GitHub repositories and users. In Information, Intelligence, Systems and Applications (IISA), 2015 6th International Conference on. IEEE, 1--6.
CSEET 2016. The 29th IEEE Conference on Software Engineering Education and Training. http://paris.utdallas.edu/cseet16/
Ministério da Educação. MEC. 2016. Diretrizes Curriculares - Cursos de Graduação em Engenharia da Computação. (2016). http: //portal.mec.gov.br/index.php?option=com_docman&view=download&alias= 52101-rces005-16-pdf&category_slug=novembro-2016-pdf&Itemid=30192
Sociedade Brasileira de Computação. SBC. 2005. Currículo de Referência para Cursos de Graduação em Bacharelado em Ciência da Computação e Engenharia da Computação. (2005). http://portal.mec.gov.br/index.php?option=com_docman&view=download&alias=52101-rces005-16-pdf&category_slug=novembro-2016-pdf&Itemid=30192
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.
Thaís Ferreira, Davi Viana, Juliana Fernandes, and Rodrigo Santos. 2018. Identifying emerging topics and difficulties in software engineering education in Brazil. In Proceedings of the XXXII Brazilian Symposium on Software Engineering - SBES. ACM, 230--239.
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.
Truong Ho-Quang, Regina Hebig, Gregorio Robles, Michel R. V. Chaudron, and Miguel Angel Fernandez. 2017. Practices and Perceptions of UML Use in Open Source Projects. In Proceedings of the 39th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP '17). IEEE Press, Piscataway, NJ, USA, 203--212. https://doi.org/10.1109/ICSE-SEIP.2017.28
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.
Daniel E Krutz, Samuel A Malachowsky, and Thomas Reichlmayr. 2014. Using a real world project in a software testing course. In Proceedings of the 45th ACM technical symposium on Computer science education. ACM, 49--54.
Julio Cesar Sampaio do Prado Leite and Cláudia Maria Lima Werner (Eds.). 2008. Anais do Fórum de Educação em Engenharia de Software, FEES 2008, Rio de Janeiro, RJ, Brasil, Outubro, 2008. ftp://ftp.inf.puc-rio.br/pub/docs/techreports/08_43_ leite.pdf
Becka Morgan, Gregory W. Hislop, and Heidi J. C. Ellis. 2019. Faculty Development for FLOSS Education. In IFIP Advances in Information and Communication Technology. Springer International Publishing, 165--171. https: //doi.org/10.1007/978-3-030-20883-7_15
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.
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.
Debora Maria Nascimento, Kenia Cox, Thiago Almeida, Wendell Sampaio, Roberto Almeida Bittencourt, Rodrigo Souza, and Christina Chavez. 2013. Using Open Source Projects in software engineering education: A systematic mapping study. In Frontiers in Education Conference, 2013 IEEE. IEEE, 1837--1843.
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.
G Pinto, F Figueira Filho, I Steinmacher, and M Gerosa. 2017. Training software engineers using open-source software: the professors' perspective. In Software Engineering Education and Training (CSEE&T), 30th IEEE Conference on. 1--5.
José Antonio Pow-Sang. 2015. Replacing a traditional lecture class with a jigsaw class to teach analysis class diagrams. In 2015 International Conference on Interactive Collaborative Learning (ICL). IEEE, 389--392.
Václav Rajlich. 2013. Teaching developer skills in the first software engineering course. In Proceedings of the 2013 International Conference on Software Engineering. IEEE Press, 1109--1116.
Mary Shaw. 2000. Software engineering education: a roadmap. In ICSE-Future of SE Track. 371--380.
W. A. F. Silva, I. F. Steinmacher, and T. U. Conte. 2017. Is It Better to Learn from Problems or Erroneous Examples?. In 2017 IEEE 30th Conference on Software Engineering Education and Training (CSEE T). 222--231. https://doi.org/10.1109/CSEET.2017.42
Ben Skudder and Andrew Luxton-Reilly. 2014. Worked examples in computer science. In Proceedings of the Sixteenth Australasian Computing Education Conference-Volume 148. Australian Computer Society, Inc., 59--64.
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.
IEEE Computer Society and Association for Computing Machinery. 2014. Software Engineering 2014: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering. (2014), 134 pages.
Sulayman K Sowe and Ioannis G Stamelos. 2007. Involving software engineering students in open source software projects: Experiences from a pilot study. Journal of Information Systems Education 18, 4 (2007), 425.
Jiaxin Zhu, Minghui Zhou, and Audris Mockus. 2014. Patterns of folder use and project popularity: A case study of GitHub repositories. In Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement. ACM, 30.