An Integrated Software Engineering Curriculum Through Project-Based Learning (PBL)

Abstract Software development lifecycle is an integrated process which involves many different tasks including requirements engineering, design, development, and testing. Software engineering students not only need in-depth knowledge of each of these areas, they also need to have a practical understanding about how they integrate together. However, courses such as object-oriented programming, architecture, testing and databases which have many possible connections are typically delivered as separate courses. While this current approach may benefit proficiency in a specific subject, students often lack an understanding of how varied course concepts integrate together as a larger process. Adopting an integrated learning approach helps students face software development challenges earlier in their studies while building resiliency and problem-solving skills. Literature examples show how OOP, data structures and software design courses can be integrated through project-based learning [1]. Evaluation results showed improvement in students' technical, personal and interpersonal skills, all of which are useful for their professional careers. While project-based learning (PBL) is designed in favor of real industry processes and projects, this approach can pose several challenges for instructors in academia [2] [3] including efficient time-management, effort required, and effective student support. In this paper we propose a novel pedagogical approach to integrate final projects of two separate courses in a course-based masters of software engineering program. Students work on a joint project for a) software design and architecture and b) database design, using a model-first approach to integrate important concepts from both courses. In this project, students implement the object-oriented programming (OOP) phase in the first course, then they continue implementing its database in the second course. The goal of this research is to narrate the experience in course integration through PBL and evaluate students' challenges as well as the effectiveness of this approach.The data is collected from an end of term survey and final project artifacts. We analyzed students' coursework by comparing their UML, ER and relational model design decisions with the mismatch problem solutions. We also adopted qualitative and quantitative analysis to understand students' perception about the conflicts between the object-oriented design and the relational database as well as students' level of preparedness for implementing each of the two phases of the project. The results show that students faced all ORM mismatches when translating UML to ER diagram and while implementing the project. All the students opt for only one mapping solution for each of the five mismatched problems in the project. Therefore, it will be helpful if all ORM problems and their mapping strategies are discussed in the OOP class to give students the opportunity to face all ORM mismatches and try different mapping approaches Also, following a PBL approach in course integration removed the challenges of changing the course structure at the department level. In this way, each instructor can make use of tutorial time independently and focus on relevant material while defining a joint project. Overall, this study demonstrated clear student satisfaction and evidence of student preparedness in implementing an integrated software development project. [1] Ribeiro AL, Bittencourt RA. A pbl-based, integrated learning experience of object-oriented programming, data structures and software design. In2018 IEEE Frontiers in Education Conference (FIE) 2018 Oct 3 (pp. 1-9). IEEE. [2] Shoham D, Paul R, Moshirpour M. STUDENT PERCEPTIONS OF PROJECT-BASED LEARNING IN A SOFTWARE ENGINEERING COURSE. InThe 16 th International CDIO Conference (Vol. 1, p. 268). [3] Silva LH, Castro RX, Guimaraes MC. Supporting Real Demands in Software Engineering with a Four Steps Project-Based Learning Approach. In2021 IEEE/ACM 43rd International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET) 2021 May 25 (pp. 50-59). IEEE.