Exam: PCPP-32-101
Status: ACTIVE
The PCPP-32-101 exam consists of single-select, multiple-select, coding, scenario-based, and interactive items that assess a candidate’s ability to apply advanced object-oriented programming, follow Python coding standards, build GUI applications, implement network communication, and process files and data formats using Python.
Each item is worth a maximum of 4 points. After completion, the candidate’s raw score is normalized and presented as a percentage.
The exam is divided into five sections, each reflecting key areas of professional Python practice. The weight of each section indicates its importance in the overall exam.
The table below summarizes the distribution of exam items and their corresponding weight within the total exam.
| Section | Section Name | Number of Items | Weight |
|---|---|---|---|
| 1 | Advanced Object-Oriented Programming | 15 | 35% |
| 2 | Coding Conventions, Best Practices, and Standardization | 7 | 12% |
| 3 | GUI Programming | 8 | 20% |
| 4 | Network Programming | 8 | 18% |
| 5 | File Processing and Communicating with a Program’s Environment | 7 | 15% |
| 45 | 100% |
Last updated: March 11, 2022
Aligned with Exam PCPP-32-101
Objectives covered by the section → 15 exam items
PCPP-32-101 1.1 – Understand and explain the basic terms and programming concepts used in the OOP paradigm
isinstance(), issubclass()__init__() methodPCPP-32-101 1.2 – Perform Python core syntax operations
__eq__(self, other)), numeric (e.g., __abs__(self)), type conversion (e.g., __int__(self)), intro/retrospection (e.g., __str__(self), __instancecheck__(self, object)), attribute access (e.g., __getattr__(self, attribute)), container access (e.g., __getitem__(self, key))PCPP-32-101 1.3 – Understand and use inheritance, polymorphism, and composition
PCPP-32-101 1.4 – Understand extended function argument syntax and use decorators
*args, **kwargs; forwarding arguments; parameter handling__call__, __init__PCPP-32-101 1.5 – Design, build, and use static and class methods
@classmethod vs. @staticmethod; the cls parameterPCPP-32-101 1.6 – Understand and use abstract classes and methods
PCPP-32-101 1.7 – Understand attribute encapsulation
PCPP-32-101 1.8 – Apply subclassing of built-in classes
PCPP-32-101 1.9 – Advanced techniques for creating and serving exceptions
__context__, __cause__); implicit vs. explicit chaining__traceback__)PCPP-32-101 1.10 – Perform shallow and deep copy operations
id() and the is operatorcopy() and deepcopy()PCPP-32-101 1.11 – (De)serialize Python objects
pickle module; dumps(), loads()shelve: file modes, creating shelve objectsPCPP-32-101 1.12 – Explain the concept of metaprogramming
type metaclass and type()__name__, __class__, __bases__, __dict__; operating with metaclasses, class variables, and class methodsObjectives covered by the section → 7 exam items
PCPP-32-101 2.1 – Python Enhancement Proposals and Python philosophy
import this) and guiding principlesPCPP-32-101 2.2 – Employ PEP 8 guidelines, conventions, and best practices
PCPP-32-101 2.3 – Employ PEP 257 conventions and related standards
Objectives covered by the section → 8 exam items
PCPP-32-101 3.1 – Basic concepts and terminology for GUI programming
PCPP-32-101 3.2 – Use GUI toolkits, blocks, and conventions to build simple GUIs
tkinter; Tk(), mainloop(), titleplace(); coordinates and sizingdestroy(), dialog boxesCanvas methodsEntry, Radiobutton, Button; layout with grid and place; binding events via bind()PCPP-32-101 3.3 – Widgets and event handling
Objectives covered by the section → 8 exam items
PCPP-32-101 4.1 – Basic concepts of network programming
PCPP-32-101 4.2 – Work with sockets in Python
socket module: creating sockets; connecting to HTTP servers; closing connectionssend()); receiving responses (recv()); exception handlingPCPP-32-101 4.3 – Data transfer mechanisms
json module (dumps(), loads) for Python↔JSONPCPP-32-101 4.4 – Design, develop, and improve a simple REST client
requests module; test environmentsGET, POST, PUT, DELETE; CRUD operationsObjectives covered by the section → 7 exam items
PCPP-32-101 5.1 – Database programming in Python
sqlite3 module; connect/close database connectionsexecute, executemany, fetchone, fetchallSELECT, INSERT INTO, UPDATE, DELETE, etc.)PCPP-32-101 5.2 – Process different file formats in Python
find/findall; building XML via Element and SubElementreader, writer, DictReader, DictWriterLogRecord attributes; custom handlers/formattersConfigParser; value interpolation in .ini filesDownload PCPP-32-101 Exam Syllabus in PDF
The Minimally Qualified Candidate (MQC) for the PCPP1™ certification demonstrates professional-level Python skills across advanced object-oriented programming, coding standards, GUI development, network communication, and file/data processing. the MQC can design, implement, test, and troubleshoot medium-size, multi-module applications; apply Pythonic idioms and best practices; and integrate external services and data sources using the standard library and commonly used techniques.
Section 1: Advanced Object-Oriented Programming
The MQC can model real-world domains using classes, objects, inheritance, composition, and polymorphism; reason about and customize behavior through special (dunder) methods; and use introspection for debugging and design. They can:
__eq__, __lt__, __hash__, __str__, __repr__, __len__, __iter__, __getitem__).*args/**kwargs, and callable objects (__call__) to extend behavior.@classmethod and @staticmethod; manage class vs. instance state responsibly.__cause__, __context__).copy/deepcopy).pickle and simple object stores (shelve); explain the risks and trade-offs.type()) and when to avoid overuse.Section 2: Coding Conventions, Best Practices, and Standardization
The MQC writes Pythonic, maintainable code aligned with community standards. They can:
Section 3: GUI Programming
The MQC can design small desktop utilities using a standard toolkit (e.g., tkinter) and event-driven patterns. They can:
grid, place).Section 4: Network Programming
The MQC can implement simple client-side networking and data exchange workflows. They can:
socket module to open connections, send/receive data, and handle exceptions safely.json; parse/process XML at a basic level.requests): perform CRUD, inspect status codes, and handle failures.Section 5: File Processing and Communicating with a Program’s Environment
The MQC can read, write, and transform structured data; configure applications; and persist data locally. They can:
sqlite3 to create tables and run basic SQL (SELECT, INSERT, UPDATE, DELETE); manage transactions and cursors.reader/writer, DictReader/DictWriter), and build/parse XML structures.configparser and interpolate values from .ini files.Overall
The MQC delivers clean, well-documented, and testable Python code; selects suitable language features and libraries to solve problems efficiently; and integrates multiple subsystems (OOP, GUI, networking, storage) into cohesive, reliable applications.
To pass the PCEP-30-02 exam, a candidate must achieve a cumulative average score of at least 70% across all exam blocks.