CPA – C++ Certified Associate Programmer Certification


CPA – C++ Certified Associate Programmer is a professional certification that verifies your ability to accomplish coding tasks related to core programming concepts in C++ and the fundamental principles of object-oriented programming (OOP). It demonstrates your knowledge of the C++ language’s syntax and semantics, its object-oriented features, and the standard tools used to solve common programming challenges.

By earning the CPA certification, you prove that you can write correct and efficient C++ code, apply object-oriented programming techniques, and understand key language features such as classes, inheritance, exceptions, and pointers. The CPA certification is ideal for those looking to advance their skills beyond entry-level programming and prepare for real-world software development roles.


CPA Badge

To earn the CPA – C++ Certified Associate Programmer certification, a candidate should demonstrate the ability to solve typical programming problems using C++. Key knowledge areas include:

  • understanding core programming concepts such as data types, variables, operators, control structures, and function usage,
  • applying object-oriented programming principles – encapsulation, inheritance, polymorphism – and defining classes and objects,
  • working with pointers, memory management, and handling exceptions,
  • using standard C++ libraries and preprocessor directives effectively in program development.


CPA exam on Certification Roadmap

Exam Information


Exam name:

CPA – C++ Certified Associate Programmer


Exam code:

CPA-21-0x (x denotes the exam version)


Associated certifications:

CPE – C++ Certified Entry-Level Programmer
CPP – C++ Certified Professional Programmer


Prerequisites:

None


Exam version:

CPA-21-02 (Active)
CPA-21-01 (Retired)


Duration:

65 minutes (exam) + approx. 10 minutes (Non-Disclosure Agreement/Tutorial)


Number of questions:

40


Format:

Single-choice questions, multiple-choice questions


Passing score:

70%


Cost:

USD 295 (Exam) – Coming Soon
USD 345 (Exam + Retake)


Languages:

English


Learning resources:

C++ Essentials 2 – Cisco Networking Academy (Go to Cisco NetAcad)
C++ Essentials 2 (Intermediate) – OpenEDG Learning Platform (Go to OpenEDG Edube)


Exam delivery channel:


Exam policies:

Click here to go to Exam Policies


Exam syllabus:

Click here to go to Exam Syllabus


Exam Vouchers

Exam vouchers available through the OpenEDG Voucher Store





CPA Exam Syllabus


Exam Overview

The CPA certification exam assesses the candidate’s ability to write correct and efficient C++ programs, apply fundamental programming techniques, and use object-oriented programming principles. The exam evaluates knowledge of syntax, program logic, memory management, exceptions, preprocessor directives, and key object-oriented concepts like classes, inheritance, and polymorphism.

The CPA exam consists of 40 questions (items), each carrying a different weight and score value depending on its complexity and objective. Candidates can earn up to a maximum of 200 points, with their total score normalized and converted into a percentage. To pass the exam, a candidate must achieve a cumulative score of 70% or higher based on the total points earned across all questions – the result is not calculated as a simple average of scores per exam block.

The scoring system is based on psychometric analysis, where each question is assigned a weight and point value reflecting its difficulty and importance. This ensures that the exam measures knowledge and skills fairly, with the final score representing the total points earned across all questions, rather than a simple count of correct answers.

Exam Objectives by Block

Block 1 – Types & Operators
(Exam items: 9 | Weight: 24.5%)

  1. 1.1 Apply unary, binary, and ternary operators; understand precedence and associativity.
  2. 1.2 Use arithmetic, relational, logical, bitwise, assignment, increment/decrement, and short-circuit operators.
  3. 1.3 Apply the ternary conditional operator (?:).
  4. 1.4 Recognize predefined standard types, data ranges, and internal representations.
  5. 1.5 Use literals in various forms (decimal, octal, hexadecimal, binary, floating-point, char, bool).
  6. 1.6 Work with std::string objects, escape sequences, and string operations (e.g., compare, size, substr, insert).
  7. 1.7 Declare and manipulate aggregates (vectors, arrays, structures, unions, enums).
  8. 1.8 Understand type conversion rules, type casting, promotion, and the sizeof operator.
  9. 1.9 Apply declaration modifiers (signed, unsigned, static, const).

Scope & Keywords: operators, precedence rules, data types, literals, sizeof, std::string methods (compare, substr, insert), arrays, vectors, aggregates, enums, type casting, declaration modifiers.


Block 2 – Control & Exceptions
(Exam items: 8 | Weight: 18%)

  1. 2.1 Use conditional statements (if, else), loops (while, do, for), and control flow keywords (break, continue, goto).
  2. 2.2 Apply multiple-selection constructs (switch, case, default).
  3. 2.3 Understand the use of the return statement to exit functions.
  4. 2.4 Understand exception handling mechanisms (try, catch, throw, catch-all).
  5. 2.5 Recognize exception hierarchies and use the throw() specifier in function declarations.

Scope & Keywords: if, switch, loops, break, continue, goto, return, try, catch, throw, exception classes, exception specifiers.


Block 3 – Functions & Preprocessor Directives
(Exam items: 9 | Weight: 17.5%)

  1. 3.1 Define, declare, and invoke functions with correct syntax.
  2. 3.2 Use typed and void functions with appropriate return statements.
  3. 3.3 Overload functions and assign default parameter values.
  4. 3.4 Pass arguments by value, reference, and pointer.
  5. 3.5 Implement recursion.
  6. 3.6 Apply conventions for main() function declarations.
  7. 3.7 Use preprocessor directives for conditional compilation (#if, #endif, #else, #ifdef).
  8. 3.8 Define parameterized and non-parameterized macros and understand macro expansion.

Scope & Keywords: function declarations, overloading, default parameters, argument passing, recursion, main(), #include, #define, #if, macro expansion.


Block 4 – Pointers
(Exam items: 4 | Weight: 11%)

  1. 4.1 Declare and initialize pointers to variables, objects, functions, and aggregates.
  2. 4.2 Dereference pointers and use the address-of operator (&).
  3. 4.3 Perform pointer arithmetic and comparisons.
  4. 4.4 Manage dynamic memory with new, delete, delete[], and avoid memory leaks.

Scope & Keywords: pointer declaration, dereferencing, nullptr, pointer arithmetic, dynamic memory allocation, new, delete, memory leaks.


Block 5 – Classes & Namespaces
(Exam items: 10 | Weight: 29%)

  1. 5.1 Understand OOP principles: inheritance, encapsulation, polymorphism, abstraction.
  2. 5.2 Define classes, apply access specifiers, and use class components with the :: operator and this pointer.
  3. 5.3 Declare and invoke constructors and destructors, including default, copy, and explicit constructors.
  4. 5.4 Overload class member functions and operators.
  5. 5.5 Implement inheritance (single, multiple), manage visibility, and understand access levels.
  6. 5.6 Work with class type compatibility, casting between types, and use static_cast, dynamic_cast.
  7. 5.7 Override methods, use virtual and polymorphic functions, and apply const in objects and members.
  8. 5.8 Use friend classes and functions.
  9. 5.9 Define and use namespaces, including anonymous and named namespaces, aliases, and the scope resolution operator (::).

Scope & Keywords: OOP concepts, class declaration, constructors, destructors, operator overloading, inheritance, casting, virtual methods, const members, friend, namespaces, scope resolution.


MQC Profile

A Minimally Qualified Candidate (MQC) for the CPA – C++ Certified Associate Programmer certification demonstrates a solid understanding of C++ programming fundamentals, including syntax, data types, operators, and program flow control.

The candidate is able to apply key programming techniques such as function creation, recursion, pointer operations, dynamic memory management, and preprocessor directives. They are proficient in implementing object-oriented programming concepts – including class design, inheritance, encapsulation, and polymorphism – and in managing namespaces and class relationships.

The MQC can write, debug, and maintain simple to moderately complex C++ programs using the core features of the language and is ready to advance toward more specialized or professional programming roles.


Last updated: July 22, 2025
First published: November 15, 2012
Aligned with CPA-21-02