Core200 LevelFirst SemesterSoftware Engineering
CSC203
Object-Oriented Software Design
Course Description
Object-Oriented Software Design teaches students to organize larger programs around the responsibilities and relationships between the things a program models, rather than a single long sequence of instructions. The course pairs core object-oriented concepts with design principles that keep a growing codebase manageable.
Learning Outcomes
- Model a problem domain using classes, objects, and their relationships.
- Apply encapsulation, inheritance, and polymorphism appropriately, not automatically.
- Recognize and apply a small set of foundational design patterns.
- Refactor a working but poorly structured program toward clearer design.
Weekly Topics
Examines objects & classes from a practical angle, using a case drawn from real systems to motivate the concepts.
Builds directly on the previous week to extend encapsulation, with an emphasis on where the earlier techniques stop working.
Combines a short lecture on inheritance with an in-class exercise students carry into the week's assignment.
Focuses on common mistakes and misconceptions around polymorphism, using student work from the previous assignment as material.
Introduces interfaces & abstract classes and immediately puts it to use in a small design or implementation task.
Situates composition vs inheritance within the broader arc of the course, showing how it connects to what comes next.
Uses a guest dataset or scenario to explore mid-semester review in a setting closer to professional practice.
Introduces design principles (solid) through short lectures and worked examples, building the vocabulary the rest of the course relies on.
Works through common design patterns i in a lab-driven session, with guided exercises students complete and discuss in small groups.
Covers common design patterns ii in depth, connecting the underlying theory to a concrete example the class builds together.
Examines refactoring practice from a practical angle, using a case drawn from real systems to motivate the concepts.
Builds directly on the previous week to extend design project, with an emphasis on where the earlier techniques stop working.
Combines a short lecture on revision with an in-class exercise students carry into the week's assignment.
Assessment
Assignments — 20%
Practical Work — 30%
Mid-Semester — 15%
Final Examination — 35%
Prerequisite Map
Related Courses