csc444h — software engineering I — fall 2015

required reading

much of the course is based on the book; The Agile Planning Horizon in Professional Software Development by Dr. David Penny. Dr. Penny was nice enough to grant us permission to use his book free of charge!

the book can be downloaded here.


schedule & slides

lectureslidesadditional readings
week 1, september 15th
  • lecture 0a: introduction — 1pp, 4pp
  • lecture 0b: top-10 — 1pp, 4pp
week 2, september 22nd
  • lecture 1a: software company — 1pp, 4pp
  • lecture 1b: modeling — 1pp, 4pp
week 3, september 29th
  • lecture 2: software architecture — 1pp, 4pp
week 4, october 6th
  • lecture 3a: use case & sequence diagrams — 1pp, 4pp
  • lecture 3b: reverse engineering — 1pp, 4pp
week 5, october 13th
  • lecture 4: software development lifecycle — 1pp, 4pp
week 6, october 20th
  • lecture 5: planning — 1pp, 4pp
week 7, october 27th

*** MIDTERM TEST ***

  • lecture 6: capacity constraint — 1pp, 4pp
  • painless software schedules — an old article by Joel Spolski. ignore the obsolete warning. after reading, read the article that obsoletes this one too.
week 8, november 3rd
  • lecture 7a: risk — 1pp, 4pp
  • lecture 7b: releases & versions — 1pp, 4pp
week 9, november 10th
  • lecture 8: requirements analysis — 1pp, 4pp
week 10, november 17th
  • lecture 9: defect & feature tracking — 1pp, 4pp
week 11, november 24th
  • lecture 10: testing — 1pp, 4pp
  • this one's a little weird: rubber duck debugging
  • goodbye world! a presentation by Jim Meyering, maintainer of gnu coreutils, shows that all software, even entrenched legacy stuff like streams in c, can benefit from robustness analysis, v&v, and proper testing.
week 12, december 1st
  • lecture 11: estimation — 1pp, 4pp
week 13, december 8th

*** GROUP PRESENTATIONS ***

  • lecture 12: course summary — 1pp, 4pp