DIGITAL LIBRARY
INNOVATING THE SOFTWARE ENGINEERING CLASS THROUGH MULTI-TEAM DEVELOPMENT
Salem State University (UNITED STATES)
About this paper:
Appears in: INTED2023 Proceedings
Publication year: 2023
Pages: 1776-1781
ISBN: 978-84-09-49026-4
ISSN: 2340-1079
doi: 10.21125/inted.2023.0503
Conference name: 17th International Technology, Education and Development Conference
Dates: 6-8 March, 2023
Location: Valencia, Spain
Abstract:
College computer science courses do well at educating students on how to design and implement solutions to simple problems. In beginning courses, the student is challenged to solve simple problems, limited to what can be coded by a single student in a few days or weeks. After the students have mastered the basic skills, the curriculum expands to more complex topics including software engineering. A class in software engineering introduces students to a systematic, defined, and quantifiable approach to the development of software. By using a systematic approach, more complex problems can be tackled, usually involving multiple developers.

Often software engineering classes have the student concentrate on designing and planning the project but stop short of actual student team development of code. This leads to criticism by employers of new graduates that the students are missing skills in working in teams and coordinating multiple overlapping changes to a code base. Additionally, students that are not actively experiencing team development are unprepared to understand and modify existing legacy-code bases written by others.

This paper presents a new approach to teaching undergraduate software engineering that emphasizes not only software engineering methodology but also experiencing development as a member of a team and modifying a legacy code base. Our innovative software engineering course begins with learning the fundamentals of software engineering, followed by examining an existing framework of a social media application. The students are then grouped into multiple software teams, each focusing on a different aspect of the app. The separate teams must define requirements, design, and documentation on the services they are providing. Using an Agile development approach, the teams incrementally add to the code base and demonstrate features as the application evolves. Subsequent iterations of the class, pick up the prior students’ code base, providing experience working with a legacy code base.

Preliminary results of using this approach at the university are presented in this paper including both qualitative and quantitative analysis. Analysis of student software submissions to the cloud-based code repository shows student engagement and contributions over the span of the course. Positive student evaluations show the effectiveness of applying the principles of software engineering to the development of a complex solution in a team environment.
Keywords:
Software engineering, teaching, college computer science, innovative methods, agile.