CMPUT 301: Introduction to Software Engineering¶
At a glance
- Units: 3
- Prerequisites: CMPUT 201 or CMPUT 275.
- Offered: Now: Fall 2026; Scheduled: Winter 2027
- Difficulty: Medium
- Workload: Heavy (team-dependent)
- Languages and tools: Java, Android, Firebase, Git
- Textbook: None required (open-access web resources)
Object-oriented design and analysis, with interactive applications as the primary example. Topics include: software process; revision control; Unified Modeling Language (UML); requirements; software architecture, design patterns, frameworks, design guidelines; unit testing; refactoring; software tools. Credit may be obtained in only one of CMPUT 301, BTM 419, or MIS 419.
Official catalogue entry · Course website · facts synced 2026-10-01
What It Covers¶
The course is built around a team project: a Java/Android app with a non-trivial GUI, using Firebase as the cloud backend (the outline warns that Firebase can charge fees if you go past its free limits). In Fall 2026 the project parts were worth 33%, the midterm 15%, and the final 30%, with the rest from participation, labs, and individual assignments. There's no required textbook. AI coding tools are allowed, but you must cite and disclose their use. (Fall 2026 outline)
What Students Say¶
Imported from the original course reviews page, which mixed student contributions with summarized Reddit discussion. Tips aren't term-stamped yet; if you've taken this course recently, add your experience.
The project is the course. Your experience with 301 is almost entirely determined by your team. A good team makes it one of the better courses in the program; a bad team makes it one of the most stressful.
"Don't look at GPA or internships when choosing teammates. Look at what they've committed to on GitHub: commit frequency, net lines of code, contribution history."
"If you get a good team who doesn't rely on AI (LLMs are terrible at Android Studio), the class is really light. Exams are basically free if you pay attention and can think critically."
Instructor notes: - Hazel Campbell: main instructor in recent offerings. Participation marks can be earned online. In Fall 2026 her sections' lectures are recorded; the other section's aren't (outline). - Abram Hindle: teaches 301 in some terms. Students value his industry experience and structured delivery.
Student tips: - Teams are formed by lab section, not lecture section. Coordinate with friends so you're in the same lab. - Screen your team early (before formal team formation if possible). Check reliability and prior contribution history to avoid team project issues later. - The Firebase database integration is where many groups get stuck. Start early. - Brush up on Java OOP before the semester starts.