Quizzes¶
One self-check quiz per module. Short, unmarked, and the fastest way to find out whether you actually understood what you just read.
How they work¶
Each quiz has two parts:
- Recall and comprehension — multiple choice and short answer on the module's concepts. The answers are facts, so they are either right or wrong.
- Prediction and explanation — short programs, or short snippets, for which you
predict the output or explain the behaviour. These are the questions that matter.
Anyone can memorise that
virtualenables dynamic dispatch; far fewer can say what the following program prints, and why.
Answer keys are kept separate, under docs/quizzes/answers/, so that you can
attempt a quiz honestly before checking. Every answer explains why it is right —
the reasoning is the part worth learning, not the letter.
A quiz is diagnostic, not a grade. The useful outcome is not a score; it is a list of concepts that need another look. Write that list down.
How to use a quiz¶
- Attempt all questions without notes, immediately after finishing the module.
- Mark it against the key, and be strict — "I sort of knew it" is not knowledge.
- For every question you missed, go back to the section that covers it. Do not simply read the answer.
- Wait a week and retry the questions you missed. If you get them right, you have learned it. If not, the concept is still not yours.
Recommended score before moving on: about 80%, with every missed question explained correctly afterwards. A quiz score is a symptom, not a verdict — a missed question is only a problem if you cannot now explain the answer to somebody else. Marking Yourself turns a score into a decision.
The quizzes¶
Ten questions each, mixed MCQ, multiple-select, true/false, output prediction, code analysis and debugging. The module link is the reading; the quiz link is the check.
| Quiz | Module | Topic | After this quiz you should be able to… |
|---|---|---|---|
| 1 | 1 | C++ and the OOP mindset | Explain the compile/link pipeline, and name the four pillars with an example of each |
| 2 | 2 | Classes and objects | Say what is public and private and why, and explain this |
| 3 | 3 | Constructors and destructors | Predict construction and destruction order in a given program |
| 4 | 4 | Encapsulation | Fix a const-correctness error rather than casting it away |
| 5 | 5 | Operators and static members | Choose member vs free for a given operator, and say which stay un-overloadable |
| 6 | 6 | Inheritance | Explain the diamond, and when inheritance is the wrong tool |
| 7 | 7 | Polymorphism | Spot slicing, the missing virtual destructor, and dispatch during construction |
| 8 | 8 | Abstract classes | Explain why an abstract class cannot be instantiated, and what a contract is |
| 9 | 9 | Composition and association | Classify a relationship as composition, aggregation or association, and say who owns what |
| 10 | 10 | Copying and resource management | State which of the Rule of Three, Five and Zero a class needs, and why |
| 11 | 11 | RAII and smart pointers | Choose between unique_ptr, shared_ptr and a value, and explain a cycle |
| 12 | 12 | Templates | Explain why definitions go in headers, and when to prefer virtual |
| 13 | 13 | Exception handling | Identify which of the basic, strong and nothrow guarantees an operation provides |
| 14 | 14 | The STL with OOP | Justify a container choice with a complexity claim, and write a valid comparator |
| 15 | 15 | SOLID and design patterns | Name the principle a given design violates, and say when a pattern is over-engineering |
| 16 | 16 | Advanced OOP capstone | Diagnose an ODR violation, and describe a robust load-from-file strategy |
The keys are one page per quiz, in answers/ —
one link per quiz page, and nothing else.
Quiz pages are published with their module, so a quiz exists once its module does.
Checking more than one module at a time¶
A quiz checks one module. When you want a sweep across several — or across the whole course — use the self-assessment system:
- Concept checks — 36 rapid recall questions
- Code tracing — 12 programs to trace by hand
- Debugging — 12 broken programs to diagnose
- Design questions — 10 open designs
- Final comprehensive assessment — 25 questions across the course
- Practice papers — midterms and a full paper, for exam-style timing
Related: Assessments · Exercises · Cheat Sheets · Glossary