Programming Fundamentals Using C++

Problem-Solving Case Studies

108 case studies for the course's signature teaching activity: the case method for programming. The instructor projects one case, students think for ~5 minutes, the class discusses approaches, and only then is the worked solution revealed.

108 cases · 5 difficulty tiers · every case tied to a lecture (L01–L32) · projector files contain NO solutions.

Worked solutions, discussion points, and grading notes live in the instructor-only area — see instructor/case_studies/README.md (restricted content; students should not open it).

How a case runs in class (≈15 minutes)

PhaseTimeWhat happens
Project0:00Instructor shows the case from the projector file
Think5 minStudents work on paper — no keyboards, no compiler
Discuss5–7 minStudents propose approaches; instructor routes, does not correct
Reveal2–3 minWorked solution + discussion points from the instructor file
ExtendhomeworkThe extension challenge becomes an optional task

The paper-only rule is the point: it forces planning before typing — the single most valuable habit this activity trains.

Case anatomy

Every projector case contains exactly these fields:

The instructor's parallel file adds: expected concepts, common incorrect approaches, instructor discussion points, solution outline, worked C++ solution, test cases, and the extension challenge. The extension challenge is public (it appears on the projector after the reveal); worked extensions stay in the instructor area.

Tiers

TierNameCasesLecturesCharacter
1BeginnerCS-001–020L01–L12Trace, predict, read I/O, first decisions/loops
2FoundationalCS-021–040L13–L16Number algorithms, function design, decomposition
3IntermediateCS-041–060L17–L24Arrays, strings, searching, sorting, counting
4AdvancedCS-061–080L23–L30Complexity, pointers, dynamic memory, records
5Expert introductoryCS-081–108L29–L32Files, validation pipelines, classes, synthesis

Tiers are difficulty bands, not a strict lecture gate — Tier 2 cases may appear in week 9 for revision. Within each file, cases ascend in difficulty.

Files

case-studies/
├── README.md            ← this file
├── by_tier/             ← PROJECTOR files (questions + hints only)
│   ├── tier1_beginner.md
│   ├── tier2_foundational.md
│   ├── tier3_intermediate.md
│   ├── tier4_advanced.md
│   └── tier5_expert_introductory.md
└── index.md             ← ID → lecture → tier → concept map
Instructor copyContent
instructor/case_studies/solutions_tier1.md … solutions_tier5.mdSolution outline, worked code, test cases, discussion points, misconceptions
instructor/case_studies/README.mdHow to run the activity, pacing, rubric

Policies

The five tiers

The data-science section supplements the main bank: DS case studies (PF-DS-CS-1…8).

Programming Fundamentals Using C++ · C++17 · 16 weeksBack to top ↑