![[FA] SIT One SITizen Alumni Initiative_Web banner_1244px x 688px.jpg](/sites/default/files/2024-12/%5BFA%5D%20%20SIT%20One%20SITizen%20Alumni%20Initiative_Web%20banner_1244px%20x%20688px.jpg)
Introduction to Software Engineering
The aim of this introductory module is to enable students to learn and apply the basic principles and processes of software engineering. It gives broad coverage of important terminologies, concepts and techniques in software engineering including commonly used software life-cycle process models (e.g. agile, waterfall, spiral, V-Model, etc.). Upon completion of this course, students will be able to perform basic requirements engineering and design, particularly using UML and be able to adopt appropriate process models for software development projects. They will also have a basic understanding of requirements engineering, software architecture, testing, software maintenance and project planning.
Active learning lectures will be reinforced by flipped tutorials and project-driven labs. For tutorials, students will work in teams to solve pre-assigned problems before the class sessions, and thereby present and defend their solutions during the sessions. In the labs, students will work in teams on client-based projects and utilize a suitable software development life cycle to realize the software products. Besides learning to apply module knowledge during their tutorials and in their development project, students will have the opportunity to learn to make decisions, work, cooperate and communicate with others in a team. As part of the module assessment, each team will develop the client-specified product along with associated deliverables, conduct a software product demonstration as well as undergo individual performance evaluation and peer group evaluation.