REAL-WORLD TEAM PROJECTS AS PART OF THE INTRODUCTION TO SOFTWARE ENGINEERING
Comenius University Bratislava (SLOVAKIA)
About this paper:
Conference name: 18th International Technology, Education and Development Conference
Dates: 4-6 March, 2024
Location: Valencia, Spain
Abstract:
For more than 10 years, we have been running a course Introduction to software engineering for 3rd year students of Applied Informatics bachelor study programme. While many higher education programs tend to integrate some kind of project as part of the practical work in this kind of subject, usually the project is an artificial model situation unrelated to any real-world problem and real custommers. Our experience from such simulated projects is that the discussion of the group of student developers solving the project about the requirements specification and/or about the software design becomes ambiguous, superficial, futile, not anchored in the reality, without any true feedback loop, and therefore even misleading, frustrating and potentially leading to meaningless arguments. Another motivation for using real-world projects comes from our experience in teaching other programming courses - such as introduction to Java programming language. Students in that course solve tens of little tasks during one semester. Each task is focused on a particular concept, improving their particular programming skills. Nothing else, however, could give them a more intense learning experience than taking the time to implement a final, more complex project incorporating many features they learned throughout the semester in a mutual concert. Yet, those projects are still in the category of a "larger homework" and they can be solved by an individual student investing one or several days of focused work. In the software engineering course, the projects are for the duration of the whole semester, for groups of four students, supervised by a teacher in weekly meetings. In this article, we explain how we prepare the topics for the projects, how do students select them, what is the overall development process, deliverables and organization of work in order to share our experiences in a wider community. We describe the types of projects and clients, and various pitfalls that we ought to carefully avoid. Keywords:
Software engineering, team project, university-industry collaboration.