cs-132 — The Silent Roster
| Field | Value |
|---|---|
| id | cs-132 |
| difficulty | Intermediate |
| topics | requirements, stakeholders, communication |
| lecture | lecture-13 |
| estimated time | 5-minute attempt + 10-minute discussion |
| prerequisites | lecture-01 (inputs/outputs/rule frame), lecture-02 (pseudocode as precision) |
| objective | elicit the questions a consequential decision depends on before writing any code |
| solution | held by the instructor; discussed after the attempt |
Problem
The club attendance app shows "0 attended" for last week's session. There were definitely people in the room. The session lead wants to email everyone who "missed" it — tonight.
The app's data export contains these columns: badge_id, in_time, out_time, session, device.
Your deliverable — no code:
- At least three plausible meanings of "attended" that this export could support (each interpretation names the columns it needs).
- The single clarifying question you would send to the app team first — the one whose answer changes the most.
- A draft opening line for the email that does not accuse anyone of skipping, and stays honest no matter which interpretation turns out to be true.
If the problem is ambiguous anywhere, state the assumption you are making and carry on — a stated assumption is part of a good answer.
Examples
- Input: the export column list; the session lead's request
- Output: three interpretations with their required columns, one clarifying question, one safe email opening line
Solve for the worked instance first. Then ask what would change if one number, name, or condition were replaced by something stranger.
What to notice
- "0 attended" is a claim about the world, and data pipelines fail silently: an offline badge reader produces the same export as an empty room.
- The decision (an email to every "absent" student) is consequential and one-directional — this is exactly when asking beats coding.
- Each interpretation of "attended" is a different rule, and each rule names the columns that would let you compute it.
Discussion starter
After the solution is revealed, the class spends five minutes on this prompt: "The app team answers: 'the device was offline for that session, but the door log has everyone.' Does that settle it? What do you now owe the session lead before the email goes out?"
Constraints and assumptions
- Difficulty: Intermediate (requirements analysis under ambiguity).
- Topics: requirements, stakeholders, communication.
- You have no access to the app's internals — only the export columns listed and questions to the team.
- Classroom-scale inputs unless the problem says otherwise.
- Time-box: about five minutes for a first attempt; partial answers with clear reasoning are worth more than silent struggling.
- Optional stretch (not required): describe an alternative approach and say when it beats the obvious one.
Hints and extension
- First nudge: what is the cheapest observation that distinguishes "empty room" from "broken pipeline"?
- If stuck after three minutes, write the input/output line you expect and trace the smallest example by hand.
- After the reveal, attempt the extension below before the next lecture.
- Extension challenge: draft the two-line policy you would propose so this session lead never needs you to arbitrate "attended" again.