CPP – C++ Certified Professional Programmer is an advanced-level certification that validates your ability to accomplish coding, design, and problem-solving tasks in modern C++. The certification focuses on the advanced use of C++ language features, the Standard Template Library (STL), advanced algorithms, memory management, and key programming patterns used in professional software development.
By earning the CPP certification, you demonstrate proficiency in using STL containers, algorithms, iterators, functional programming tools, smart pointers, templates, advanced I/O manipulation, and language features introduced in modern C++. The certification also confirms your readiness to work with complex data structures, generic programming, and efficient resource management — skills highly valued in the software industry.
To earn the CPP – C++ Certified Professional Programmer certification, a candidate should demonstrate advanced knowledge and practical skills in the following areas:
Exam name:
CPP – C++ Certified Professional Programmer
Exam code:
CPP-22-0x (x denotes the exam version)
Associated certifications:
CPE – C++ Certified Entry-Level Programmer
CPA – C++ Certified Associate Programmer
Recommended prior certification:
CPA – C++ Certified Associate Programmer Certification
Exam version:
CPP-22-02 (Active)
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++ Advanced – Cisco Networking Academy (Go to Cisco NetAcad)
C++ Advanced (Advanced) – 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
The CPP certification exam assesses a candidate’s ability to design, implement, and optimize advanced C++ programs using the Standard Template Library (STL), algorithms, and modern language features. The exam focuses on practical programming skills, efficient use of data structures, algorithm application, memory management, I/O stream manipulation, and generic programming with templates.
The CPP exam consists of 40 questions (items), each contributing one point toward the total score. Candidates can earn a maximum of 40 points, with their total score 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.
Block 1 – Sequence Containers and Container Adapters
(Exam items: 4 | Weight: 13.25%)
Scope & Keywords: std::vector, std::deque, std::list, std::queue, std::priority_queue, std::stack, container adapters, iterators, element access, insertion and removal methods, use with user-defined types.
Block 2 – Associative Containers
(Exam items: 4 | Weight: 13.25%)
Scope & Keywords: std::set, std::multiset, std::map, std::multimap, insertion, deletion, search, iterators, key-value pairs, use with user-defined types.
Block 3 – Algorithms: Non-Modifying Sequence Operations
(Exam items: 4 | Weight: 13.25%)
Scope & Keywords: std::for_each, std::find, std::find_if, std::find_end, std::find_first_of, std::adjacent_find, std::search, std::search_n, std::count, std::count_if, std::mismatch, std::equal, iteration, searching, comparing ranges.
Block 4 – Algorithms: Modifying Sequence Operations
(Exam items: 4 | Weight: 13.25%)
Scope & Keywords: std::copy, std::fill, std::generate, std::swap, std::transform, std::replace, std::remove, std::unique, std::reverse, std::rotate, std::partition, modifying container elements, removing duplicates, rearranging sequences.
Block 5 – Algorithms: Sorting and Binary Search
(Exam items: 5 | Weight: 16.5%)
Scope & Keywords: std::sort, std::stable_sort, std::lower_bound, std::upper_bound, std::binary_search, sorting algorithms, binary search, sorted containers, custom comparison functions.
Block 6 – Algorithms: Merge, Heap, Min, Max
(Exam items: 5 | Weight: 16.5%)
Scope & Keywords: std::merge, std::inplace_merge, std::includes, std::set_union, std::set_intersection, std::set_difference, std::set_symmetric_difference, std::min_element, std::max_element, merging sorted sequences, set operations, min/max search.
Block 7 – STL Functional Objects and Utilities
(Exam items: 2 | Weight: 7%)
Scope & Keywords: std::plus, std::minus, std::transform, std::ptr_fun, functional objects, function adapters, algorithm utilities.
Block 8 – Advanced I/O
(Exam items: 2 | Weight: 7%)
Scope & Keywords: std::cout, std::cin, setf, unsetf, boolalpha, noshowpoint, setprecision, fixed, setw, stream manipulators, formatting output.
Block 9 – Templates
(Exam items: 2 | Weight: 7%)
Scope & Keywords: template functions, function templates, class templates, template specialization, nested templates, operator overloading with templates.
A Minimally Qualified Candidate (MQC) for the CPP – C++ Certified Professional Programmer certification demonstrates advanced programming proficiency in C++ and a strong command of the Standard Template Library (STL). The MQC can effectively select and apply STL containers, iterators, and algorithms to solve complex programming problems.
The candidate possesses the ability to use advanced STL algorithms for searching, sorting, merging, and set operations, and can apply functional programming utilities, advanced I/O formatting techniques, and generic programming patterns with templates. They are skilled in working with both built-in and user-defined data types, understand the proper use of iterators and function objects, and can write efficient, reusable, and maintainable code in C++.
The MQC is prepared to work on real-world software projects that require deep knowledge of modern C++ practices, resource management, and algorithmic thinking, and is ready to pursue advanced professional roles in software development.
Last updated: July 22, 2025
First published: September 10, 2013
Aligned with CPP-22-02