Case-Study Catalog
Auto-generated by scripts/generate_catalog.py. Do not edit by hand; edit the case files' metadata tables instead.
144 cases · Difficulty levels: Beginner, Foundational, Intermediate, Advanced, Expert.
| ID | Title | Difficulty | Lecture | Topics |
|---|---|---|---|---|
| cs-001 | cs-001 — The Coffee Card | Beginner | Lecture 01 | decomposition, assumptions |
| cs-002 | cs-002 — The Elevator Debate | Foundational | Lecture 01 | decomposition, modeling |
| cs-003 | cs-003 — Two Vending Machines | Intermediate | Lecture 01 | assumptions, specification |
| cs-004 | cs-004 — The Library Fine Formula | Expert | Lecture 01 | specification, edge cases |
| cs-005 | cs-005 — Largest of Three | Beginner | Lecture 02 | pseudocode, selection |
| cs-006 | cs-006 — Password Rules | Foundational | Lecture 02 | pseudocode, validation |
| cs-007 | cs-007 — The Vending Machine Script | Intermediate | Lecture 02 | pseudocode, state |
| cs-008 | cs-008 — Shuffling a Playlist | Expert | Lecture 02 | pseudocode, randomness, constraints |
| cs-009 | cs-009 — The ATM Loop | Beginner | Lecture 03 | flowchart, loops |
| cs-010 | cs-010 — Rain or Shine | Foundational | Lecture 03 | flowchart, decisions |
| cs-011 | cs-011 — The Dispatch Loop | Intermediate | Lecture 03 | flowchart, state, termination |
| cs-012 | cs-012 — Guess and Check | Advanced | Lecture 03 | flowchart, game loop |
| cs-013 | cs-013 — Echo with Limits | Beginner | Lecture 04 | python, io, state |
| cs-014 | cs-014 — Course List Cleaner | Foundational | Lecture 04 | python, sequences |
| cs-015 | cs-015 — The Change Maker | Intermediate | Lecture 04 | python, state, arithmetic |
| cs-016 | cs-016 — The Meeting Scheduler | Advanced | Lecture 04 | python, sequences, constraints |
| cs-017 | cs-017 — The Pager Schedule | Beginner | Lecture 05 | modulo, cycles |
| cs-018 | cs-018 — Digits and Their Sum | Foundational | Lecture 05 | digits, loops |
| cs-019 | cs-019 — The Broken Keypad | Intermediate | Lecture 05 | digits, reconstruct |
| cs-020 | cs-020 — The Josephus Ring | Advanced | Lecture 05 | simulation, math, recurrence |
| cs-021 | cs-021 — Trace the Tally | Beginner | Lecture 06 | tracing, loops |
| cs-022 | cs-022 — The Shrinking Loop | Foundational | Lecture 06 | tracing, termination |
| cs-023 | cs-023 — Nested and Confused | Intermediate | Lecture 06 | tracing, nested loops |
| cs-024 | cs-024 — The Off-By-One Museum | Advanced | Lecture 06 | off-by-one, testing |
| cs-025 | cs-025 — The Case of the Missing Sales | Beginner | Lecture 07 | debugging, hypotheses |
| cs-026 | cs-026 — The Off-by-One Invoice | Foundational | Lecture 07 | debugging, boundaries |
| cs-027 | cs-027 — The Ghost Duplicate | Intermediate | Lecture 07 | debugging, state |
| cs-028 | cs-028 — The Heisenbug | Advanced | Lecture 07 | debugging, method |
| cs-029 | cs-029 — Triangle Classifier | Beginner | Lecture 08 | testing, boundaries |
| cs-030 | cs-030 — The Age Gate | Foundational | Lecture 08 | testing, requirements |
| cs-031 | cs-031 — Black Box vs White Box | Intermediate | Lecture 08 | testing, coverage |
| cs-032 | cs-032 — The Flaky Function | Advanced | Lecture 08 | testing, randomness |
| cs-033 | cs-033 — The Reading Log | Beginner | Lecture 09 | aggregation, loops |
| cs-034 | cs-034 — Stockroom Spikes | Foundational | Lecture 09 | aggregation, comparison |
| cs-035 | cs-035 — The Longest Streak | Intermediate | Lecture 09 | aggregation, state |
| cs-036 | cs-036 — Rainfall Windows | Advanced | Lecture 09 | aggregation, windows |
| cs-037 | cs-037 — Username Auditor | Beginner | Lecture 10 | strings, validation |
| cs-038 | cs-038 — The Reversal Family | Foundational | Lecture 10 | strings, slicing |
| cs-039 | cs-039 — Template Mail-Merge | Intermediate | Lecture 10 | strings, parsing |
| cs-040 | cs-040 — The Anagram Detector | Advanced | Lecture 10 | strings, normalisation |
| cs-041 | cs-041 — The Queue Reorder | Beginner | Lecture 11 | lists, slicing |
| cs-042 | cs-042 — Deduplication Patterns | Foundational | Lecture 11 | lists, uniqueness |
| cs-043 | cs-043 — Rotate and Roll | Intermediate | Lecture 11 | lists, rotation |
| cs-044 | cs-044 — The Aliasing Trap | Advanced | Lecture 11 | lists, aliasing, debugging |
| cs-045 | cs-045 — The Median That Lies | Beginner | Lecture 12 | debugging, statistics |
| cs-046 | cs-046 — The Phantom Zero | Foundational | Lecture 12 | debugging, sentinels |
| cs-047 | cs-047 — The Swap That Wasn't | Intermediate | Lecture 12 | debugging, tuples, references |
| cs-048 | cs-048 — The Regression Zoo | Advanced | Lecture 12 | debugging, regression |
| cs-049 | cs-049 — The Word Tally | Beginner | Lecture 13 | dictionaries, counting |
| cs-050 | cs-050 — Course Rosters | Foundational | Lecture 13 | sets, operations |
| cs-051 | cs-051 — The Cache Simulator | Intermediate | Lecture 13 | dictionaries, state |
| cs-052 | cs-052 — The Consensus Checker | Expert | Lecture 13 | dictionaries, voting, logic |
| cs-053 | cs-053 — The Validator Trio | Beginner | Lecture 14 | functions, reuse |
| cs-054 | cs-054 — Refactor the Monolith | Foundational | Lecture 14 | functions, refactoring |
| cs-055 | cs-055 — The Parameter Jungle | Intermediate | Lecture 14 | functions, defaults, mutation |
| cs-056 | cs-056 — Pipelines as Functions | Expert | Lecture 14 | functions, composition |
| cs-057 | cs-057 — The Locker Problem | Beginner | Lecture 15 | counting, patterns |
| cs-058 | cs-058 — Team Photo Lineups | Foundational | Lecture 15 | permutations, constraints |
| cs-059 | cs-059 — The Committee Draw | Intermediate | Lecture 15 | combinations, probability |
| cs-060 | cs-060 — The Birthday Question | Advanced | Lecture 15 | probability, complement |
| cs-061 | cs-061 — The Gradebook Audit | Beginner | Lecture 16 | integration, dictionaries, lists |
| cs-062 | cs-062 — Text Stats on a Budget | Foundational | Lecture 16 | integration, strings |
| cs-063 | cs-063 — The Campus Survey | Intermediate | Lecture 16 | integration, design |
| cs-064 | cs-064 — The Mini Challenge Cup | Advanced | Lecture 16 | integration, strategy |
| cs-065 | cs-065 — Find the First Freeze | Beginner | Lecture 17 | search, linear scan |
| cs-066 | cs-066 — The Course Finder | Foundational | Lecture 17 | search, predicates |
| cs-067 | cs-067 — Two Sorted Halves | Intermediate | Lecture 17 | search, preconditions |
| cs-068 | cs-068 — Peak Finding | Expert | Lecture 17 | search, neighbours |
| cs-069 | cs-069 — Rank the Leaderboard | Beginner | Lecture 18 | sorting, keys |
| cs-070 | cs-070 — The Meeting Merge | Foundational | Lecture 18 | sorting, intervals |
| cs-071 | cs-071 — Closest Pair, Small n | Intermediate | Lecture 18 | sorting, pair scan |
| cs-072 | cs-072 — The Kth Element | Expert | Lecture 18 | sorting, selection |
| cs-073 | cs-073 — The Palindrome Walk | Beginner | Lecture 19 | two pointers, invariants |
| cs-074 | cs-074 — The Pair Sum Contract | Foundational | Lecture 19 | two pointers, preconditions |
| cs-075 | cs-075 — Partition by Parity | Intermediate | Lecture 19 | invariants, partition |
| cs-076 | cs-076 — The Slow-Fast Cycle | Advanced | Lecture 19 | two pointers, termination, cycles |
| cs-077 | cs-077 — The 4-Digit Lock | Beginner | Lecture 20 | brute force, search space |
| cs-078 | cs-078 — Perfect Numbers | Foundational | Lecture 20 | brute force, divisors |
| cs-079 | cs-079 — The Meeting Triple | Intermediate | Lecture 20 | brute force, combinations |
| cs-080 | cs-080 — The Subset Riddle | Advanced | Lecture 20 | brute force, subsets, analysis |
| cs-081 | cs-081 — Guess the Number, Formally | Beginner | Lecture 21 | binary search, halving |
| cs-082 | cs-082 — The First Bad Version | Foundational | Lecture 21 | binary search, boundary |
| cs-083 | cs-083 — Book Allocation | Intermediate | Lecture 21 | binary search, search on answer |
| cs-084 | cs-084 — The Rotten Timeline | Expert | Lecture 21 | binary search, monotonicity |
| cs-085 | cs-085 — The Russian Dolls | Beginner | Lecture 22 | recursion, base case |
| cs-086 | cs-086 — Digit Sum, Twice | Foundational | Lecture 22 | recursion, recurrence |
| cs-087 | cs-087 — Power by Halving | Intermediate | Lecture 22 | divide and conquer, analysis |
| cs-088 | cs-088 — The Tower Steps | Expert | Lecture 22 | recursion, dp preview |
| cs-089 | cs-089 — The Coin Conjecture | Beginner | Lecture 23 | greedy, counterexamples |
| cs-090 | cs-090 — The Meeting Room Marathon | Foundational | Lecture 23 | greedy, exchange argument |
| cs-091 | cs-091 — The Tolerance Ladder | Intermediate | Lecture 23 | dynamic programming, states |
| cs-092 | cs-092 — The Budgeted Syllabus | Advanced | Lecture 23 | dynamic programming, knapsack |
| cs-093 | cs-093 — The Friend Circle | Beginner | Lecture 24 | graphs, modeling |
| cs-094 | cs-094 — The Campus Walk | Foundational | Lecture 24 | bfs, shortest path |
| cs-095 | cs-095 — The Prerequisite Chain | Intermediate | Lecture 24 | graphs, topological order |
| cs-096 | cs-096 — The Epidemic Alarm | Advanced | Lecture 24 | graphs, bfs, simulation |
| cs-097 | cs-097 — The Canteen Queue Log | Beginner | Lecture 25 | data, aggregation |
| cs-098 | cs-098 — Screen Time by Cohort | Foundational | Lecture 25 | data, distributions |
| cs-099 | cs-099 — The Churn Story | Intermediate | Lecture 25 | data, rates |
| cs-100 | cs-100 — The Survey Skew | Expert | Lecture 25 | data, bias, design |
| cs-101 | cs-101 — The Late Bus Frequency | Beginner | Lecture 26 | probability, frequencies |
| cs-102 | cs-102 — The Double-Click Question | Foundational | Lecture 26 | probability, independence |
| cs-103 | cs-103 — The Grid Decision Review | Intermediate | Lecture 26 | conditional probability, false positives |
| cs-104 | cs-104 — The Streak Simulation | Expert | Lecture 26 | probability, simulation |
| cs-105 | cs-105 — The Room Booking Audit | Beginner | Lecture 27 | cleaning, validation |
| cs-106 | cs-106 — The Grade Typos | Foundational | Lecture 27 | cleaning, boundaries |
| cs-107 | cs-107 — The Duplicate Students | Intermediate | Lecture 27 | deduplication, matching |
| cs-108 | cs-108 — The Sensor Dropout | Advanced | Lecture 27 | anomalies, time series |
| cs-109 | cs-109 — The Salary Parable | Beginner | Lecture 28 | mean vs median, skew |
| cs-110 | cs-110 — The Percentage Maze | Foundational | Lecture 28 | percentages, bases |
| cs-111 | cs-111 — The Waiting-Time Twist | Intermediate | Lecture 28 | inspection paradox, averages |
| cs-112 | cs-112 — The Dashboard Defence | Advanced | Lecture 28 | summary design, ethics |
| cs-113 | cs-113 — Dice Before Data | Beginner | Lecture 29 | simulation, randomness |
| cs-114 | cs-114 — The Queue Waiting Game | Foundational | Lecture 29 | simulation, queues |
| cs-115 | cs-115 — The Exam Gambler | Intermediate | Lecture 29 | simulation, strategy |
| cs-116 | cs-116 — The Buffon Needle | Expert | Lecture 29 | simulation, estimation |
| cs-117 | cs-117 — The Poster Budget | Beginner | Lecture 30 | optimization, formulation |
| cs-118 | cs-118 — The Shift Schedule | Foundational | Lecture 30 | optimization, constraints |
| cs-119 | cs-119 — The Knapsack Twins | Intermediate | Lecture 30 | optimization, formulations |
| cs-120 | cs-120 — The Exam Seating | Expert | Lecture 30 | optimization, search |
| cs-121 | cs-121 — The Umbrella Decision | Beginner | Lecture 31 | expected value, payoffs |
| cs-122 | cs-122 — The Game Show Switch | Foundational | Lecture 31 | probability, strategy |
| cs-123 | cs-123 — The Insurance Riddle | Intermediate | Lecture 31 | expected value, risk |
| cs-124 | cs-124 — The Auction Bluff | Advanced | Lecture 31 | game theory, reasoning |
| cs-125 | cs-125 — The Library Robot | Beginner | Lecture 32 | integration, graphs, greedy |
| cs-126 | cs-126 — The Open-Day Planner | Foundational | Lecture 32 | integration, greedy, data |
| cs-127 | cs-127 — The Data Clinic | Intermediate | Lecture 32 | integration, cleaning, statistics |
| cs-128 | cs-128 — The 20-Minute Final | Advanced | Lecture 32 | integration, strategy |
| cs-129 | cs-129 — The Missing Marks | Foundational | Lecture 12 | validation, missing values, communication |
| cs-130 | cs-130 — The Duplicate Rows | Intermediate | Lecture 12 | deduplication, matching, missing values |
| cs-131 | cs-131 — The Two-Desk Counter | Intermediate | Lecture 23 | simulation, service systems, trade-offs |
| cs-132 | cs-132 — The Silent Roster | Intermediate | Lecture 13 | requirements, stakeholders, communication |
| cs-133 | cs-133 — The Late Bus Ledger | Foundational | Lecture 15 | scheduling, communication, assumptions |
| cs-134 | cs-134 — The Sliding Sensor Window | Advanced | Lecture 18 | algorithm selection, trade-offs, anomalies |
| cs-135 | cs-135 — The Split That Leaks | Expert | Lecture 28 | leakage, evaluation, communication |
| cs-136 | cs-136 — The Timetable Collision | Advanced | Lecture 24 | graphs, scheduling, strategy |
| cs-137 | cs-137 — The Backup Window | Advanced | Lecture 26 | risk, trade-offs, strategy |
| cs-138 | cs-138 — The Downtime Ledger | Foundational | Lecture 14 | reliability, aggregation, data |
| cs-139 | cs-139 — The Attendance Frame | Intermediate | Lecture 25 | bias, evaluation, stakeholders |
| cs-140 | cs-140 — The Sliced Anomaly | Intermediate | Lecture 27 | aggregation, bias, data |
| cs-141 | cs-141 — The Rollout Memo | Foundational | Lecture 16 | communication, stakeholders, requirements |
| cs-142 | cs-142 — The Tallied Vote | Beginner | Lecture 09 | aggregation, communication, data |
| cs-143 | cs-143 — The Shelf Replenishment | Intermediate | Lecture 23 | inventory, greedy, trade-offs |
| cs-144 | cs-144 — Two Paths, One Post | Foundational | Lecture 03 | communication, requirements, assumptions |