Software Engineering

An introduction to fundamental concepts and essential practices in software development, including requirement gathering, design, debugging, testing, and deployment.

This course is designed to prepare students for the practical realities of the industry by focusing on the essential skills required to become effective software engineers. Beyond just writing code, we explore the holistic lifecycle of software creation. We begin by deconstructing the development process and identifying various types of requirements. The curriculum then dives deep into conceptual design, usability, and architectural modeling. Students will also gain proficiency in “developer-centric” tasks such as program comprehension, systematic debugging, and rigorous code reviews. The final phase of the course covers the critical logistics of software testing, deployment, and monitoring, while emphasizing the professional “soft skills” like communication and productivity within large organizations.


Instructors


Course Schedule & Topics

The course is structured over 12 weeks, moving from initial requirements through design, development, and eventual deployment.

Week Primary Focus Key Topics Covered
1 Development Process Deconstructing the software development process and lifecycles.
2 Requirements Engineering Identifying functional and non-functional software requirements.
3 Conceptual Design Software Conceptual Design and high-level planning.
4 User Experience Software Usability and human-centric design principles.
5 Architecture & Modeling Software Design: Structural modeling and architectural patterns.
6 Quality & Evaluation Software Design: Evaluating design quality and effectiveness.
7 Program Comprehension Techniques for reading, understanding, and navigating existing codebases.
8 Debugging Systematic approaches to program debugging and fault localization.
9 Quality Assurance Code Reviewing practices and the importance of technical documentation.
10 Software Testing Unit testing, integration testing, and validation strategies.
11 Deployment & Operations Software Deployment strategies and post-launch monitoring.
12 Professional Practice Communication, productivity, and navigating software organizations.

Material used