CPP – C++ Certified Professional Programmer Certification
CPP – C++ Certified Professional Programmer certification is a professional certificate that measures your ability to accomplish coding and design tasks related to advanced topics of the C programming language, as well as advanced programming techniques, including the library functions and the usage of the preprocessor.
A test candidate should demonstrate sufficient knowledge of the following concepts:
- Handling variable number of parameters ()
- Low level IO ()
- Memory and strings ( et al.)
- Processes and threads
- Floats and ints once again (, , et al.)
- Network sockets –the absolute basics
Exam Information
CPP – C++ Certified Professional Programmer
Associated certifications:
CPE – C++ Certified Entry-Level Programmer,
CPA – C++ Certified Associate Programmer
CPA – C++ Certified Associate Programmer Certification
65 minutes (exam) + approx. 10 minutes (Non-Disclosure Agreement/Tutorial)
Single-choice questions, multiple-choice questions
1. C++ Advanced - Skills for ALL (coming soon)
2. C++ Advanced (Advanced) (Edube, self-enroll/self-study)
CPP – C++ Certified Professional Programmer Certification: Exam Syllabus
Exam block #1: Templates
Objectives covered by the block
- What are templates,
- Basic syntax,
- Function templates,
- Class templates,
- When to use templates,
- Typical problems when using templates.
Exam block #2: STL Sequential containers
Objectives covered by the block
- Types of sequential containers,
- vector, deque, list and their API,
- Sequential container adapters – stack, queue and priority queue,
- Dealing with objects as container elements,
- Usage – when to use what.
Exam block #3: STL Associative containers
Objectives covered by the block
- Types of associative containers
- set and multiset – behavior and API,
- map and multimap – behavior and API,
- Putting objects into set and map,
- Usage – when to use what.
Exam block #4: Non-modifying STL algorithms
Objectives covered by the block
- Definition of a non-modifying algorithm
- List of non-modifying algorithms: for_each, find, find_if, find_end, find_first_of, adjacent_find, count, count_if, mismatch, equal, search, search_n,
- Examples,
- Container compatibility.
Exam block #5: Modifying STL algorithms
Objectives covered by the block
- Definition of a modifying algorithm,
- List of modifying algorithms: transform, copy, copy_backward, swap, swap_ranges, iter_swap, replace, fill, fill_n, generate, generate_n, remove, remove_if, unique, unique_copy, reverse, reverse_copy, rotate, partition, stable_partition
- Examples,
- Container compatibility.
Exam block #6: Sorting STL operations
Objectives covered by the block
- List of sorting algorithms: random_shuffle, sort, stable_partition, lower_bound, upper_bound, equal_range, binary_search,
- Examples,
- Containers compatibility,
- Sorting of objects.
Exam block #7: STL merge operations
Objectives covered by the block
- List of merging algorithms: merge, includes, min_element, max_element, inplace_merge,
- STL operations for sets,
- Examples,
- Container compatibility.
Exam block #8: STL utilities and functional library
Objectives covered by the block
- STL “small” tools,
- List of useful functors,
- Examples.
Exam block #9: STL advanced I/O
Objectives covered by the block
- Classes which provide the input and output capability,
- Console I/O,
- Formatting,
- File I/O,
- Strings I/O,
- Examples.
First published: September 10, 2013
Last updated: December 9, 2018
Aligned with CPP-22-02