Appearance
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.
📌 Quick Links
- Read Course Syllabus -- Course policies, expectations, and grading scheme.
- Join Piazza -- Questions and announcements.
- GitHub Enterprise -- access your term project repo using your CWL account.
- Go to Canvas Dashboard -- See grades.
- PrairieLearn -- Submit lab assignments, and project questions.
- iClicker -- Respond to in-class polls.
🗓️ 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?
| Unit | Weeks |
|---|---|
| Unit 1: Design in the small | 1–5 |
| Unit 2: Layers & interfaces | 6–7 |
| Unit 3: Requirements & specification | 9–11 |
| Unit 4: Software process | 12–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.