Skip to content

CPSC 310: Introduction to Software Engineering

Welcome to the main course website where you can find the everything you need to know about the course.

🗓️ Semester Roadmap

The course moves outward: from design decisions inside a single class, to the boundaries between modules, to the systems and processes that hold a codebase together over time. Every unit answers the same question at a wider radius — what does it cost to change this, and why?

UnitWeeks
Unit 1: Design in the small1–5
Unit 2: Layers & interfaces6–7
Unit 3: Requirements & specification9–11
Unit 4: Software process12–13

Course materials overview — what each unit covers and why it's ordered this way. Schedule — dates, slides, labs, and deadlines.

🛠️ Project at a Glance

You will not be starting from a blank repository. You inherit a working system that already satisfies two published API versions — and then you have to change it.

Four deliverables, escalating in scope: add a feature and feel where the design fights you, make it testable, design a third API version with a partner, then build it. Dates are on the schedule.

Code is necessary but not sufficient. Every deliverable ships three things: the code, the design rationale behind it, and the process evidence showing how it came to be. See the syllabus for how this is graded.

Course reader licensed under CC BY-SA 3.0.