Головна мета курсу – оволодіння технікою об’єктно-орієнтованого програмування на основі мови програмування С++. Ця мова багатопарадигменна, тому її вивчення служить доброю базою для порівняльного аналізу парадигм імперативного програмування. Крім цього, мова С++ базується на мові  програмування С. Залишаючись мовою програмування високого рівня, мова С дотримується концепції, вираженої лозунгом повернення до апаратури (back to hardware). Остання обставина дозволяє зосередити увагу на важливих питаннях нижчого рівня: роботою з машинними структурами даних (бітами, байтами, машинними словами), указниками, машинною арифметикою, програмованим розподілом пам’яті тощо. Отже, обрана нами мова органічно поєднує підходи нижчого й вищого рівнів і при цьому відповідає тенденції до поглиблення типізації.
Саме програмування на С++ найповніше відповідає влучній характеристиці умінь програміста, даній академіком А.П.Єршовим: «Програміст повинен  володіти здібністю першокласного математика до абстракції і логічного мислення у поєднанні з талантом Едісона споруджувати все, що завгодно, з нуля і одиниці. Він повинен поєднувати акуратність бухгалтера з прозорливістю розвідника, фантазію автора детективних романів з тверезою практичністю економіста».
В центрі об’єктно-орієнтованої парадигми перебуває поняття типу, або класу, яке поєднує в собі чотири найважливіші властивості об’єктної моделі: абстракцію, інкапсуляцію, модульність та ієрархію. Кожна окрема властивість притаманна й іншим парадигмам. Так ми маємо абстракцію процедур, інкапсуляцію даних у структурі, ієрархію підструктур, модулі з процедур і даних в Object Pascal або Delphi. Для повноцінної реалізації об’єктно-орієнтованої парадигми залишається тільки доповнити ієрархію успадкуванням, відділити успадкування реалізацій від успадкувань типів, запровадити можливість  налаштування поведінки за допомогою динамічного поліморфізму й ввести узагальнене поняття абстрактного класу або інтерфейсу, керуючись тезою Е.Дейкстри про те, що абстрактність не зводиться до невизначеності, а полягає в створенні нового абсолютно прозорого семантичного рівня.
Увага в курсі об’єктно-орієнтованого програмування концентрується не на складних алгоритмах – на них просто не вистачає часу – а на побудові  обґрунтованих ієрархій, складанні абстрактних інтерфейсів та універсальних сигнатур методів. Ідеал об’єктно-орієнтованого програмування – «програми-пристосуванці» (programming for reuse), придатні до налагодження та функціонування за нових умов лише завдяки дописуванню, але не переписуванню коду. В літературі з програмування часом наводять приклад фрази, яку вважають повною протилежністю алгоритму:
«Піди туди, не знаю куди, за тим, не знаю за чим». Але ж ця фраза – прекрасний приклад абстрактного інтерфейсу, не закованого в пута реалізації. Цей інтерфейс має справу з тими, які ходять і приносять, а куди ходять і що приносять – на цьому етапі неважливо. Це деталі, для з’ясування яких пізніше залишається достатньо простору. Наскільки було б гірше, якби довелося виправляти наслідки походу не туди, куди треба, з доставкою непотрібного або навіть шкідливого чи небезпечного. Сьогодні необхідно вчитися програмувати, заглядаючи у майбутнє, розробляти гнучкі програми, придатні до нових, можливо, навіть несподіваних застосувань. Образно кажучи, парадигму «reuse» можна сформулювати, як спробу відкласти на завтра все, чого можна не уточнювати сьогодні.