COMP2100: Software Design Methodologies
Where 'it works on my machine' stops being good enough: modular design, unit and integration testing, code review, and git used properly rather than as a backup button. Group assignments run across most of the semester, so the design decisions from week 3 are the ones you're debugging in week 10.
Credit units
6 units
Instructor
Dr. Priya Ramanathan
Prerequisites
COMP1100, or equivalent experience writing and reading small programs.
Learning objectives
By the end of this course, students will be able to:
- Apply modular design to a codebase larger than one file
- Write unit and integration tests that actually catch regressions
- Use git branching, review and merging as a real development workflow, not a backup button
- Give and act on constructive code review feedback
Assessment
- Design exercises15%Short individual exercises on modular design and testing, submitted fortnightly.
- Group project — milestone 120%A working skeleton with a test suite and a documented git history, built in teams of four.
- Group project — milestone 230%The completed system from milestone 1, extended and refactored against changing requirements.
- Individual reflection & exam35%A closed-book exam plus a short individual reflection on the group project's design decisions.
Group milestones are demoed and submitted with a git history the marker can inspect; the exam is in-person and closed-book.
Timetable
Lecture: Wed 10am–11am, Manning Clark 2
3 tutorial option(s) — pick one on the timetable page after enrolling.
- Tutorial A: Mon 1pm–2pm, CSIT N103
- Tutorial B: Wed 2pm–3pm, CSIT N103
- Tutorial C: Fri 9am–10am, CSIT N104
4/4 courses added.