PCPP1 – Certified Professional in Python Programming 1 | Exam Syllabus

Exam block #1: Advanced Perspective of Classes and Object-Oriented Programming in Python (25%)

Objectives covered by the block (10 exam items)

  • Classes, Instances, Attributes, Methods;
  • Working with class and instance data;
  • Copying object data using shallow and deep operations;
  • Inheritance and Polymorphism;
  • Different faces of Python methods: static and class methods;
  • Abstract classes vs. method overloading;
  • Composition vs. Inheritance – two ways to the same destination;
  • Implementing Core Syntax;
  • Subclassing built-ins;
  • Attribute Encapsulation;
  • Advanced techniques of creating and serving exceptions;
  • Serialization of Python objects using the pickle module;
  • Making Python object persistent using the shelve module;
  • Metaprograming (function decorators, class decorators, metaclasses.)

Exam block #2: Python Enhancement Proposals (15%)

Objectives covered by the block (6 exam items)

  • What is PEP?
  • Coding conventions – not only style and naming;
  • PEP 20 – The Zen of Python: a collection of principles that influences the design of Python code;
  • PEP 8 – Style Guide for Python Code: coding conventions for code comprising the standard library in the main Python distribution;
  • PEP 257 – Docstring Conventions: what is docstring and some semantics as well as conventions associated with them;
  • A tour of other important PEPs.

Exam block #3: GUI Programming (20%)

Objectives covered by the block (8 exam items)

  • What is GUI and where it comes from;
  • Constructing a GUI – basic blocks and conventions;
  • Event-driven programming;
  • Currently used GUI environments and toolkits;
  • tkinter  Python interface to Tcl/Tk (tkinter’s application life cycle; widgets, windows and events; sample applications)
  • pygame – a simple way of developing multimedia applications.

Exam block #4: The Elements of Network Programming: Working with RESTful APIs (20%)

Objectives covered by the block (8 exam items)

  • the basic concepts of network programming, REST, network sockets, and client-server communication;
  • How to use and create sockets in Python;
  • how to establish and close the connection with a server;
  • JSON and XML files, and how they can used in network communication;
  • HTTP methods, and how to say anything in HTTP;
  • How to build a sample testing environment;
  • CRUD;
  • How to build a simple REST client;
  • how to fetch and remove data from servers;
  • how to add new data to servers and update the already-existing data.

Exam block #5: File Processing and Communicating with a Program’s Environment (20%)

Objectives covered by the block (8 exam items)

  • Processing files:
    • sqlite3 – interacting with SQLite databases;
    • xml – creating and processing XML files;
    • csv – CSV file reading and writing;
    • logging – basics logging facility for Python;
    • configparser – configuration file parser.
  • Communicating with a program’s environment:
    • os – interacting with the operating system;
    • datetime – manipulating with dates and time;
    • io – working with streams;
    • time – time access and conversions.

Last updated: March 4, 2021
Aligned with PCPP-32-101