CMPT 276 D300 - Introduction to Software Engineering

Skip to bottom
Week Date Materials Deadlines/Dates Extra
1 Sep 3
Sep 5
  • Chapter 1 - Software Engineering: A Practitioner's Approach [pdf]
  • Programming as Theory-Building [pdf]
  • How Do Committees Invent? [pdf]
2 Sep 10
Sep 12
3 Sep 17
  • Course drop deadline
Sep 19
  • Assignment 1 due
  • Assignment 2 release [github]
4 Sep 24
Sep 26
  • Database Tutorial for Beginners [youtube]
  • SQL Explained in 100 Seconds [youtube]
  • Why Use Database Systems? [youtube] [slides]
  • CI/CD Tutorial using GitHub Actions - Automated Testing & Automated Deployments [youtube]
  • How Do I Understand a Complex Codebase At Work? [youtube]
5 Oct 1
  • An introduction to Requirements Engineering [youtube]
  • Chapter 4: Requirements Engineering - Software Engineering [pdf]
  • Project - Milestone 1 due
  • Requirement Specification vs User Stories [youtube]
Oct 3
  • Quiz 1 - Weeks 1, 2, 3
6 Oct 8
  • No class - dedicated project time
Oct 10
7 Oct 15
  • Application Architecture [video not rendering, I'll lecture in class] [slides]
  • Project - Milestone 2 due
Oct 17
8 Oct 22
Oct 24
  • Application Security
9 Oct 29
  • Chapter 9: Software Evolution - Software Engineering [pdf]
  • Project - Milestone 3 due (Oct 30)
Oct 31
  • Chapter 5: System Modeling - Software Engineering [pdf]
  • Peer Evaluation Form [pdf]
10 Nov 5
  • Project - Milestone 4 due
Nov 7
11 Nov 12
Nov 14
12 Nov 19
Nov 21
  • Reviewing application architecture
13 Nov 26
Nov 28
  • Project - Milestone 5 demo due
14 Dec 2
  • Final day of semester (Tuesday, so no class)
  • Project - Deployment and code-complete due
Dec 3
  • Semester is over - no class!
  • Peer Evaluation Form [pdf]
  • Project - Phase 2 retrospective due

How to Use These Links

The content presented in Materials column are meant to be soaked in. That means explore websites thoroughly, play around with code, and think critically about the videos. Take notes as you go, especially any question that pops into your head. These materials are the fuel for our in-class discussions, which will contextualize the information you absorbed, and questions are vital for understanding.

The content in the Extra column is meant for reference, practice, or if you are just extra curious! You do not need to go through them, or absorb all the information contained in any of them, but they can be helpful for building deeper understanding.

External Resources

I will point you to external resources (especially videos) for two reasons:

  1. they present the same information I would have, but more concisely and with higher production value
  2. they present from a perspective that is convenient for our in-class discussions

In class we will go over the resources and discuss how they should be interpreted, what we can learn from them, and how those teachings can be applied in a software engineering practice.