On this page:
09/  29 Planning
09/  22 Pair Programming
09/  18 Systematic Design
09/  15 The Three Ps:   Programming, Presenting, Paneling
09/  11 Welcome:   The Empire Strikes Back


The course demands approximately ten proper lectures, many of them do not take the entire allocated time slot. The rest of the time, we will conduct In-Class Reviews.

Due to Northeastern’s covid restrictions (see Health), we will use a slightly different delivery model from previous years.

The first and last lectures will be delivered in person in the classroom.

For all other lectures we will use the "flipped classroom" model. We will link in short, digestible video clips on critical topic, which we expect you to watch before a meeting. The instructors will briefly summarize these video clips at the beginning of a lecture and then take questions to start further discussion. If there are no questions, they will turn the meeting into a joint coding session so that instructors can answer questions concerning the problem (not questions concerning your chosen TAHBPL).

The meetings will mix in-person and Zoom-based delivery. The Canvas system will send you invites to the class and office hour meetings of instructors. No other information on Canvas is relevant.

09/29 Planning

  1. Plan Top Down, Build Bottom up (By Analogy)

  2. Plan Top Down, Build Bottom up (By Example)

09/22 Pair Programming

  1. Pair Programming I (Why and How)

  2. Pair Programming II ()

09/18 Systematic Design

  1. Complex Software Systems (The Very Basics)

  2. Complex Software Systems (Development Processes)

  3. Complex Software Systems (How We Go About it)

  4. Matthias’s slides

09/15 The Three Ps: Programming, Presenting, Paneling

  1. Egoless Programming I (Programming as a Social Activity)

  2. Egoless Programming II (The Ten Commandments)

  3. Code Reviews I

  4. Code Reviews II

  5. Matthias’s slides

09/11 Welcome: The Empire Strikes Back

  1. Welcome

  2. The Cost of Software

  3. Getting It Right Matters (Cost II)

  4. Systematic Software Design I

  5. Systematic Software Design II (No Silver Bullet )

  6. Systematic Software Design III (Slow and Steady and Systematically)

  7. The Human Element I

  8. The Human Element II (The Psychology of Programming, Radical Candor)

  9. Matthias’s slides