Semester 3 Exam
Required Output Classification
| Required output | Classification | Public/private guidance |
|---|---|---|
| Timed written answers, diagrams, code snippets, and design responses | Checkpoint evidence | Keep raw exam work private so it remains useful for assessment and retake calibration. |
| Post-exam review notes, missed-answer repairs, and Feynman explanations | Practice artifact | Use for spaced review; publish only rewritten explanations that no longer reveal exam solutions wholesale. |
| Capstone-defense or architecture-defense packets created from exam prompts | Portfolio candidate | Polish publicly only when they are original to your project, sanitized, and framed as engineering rationale rather than exam answers. |
This exam measures whether you can reason about design, not whether you can remember chapter titles. Use closed notes unless your study contract explicitly allows one page of handwritten notes.
Format
| Section | Focus | Duration | Points |
|---|---|---|---|
| A | Smells and diagnosis | 20 min | 20 |
| B | Refactoring and safety | 20 min | 20 |
| C | Pattern selection | 20 min | 20 |
| D | Design review and tradeoffs | 30 min | 40 |
Total: 90 minutes, 100 points.
Coverage Map
S3M1: cohesion, coupling, encapsulation, SOLID lenses, smell recognitionS3M2: safe refactor steps, characterization tests, preserving behaviorS3M3: Strategy, Observer, CommandS3M4: Factory, Adapter, Decorator, composition vs subclassingS3M5: code review, ADRs, over-engineering vs under-engineering, reversibility
Section A: Smells and Diagnosis
-
A class named
ReportServicefetches data, formats CSV output, logs audit events, and sends email. Identify two smells and state the first refactor move you would try.
10 points -
A module has small functions and tidy naming, but every change to pricing rules requires edits in five files. What system-level smell does this suggest, and why is it expensive?
10 points
Section B: Refactoring and Safety
-
You inherit a 250-line method with no tests. Describe a safe sequence of steps for refactoring it. Be explicit about what you would do before changing behavior.
10 points -
Explain the role of characterization tests in refactoring. Then give one case where they are not enough by themselves.
10 points
Section C: Pattern Selection
-
Your application supports multiple pricing rules selected at runtime. New rules arrive regularly, and you want to avoid repeated conditional logic. Which pattern is the best fit, and what pressure does it relieve?
10 points -
You must integrate a third-party API whose interface does not match your domain model. Which pattern is the best starting point, and what problem would Factory or Decorator fail to solve here?
10 points
Section D: Design Review and Tradeoffs
-
Review this proposal:
"We only have one export format today, but we should introduce an abstract exporter, three interfaces, a registry, and a plugin loader now so we are ready for the future."
Write a short review response that:
- names the likely over-design risk
- explains what evidence is missing
- suggests a smaller design that preserves future options
20 points
-
Write a one-page mini ADR for a semester-project decision of your choice. Include:
- context
- decision
- alternatives considered
- consequences
The ADR should show that you understand tradeoffs, not just the decision you prefer.
20 points
Scoring Standard
90-100: ready to advance comfortably80-89: acceptable, but revisit the weakest module before Semester 470-79: partial understanding; repeat targeted practice and retake<70: do not advance yet
Automatic hold even with a passing score:
- you cannot explain why a chosen pattern is better than a conditional or simple function
- you propose refactoring without a safety strategy
- your review comments rely on taste words without evidence
Post-Exam Reflection
After grading, write three short notes:
- Which problem type cost you the most time?
- Which wrong answer came from weak judgment rather than weak memory?
- What will you change in your project or review habits before Semester 4?
Added Design-Reasoning Prompts
Use these prompts to test whether the OOAD material is usable under pressure.
- Given a meeting scheduler with recurring meetings, room constraints, and notification channels, identify classes, responsibilities, collaborations, and one invalid inheritance relationship.
- Given a restaurant-management workflow, choose between State, Command, Strategy, and a plain function table. Defend the choice and write one "when not to use it" warning.
- Critique a design that uses factories, adapters, and observers before there is any variation pressure. Name what you would remove first and how tests would protect the simplification.
- Write a short ADR for a pattern choice. It must include context, alternatives, decision, consequences, and a follow-up risk.
Mastery Rubric
| Level | Evidence |
|---|---|
| Beginner pass | Can answer direct questions and complete familiar exercises with light notes. |
| Solid pass | Can solve new variants, explain choices, and connect the work to Semester 2 Algorithms and Data Structures. |
| Strong pass | Can defend tradeoffs, identify failure modes, and produce clean evidence in the portfolio artifact. |
| Not ready | Relies on copied solutions, cannot explain mistakes, or lacks durable artifacts. |
Retake and Repair Rule
If a section is weak, do not only reread. Repair it by producing new evidence: a corrected solution, a fresh implementation, a rewritten proof, a benchmark, a diagram, a runbook, or a short teaching note.
Answer-Quality Examples
Use these examples when grading written answers or spoken explanations.
| Quality | Example pattern |
|---|---|
| Weak | Names a concept but gives no example, constraint, or failure case. |
| Acceptable | Defines the concept and applies it to a familiar exercise. |
| Strong | Applies the concept to a new variant and explains why an alternative would fail. |
| Portfolio-ready | Connects the concept to Semester 2 Algorithms and Data Structures, current project evidence, and a future capstone decision. |
Interleaving Prompt
For any missed answer, add one sentence starting with: This depends on an earlier skill because...
Calibration Materials
Use these learner-visible calibration materials before self-grading or requesting review: