An undergraduate Software Engineering practice course: bridging the academia-industry gap

  • Sofia Larissa da Costa Paiva UFG
  • Adriana Silveira de Souza UFG
  • Juliano Lopes de Oliveira UFG
  • Mariana Soller Ramada UFG
  • Murilo Lopes da Luz UFG

Resumo


Teaching problem: Software Engineering (SE) practice comprises a set of activities that Software Engineers perform in their typical professional work to produce solutions for needs arising from stakeholders. To learn these activities, the undergraduate student must leave the controlled academic environments that deal with isolated and simplified problems using a single course point of view to reach concrete world working environments, where complex issues must be solved to address the conflicting interests of several stakeholders. Research question: What approaches to undergraduate courses would provide adequate conditions for students to learn SE practice? Situating the case: This paper reports experiences from applying an approach to teaching SE practice in an undergraduate course using a typical industry scenario, where complex SE projects are executed to meet the needs of actual stakeholders. How this case was studied: The reported experience shows the evolution of the proposed course approach after its application on three academic semesters in an undergraduate SE Bachelor’s Degree program in a public university in Brazil. The research material for this report was informally collected over three years of teaching the course, from 2021 to 2023, and indicates that the course approach promotes students’ professional attitudes and technical competencies.

Palavras-chave: Software Engineering Education and Training, Teaching Software Engineering Practice, Undergraduate Software Engineering Course Practice

Referências

ACM and IEEE. 2016. Software engineering Code of Ethics. [link].

ACM and IEEE. 2020. Software Engineering Curriculum. Guidelines for Undergraduate Degree Programs in Software Engineering. [link].

Deniz Akdur. 2022. Analysis of Software Engineering Skills Gap in the Industry. ACM Trans. Comput. Educ. 23, 1, Article 16 (dec 2022), 28 pages. DOI: 10.1145/3567837

André Antunes, Daltro Nunes, Jair Leite, and Marcelo Yamaguti. 2017. Bacharelado em Engenharia de Software. Sociedade Brasileira de Computação (SBC), Porto Alegre, RS, Brazil, Chapter IV, 56–78.

Renata Araújo, Alcides Calsavara, Alessandro Cerqueira, and Jair Leite. 2019. Referenciais de Formação para os Cursos de Graduação em Computação no Brasil - Competências Atitudinais. Technical Report. Sociedade Brasileira de Computação (SBC). 11 pages.

Nana Assyne, Hadi Ghanbari, and Mirja Pulkkinen. 2022. The state of research on software engineering competencies: A systematic mapping study. Journal of Systems and Software 185 (March 2022), 111183.

Mirza Zaeem Baig, Muhammad Usman Ul Haq, Hafiz Muhammad Umer Surkhail, Rabika Iqbal, and Muhammad Mohsin Sheikh. 2018. Bridging the industryacademia collaboration gap a focus towards final year projects. In Proceedings of the 2nd International Conference on High Performance Compilation, Computing and Communications (Hong Kong, Hong Kong) (HP3C). Association for Computing Machinery, New York, NY, USA, 40–44. DOI: 10.1145/3195612.3195620

Renata Brasil-Silva and Fábio Levy Siqueira. 2022. Metrics to quantify software developer experience: a systematic mapping. In Proceedings of the 37th ACM/SIGAPP Symposium on Applied Computing. ACM, Virtual Event, 1562––1569. DOI: 10.1145/3477314.3507304

Manuel Caeiro-Rodríguez, Mario Manso-Vázquez, Fernando A. Mikic-Fonte, Martín Llamas-Nistal, Manuel J. Fernández-Iglesias, Hariklia Tsalapatas, Olivier Heidmann, Carlos Vaz De Carvalho, Triinu Jesmin, Jaanus Terasmaa, and Lene Tolstrup Sørensen. 2021. Teaching Soft Skills in Engineering Education: An European Perspective. IEEE Access 9 (2021), 29222–29242. DOI: 10.1109/ACCESS.2021.3059516

Jonathan Cazalas, Christian Roberson, and Zeeshan Furqan. 2024. From Degree to Developer: the Creation and Evolution of a CS Course Designed to Bridge the Academia-Industry Gap. In Technical Symposium on Computer Science Education (SIGCSE). ACM, Portland, OR, USA, 186–192. DOI: 10.1145/3626252.3630860

Orges Cico, Letizia Jaccheri, Anh Nguyen-Duc, and He Zhang. 2021. Exploring the intersection between software industry and Software Engineering education - A systematic mapping of Software Engineering Trends. Journal of Systems and Software 172 (2021), 110736.

Marcela da C. de Souza, Sandro R. Oliveira, and Sílvio R. Meira. 2017. A Systematic Review to Assist in Identifying Teaching Approaches to Guide the Application of an Interdisciplinary Software Factory in IT Undergraduation. In Simpósio Brasileiro de Engenharia de Software. SBC, Fortaleza, CE, Brazil, 384—-391.

Ray Dawson and Ron Newsham. 1997. Introducing software engineers to the real world. IEEE Software 14, 6 (1997), 37–43. DOI: 10.1109/52.636640

Birgit Demuth, M. Fischer, and Heinrich Hussmann. 2002. Experience in early and late software engineering project courses. In Proceedings 15th Conference on Software Engineering Education and Training (ICSE-SEET). IEEE, Kentucky, USA, 241–248. DOI: 10.1109/CSEE.2002.995216

Anastasia Dimitriadou, Naza Djafarova, Ozgur Turetken, Margaret Verkuyl, and Alexander Ferworn. 2021. Challenges in serious game design and development: Educators’ experiences. Simulation & Gaming 52, 2 (2021), 132–152.

Joelle Ducrot and Venky Shankararaman. 2015. Measuring student performance and providing feedback using Competency Framework. In International Conference on Engineering Education - ICEED. IEEE, Kanazawa, Japan, 55–60. DOI: 10.1109/ICEED.2014.7194688

Thomas Durand. 2015. L’alchimie de la compétence. Revue Francaise de Gestion 253, 8 (2015), 267–295. DOI: 10.3166/RFG.160.261-292

Sigrid Eldh and Sasikumar Punnekkat. 2012. Synergizing industrial needs and academic research for better software education. In International Workshop on Software Engineering Education Based on Real-World Experiences, EduRex. IEEE, Zurich, Switzerland, 33–36. DOI: 10.1109/EduRex.2012.6225703

Reza Fauzan, Daniel Siahaan, Mirotus Solekhah, VrizaWahyu Saputra, Aditya Eka Bagaskara, and Muhammad Ihsan Karimi. 2023. A Systematic Literature Review of Student Assessment Framework in Software Engineering Courses. Journal of Information Systems Engineering and Business Intelligence 9, 2 (2023), 264–275. DOI: 10.20473/jisebi.9.2.264-275

Nuno Flores, Ana CR Paiva, and Nuno Cruz. 2020. Teaching software engineering topics through pedagogical game design patterns: An empirical study. Information 11, 3 (2020), 21.

Ivan Garcia, Carla Pacheco, Andrés León, and Jose A Calvo-Manzano. 2020. A serious game for teaching the fundamentals of ISO/IEC/IEEE 29148 systems and software engineering–Lifecycle processes–Requirements engineering at undergraduate level. Computer Standards & Interfaces 67 (2020), 103377.

Vahid Garousi, Gorkem Giray, Eray Tuzun, Cagatay Catal, and Michael Felderer. 2019. Aligning software engineering education with industrial needs: A metaanalysis. Journal of Systems and Software 156 (Oct. 2019), 65–83.

Eiji Hayashiguchi, Hironori Washizaki, Katsutoshi Shintani, and Daisuke Yoshioka. 2022. The Competency-based Computing Curricula 2020 and SFIA V7 comparison focusing on Digital Transformation Age. In World Engineering Education Conf. IEEE, Santos, Brazil, 1–6. Issue V.

Nicole Herbert. 2018. Reflections on 17 Years of ICT Capstone Project Coordination: Effective Strategies for Managing Clients, Teams and Assessment. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (Baltimore, Maryland, USA) (SIGCSE ’18). Association for Computing Machinery, New York, NY, USA, 215–220. DOI: 10.1145/3159450.3159584

IEEE Computer Society. 2014. Guide to the Software Engineering body of knowledge (SWEBOK) V3. IEEE Computer Society Press, Washington, DC, United States. [link]

IEEE Computer Society. 2014. Software Engineering Competency Model) V1. IEEE Computer Society Press, Washington, DC, United States. [link]

ISO, IEC, and IEEE. 2017. International Standard 12207 - Systems and software engineering — Software life cycle processes. ISO/IEC/IEEE, Geneva, CH.

Letizia Jaccheri and Patricia Lago. 1998. How project-based courses face the challenge of educating software engineers. In Proc. of the joint World Multiconference on Systemics, Cybernetics and Informatics (SCI’98) and the 4th International Conference on Information Systems Analysis and Synthesis (ISAS’98), Lecture Notes in Computer Science, Vol. 750. International Institute of Informatics and Systemics, Orlando, USA, 377–385.

Julio Juárez, Cipriano Santos, and Carlos Brizuela. 2021. A comprehensive review and a taxonomy proposal of team formation problems. Comput. Surveys 54 (2021), 153–186.

Ze Shi Li, Nowshin Nawar Arony, Kezia Devathasan, and Daniela Damian. 2023. “Software is the easy part of Software Engineering” - Lessons and Experiences from A Large-Scale, Multi-Team Capstone Course. In 2023 IEEE/ACM 45th International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET). ACM/IEEE, Melbourne, Australia, 223–234. DOI: 10.1109/ICSE-SEET58685.2023.00027

Georgios Liargkovas, Angeliki Papadopoulou, Zoe Kotti, and Diomidis Spinellis. 2022. Software Engineering Education Knowledge Versus Industrial Needs. IEEE Transactions on Education 65, 3 (2022), 419–427. DOI: 10.1109/TE.2021.3123889

Stephanie Ludi and James Collofello. 2001. An analysis of the gap between the knowledge and skills learned in academic software engineering course projects and those required in real: projects. In 31st Annual Frontiers in Education Conference. Impact on Engineering and Science Education. IEEE, Reno, NV, USA, T2D–8. DOI: 10.1109/FIE.2001.963881

Joseph Maguire, Steve Draper, and Quintin Cutts. 2019. What Do We Do When We Teach Software Engineering?. In Proceedings of the 2019 Conference on United Kingdom & Ireland Computing Education Research. ACM, Canterbury United Kingdom, 1–7.

Maíra R. Marques, Alcides Quispe, and Sergio F. Ochoa. 2014. A systematic mapping study on practical approaches to teaching software engineering. In 2014 IEEE Frontiers in Education Conference (FIE) Proceedings. IEEE, Madrid, Spain, 1–8. DOI: 10.1109/FIE.2014.7044277

José Metrôlho, Fernando Ribeiro, Paula Graça, Ana Mourato, David Figueiredo, and Hugo Vilarinho. 2022. Aligning software engineering teaching strategies and practices with industrial needs. Computation 10, 8 (2022), 129.

Lennart Ohlsson and Conny Johansson. 1995. A practice driven approach to software engineering education. IEEE Transactions on Education 38, 3 (1995), 291–295. DOI: 10.1109/13.406508

Kai Qian, Dan Lo, Reza Parizi, Fan Wu, Emmanuel Agu, and Bei-Tseng Chu. 2018. Authentic Learning Secure Software Development (SSD) in Computing Education. In 2018 IEEE Frontiers in Education Conference (FIE). IEEE, San Jose, California, USA, 1–9. DOI: 10.1109/FIE.2018.8659217

Eric Ras, Ralf Carbon, BjÖrn Decker, and JÖrg Rech. 2007. Experience Management Wikis for Reflective Practice in Software Capstone Projects. IEEE Transactions on Education 50, 4 (2007), 312–320. DOI: 10.1109/TE.2007.904580

Mira Kania Sabariah, Veronikha Effendy, Jati H. Husen, Daffa Hilmy Fadhlurrohman, and Rony Setyawansyah. 2023. Experiences With Gap-Bridging Software Engineering Industry-Academia Collaborative Education Program. In 2023 IEEE 35th International Conference on Software Engineering Education and Training (ICSE-SEET). IEEE, Tokyo, Japan, 168–172. DOI: 10.1109/CSEET58097.2023.00035

Mihaela Sabin, John Impagliazzo, Hala Alrumaih, Cara Tang, and Ming Zhang. 2018. IT2017 report: Implementing a competency-based information technology program. SIGCSE 2018 - Proceedings of the 49th ACM Technical Symposium on Computer Science Education 2018-Janua (2018), 1045–1046. DOI: 10.1145/3159450.3159636

Javier Saldaña-Ramos, Ana Sanz-Esteban, Javier García, and Antonio Amescua. 2014. Skills and abilities for working in a global software development team: a competence model. Journal of Software: Evolution and Process 26, 3 (Feb. 2014), 329–338. DOI: 10.1002/smr.1588

Venky Shankararaman, Paul M. Leidig, Greg Anderson, and Mark Thouin. 2021. IS2020:Competency-Based Information Systems Curriculum Guidelines. Proceedings - Frontiers in Education Conference, FIE 2021-Octob (2021), 1–4. DOI: 10.1109/FIE49875.2021.9637150

Simone S. R. Souza, Bruno H. Oliveira, Filipe Grillo, and Christian de Cico. 2016. Construção de Plataformas Digitais durante o Ensino de Engenharia de Software: um relato de Experiência. In Anais do IX Fórum de Educação em Engenharia de Software. SBC, Maringá, Brasil, 13–22.

Marcus Vinicius Alencar Terra, Vanessa Tavares De Oliveira Barros, and Rodolfo Miranda De Barros. 2022. Performance Management of IT Professionals: A Humanistic Model. In Conference on Computer Science and Intelligence Systems, FedCSIS. IEEE, Sofia, Bulgaria, 721–729. DOI: 10.15439/2022F220

Michel Thiollent. 2005. Insertion of action-research in the context of continued university education. International Journal of Action Research 1, 1 (2005), 87–98. SBES’24, September 30 – October 04, 2024, Curitiba, PR Paiva et al.

Veronika Thurner and Axel Böttcher. 2012. Expectations and deficiencies in soft skills. In Global Engineering Education Conference (EDUCON). IEEE, Marrakech, Morocco, 1–7. DOI: 10.1109/EDUCON.2012.6201197

Denis O. Zmeev and Oleg A. Zmeev. 2020. Project-Oriented Course of Software Engineering Based on Essence. In Conference on Software Engineering Education and Training (ICSE-SEET). IEEE, Munich, Germany, 296–298. DOI: 10.1109/CSEET49119.2020.9206240
Publicado
30/09/2024
PAIVA, Sofia Larissa da Costa; SOUZA, Adriana Silveira de; OLIVEIRA, Juliano Lopes de; RAMADA, Mariana Soller; LUZ, Murilo Lopes da. An undergraduate Software Engineering practice course: bridging the academia-industry gap. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 38. , 2024, Curitiba/PR. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 410-421. DOI: https://doi.org/10.5753/sbes.2024.3516.