Instructor Guide

Before the semester

  1. Read Teaching Methodology and this guide once, end to end.
  2. Skim all 32 lecture plans and the Course Outline.
  3. Build the instructor distribution and load it on your teaching laptop: python scripts/build_instructor.py → public_instructor/.
  4. Decide your institution's grade weights (defaults in Assessment Plan) and quiz dates.
  5. Print or distribute: the Resources setup page in week 1.

Preparing one lecture (≈ 30 minutes)

Running the hour

  1. Project the student page only. The instructor page must never be visible to the room — its title reveals the solution approach.
  2. Give a full five minutes for the attempt. Silence is normal; do not narrate over it. Circulate, read shoulders, pick two contrasting approaches to invite.
  3. Discuss before revealing. Write both approaches on the board using the plan's board layout. Ask the room to predict which fails where.
  4. Reveal with the script. Every instructor solution carries a per-case reveal walkthrough you can deliver verbatim or adapt. The same page also holds the five-minute teaching sequence (what to expect in each minute, including the case's most common wrong turn), the difficulty ladder (simplify / extend / three hint levels), and an assessment-use note with a 10-point mini-rubric and a follow-up check.
  5. Distribute the pack, not ad-hoc printouts. Each lecture's notes.md, examples.md, and quiz.md are student-facing and safe to publish; teaching-notes.md is instructor-only and is excluded from the public build (see Instructor-only materials).
  6. Close the cycle by naming the technique: "this was decomposition plus a running total."

The hint ladder (from the methodology page)

Clarify → Nudge → Structure → Approach. If you find yourself explaining a solution during the attempt phase, stop and convert it into a hint at the next rung.

The five-minute cycle in practice

The attempt phase of every Core case follows one repeatable loop. It is a guideline, not a stopwatch ritual — shorten it for Beginner cases that most of the room cracks in two minutes, and hold the full span for Advanced ones.

Facilitating the discussion

Handling multiple solution approaches

Most cases admit at least two honest approaches (the instructor page's Alternative approaches section lists them). The default protocol:

  1. Whichever approach the room produced first gets the board first, even if it is the naive one.
  2. Compare on three axes only: correctness (does it handle the edge cases?), clarity (can a classmate trace it?), cost (steps or passes over the data).
  3. Declare the recommended solution for this course and say why — but also say when the alternative is the better engineering choice. Complexity arguments come from Lecture 25 onward; before that, count operations on concrete inputs instead of using big-O language.
  4. If the room produced only one approach, you supply the second — the instructor page's alternatives are written to be presented as "a section last year did this".

Extensions without derailing the hour

Every student case page carries an Extensions block. Release it when the room solves the case early (the Fast class move below), or assign it as the follow-up homework. Extensions are always optional and never assessed — they exist so strong students have somewhere to go that is not merely "more of the same". If an extension sparks a long debate, park it: "office hours question", and move on to the next case.

Handling the room you actually have

Instructor-only materials and distribution

Instructor-only material lives in case-studies/instructor/, quizzes/keys/, the answer keys inside activities, labs, and assignments, and the audit reports in docs/instructor-reports/ (the expert-tier rationale and the quiz-key / lab-output audits — they quote reference program output, so they are teaching answers in disguise).

The solution bank in brief

Every case-studies/instructor/cs-NNN-*.md page follows one layout:

scripts/validate.py enforces the section set; nothing in this bank is student-facing, and the public build never renders it.

Mid-semester checklist

End-of-semester checklist

Adaptation notes