OOP in C++: final assessment
This covers the whole course. Take it after the last module.
Final quiz
Practical assessment: Build a course registration system
Without using hints, write a program that registers students on courses, with a seat limit on each course and prerequisites to check.
- Students and courses are classes with private data and const getters
- There are at least two kinds of course, for example lectures and labs, which differ through virtual functions
- Registering a student on a full course, or one whose prerequisite they lack, throws an exception of your own type
- One registry class owns every object it creates, cannot be copied, and frees everything when it is destroyed
- operator<< prints a student's timetable and a course's class list, and the program compiles with no warnings under -Wall -Wextra
Final project
A bank account system: Build a program that manages several kinds of bank account, with deposits, withdrawals, transfers, monthly interest and a statement for each account.
How it is evaluated
- Correctness: the program does what every requirement says, including on empty and full cases
- Design: each class has one clear responsibility, and inheritance is used only for is a
- Safety: data is encapsulated, ownership is clear, and nothing leaks or is deleted twice
- Clarity: const-correct code with clear names and small member functions
To complete this course
- Score at least 70% on the final quiz
- Solve the beginner and intermediate exercises in every lesson
- Finish the final project and check it against the evaluation criteria