Skip to content

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 virtual enables 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

  1. Attempt all questions without notes, immediately after finishing the module.
  2. Mark it against the key, and be strict — "I sort of knew it" is not knowledge.
  3. For every question you missed, go back to the section that covers it. Do not simply read the answer.
  4. 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:


Related: Assessments · Exercises · Cheat Sheets · Glossary