0% found this document useful (0 votes)
55 views

Python Syllabus 1

python syllabus

Uploaded by

Pradeep G
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
55 views

Python Syllabus 1

python syllabus

Uploaded by

Pradeep G
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

PCPP1™ – Certified Professional in

Python Programming 1
(Exam PCPP-32-10x) – EXAM
SYLLABUS

PCPP-32-101 Exam

Status: Live & Active

The exam consists of five sections:

Section 1 → 15 items Max Raw Score: 42 (35%)

Section 2 → 7 items Max Raw Score: 14 (12%)

Section 3 → 8 items Max Raw Score: 24 (20%)

Section 4 → 8 items Max Raw Score: 22 (18%)

Section 5 → 7 items Max Raw Score: 18 (15%)

Last updated: March 11, 2022

Aligned with Exam PCPP-32-101

1
Section 1: Advanced Object-Oriented Programming
(35%)
Objectives covered by the block (15 exam items)

PCPP-32-101 1.1 – Understand and explain the basic terms and


programming concepts used in the OOP paradigm

 essential terminology: class, instance, object, attribute, method, type,


instance and class variables, superclasses and subclasses
 reflexion: isinstance(), issubclass()
 the __init__() method
 creating classes, methods, and class and instance variables; calling
methods; accessing class and instance variables

PCPP-32-101 1.2 – Perform Python core syntax operations

 Python core syntax expressions – magic methods: comparison


methods (e.g. __eq__(self, other)), numeric methods
(e.g. __abs__(self)), type conversion methods (e.g. __init__(self)), object
intro- and retrospection (e.g. __str__(self), __instancecheck__(self,
object)), object attribute access (e.g. __getattr__(self, attribute)),
accessing containers (e.g. __getitem__(self, key))
 operating with special methods
 extending class implementations to support additional core syntax
operations

PCPP-32-101 1.3 Understand and use the concepts of inheritance,


polymorphism, and composition

 class hierarchies
 single vs. multiple inheritance
 Method Resolution Order (MRO)
 duck typing
 inheritance vs. composition
 modelling real-life problems using the "is a" and "has a" relations

PCPP-32-101 1.4 Understand the concept of extended function


argument syntax and demonstrate proficiency in using decorators

 special identifiers: *args, **kwargs


 forwarding arguments to other functions
 function parameter handling
 closures
 function and class decorators
 decorating functions with classes

2
 creating decorators and operating with them: implementing
decorator patterns, decorator arguments, wrappers
 decorator stacking
 syntactic sugar
 special methods: __call__, __init__

PCPP-32-101 1.5 Design, build, and use Python static and class methods

 implementing class and static methods


 class vs. static methods
 the cls parameter
 the @classmethod and @staticmethod decorators
 class methods: accessing and modifying the state/methods of a class,
creating objects

PCPP-32-101 1.6 Understand and use Python abstract classes and


methods

 abstract classes and abstract methods: defining, creating, and


implementing abstract classes and abstract methods
 overriding abstract methods
 implementing a multiple inheritance from abstract classes
 delivering multiple child classes

PCPP-32-101 1.7 Understand and use the concept of attribute


encapsulation

 definition, meaning, usage


 operating with the getter, setter, and deleter methods

PCPP-32-101 1.8 Understand and apply the concept of subclassing built-


in classes

 inheriting properties from built-in classes


 using the concept of subclassing the built-ins to extend class
features and modify class methods and attributes

PCPP-32-101 1.9 Demonstrate proficiency in the advanced techniques


for creating and serving exceptions

 exceptions as objects, named attributes of exception objects, basic


terms and concepts
 chained exceptions, the __context__ and __cause__ attributes,
implicitly and explicitly chained exceptions
 analyzing exception traceback objects, the __traceback__ attribute
 operating with different kinds of exceptions

3
PCPP-32-101 1.10 Demonstrate proficiency in
performing shallow and deep copy operations

 shallow and deep copies of objects


 object: label vs. identity vs. value
 the id() function and the is operand
 operating with the copy() and deepcopy() methods

PCPP-32-101 1.11 Understand and perform (de)serialization of Python


objects

 object persistence, serialization and deserialization: meaning,


purpose, usage
 serializing objects as a single byte stream: the pickle module, pickling
various data types
 the dumps() and loads functions
 serializing objects by implementing a serialization dictionary:
the shelve module, file modes, creating chelve objects

PCPP-32-101 1.12 Understand and explain the concept of


metaprogramming

 metaclasses: meaning, purpose, usage


 the type metaclass and the type() function
 special attributes: __name__, __class__, __bases__, __dict__
 operating with metaclasses, class variables, and class methods

Section 2: Coding Conventions, Best Practices, and


Standarization (12%)
Objectives covered by the block (7 exam items)

PCPP-32-101 2.1 – Understand and explain the concept of Python


Enhancement Proposals and Python philosophy

 the PEP concept and selected PEPs: PEP 1, PEP 8, PEP 20, PEP 257
 PEP 1: different types of PEPs, formats, purpose, guidelines
 PEP 20: Python philosophy, its guiding principles, and design;
the import this instruction and PEP 20 aphorisms

PCPP-32-101 2.2 – Employ the PEP 8 guidelines, coding conventions, and


best practices

 PEP 8 compliant checkers


 recommendations for code layout: indentation, continuation lines,
maximum line length, line breaks, blank lines (vertical whitespaces)
 default encodings

4
 module imports
 recommendations for string quotes, whitespace, and trailing
commas: single-quoted vs. double-quoted strings, whitespace in
expressions and statements, whitespace and trailing commas
 recommendations for using comments: block comments, inline
comments
 documentation strings
 naming conventions: naming styles, recommendations
 programming recommendations

PCPP-32-101 2.3 – Employ the PEP 257 guidelines, conventions, and best
practices

 docstrings: rationale, usage


 comments vs. docstrings
 PEP 484 and type hints
 creating, using, and accessing docstrings
 one-line vs. multi-line docstrings
 documentation standards, linters, fixers

Section 3: GUI Programming (20%)


Objectives covered by the block (8 exam items)

PCPP-32-101 3.1 – Understand and explain the basic concepts and


terminology related to GUI programming

 GUI: meaning, rationale, basic terms and definitions


 visual programming: examples, basic features
 widgets/controls – basic terms: windows, title and title bars, buttons,
icons, labels, etc.
 classical vs. event-driven programming
 events – basic terms
 widget toolkits/GUI toolkits

PCPP-32-101 3.2 – Use GUI toolkits, basic blocks, and conventions to


design and build simple GUI applications

 importing tkinter components


 creating an application's main window: the Tk(), mainloop(),
and title methods
 adding widgets to the window: buttons, labels, frames,
the place() method, widget constructors, location, screen
coordinates, size, etc.
 launching the event controller: event handlers, defining and using
callbacks, the destroy() method, dialog boxes
 shaping the main window and interacting with the user

5
 checking the validity of user input and handling errors
 working with Canvas and its methods
 using the Entry, Radiobutton, and Button widgets
 managing widgets with the grid and place managers
 binding events using the bind() method

PCPP-32-101 3.3 – Demonstrate proficiency in using widgets and


handling events

 settling widgets in the window's interior, geometry managers


 coloring widgets, color modes: RGB, HEX
 event handling: writing event handlers and assigning them to
widgets
 event-driven programming: implementing interfaces using events
and callbacks
 widget properties and methods
 variables: observable variables and adding observers to variables
 using selected clickable and non-clickable widgets
 identifying and servicing GUI events

Section 4: Network Programming (18%)


Objectives covered by the block (8 exam items)

PCPP-32-101 4.1 – Understand and explain the basic concepts of


network programming

 REST
 network sockets
 Domains, addresses, ports, protocols, and services
 Network communication: connection-oriented vs. connectionless
communication, clients and servers

PCPP-32-101 4.2 – Demonstrate proficiency in working with sockets in


Python

 the socket module: importing and creating sockets


 connecting sockets to HTTP servers, closing connections with servers
 sending requests to servers, the send() method
 receiving responses from servers, the recv() method
 exception handling mechanisms and exception types

PCPP-32-101 4.3 – Employ data transfer mechanisms for network


communication

6
 JSON: syntax, structure, data types (numbers, strings, Boolean
values, null), compound data (arrays and objects), sample JSON
documents and their anatomies
 the json module: serialization and deserialization, serializing Python
data/deserializing JSON (the dumps() and loads methods), serializng
and deserializing Python objects
 XML: syntax, structure, sample xml documents and their anatomies,
DTD, XML as a tree
 processing xml files

PCPP-32-101 4.4 – Design, develop, and improve a simple REST client

 the request module


 designing, building, and using testing environments
 HTTP methods: GET, POST, PUT, DELETE
 CRUD
 adding and updating data
 fetching and removing data from servers
 analyzing the server's response
 response status codes

Section 5: File Processing and Communicating with a


Program’s Environment (15%)
Objectives covered by the block (7 exam items)

PCPP-32-101 5.1 – Demonstrate proficiency in database programming in


Python

 the sqlite module


 creating and closing database connection using
the connect and close methods
 creating tables
 inserting, reading, updating, and deleting data
 transaction demarcation
 cursor methods: execute, executemany, fetchone, fetchall
 creating basic SQL statements (SELECT, INSERT
INTO, UPDATE, DELETE, etc.)

PCPP-32-101 5.2 – Demonstrate proficiency in processing different file


formats in Python

 parsing XML documents


 searching data in XML documents using
the find and findall methods
 building XML documents using the Element class and
the SubElement function

7
 reading and writing CSV data using functions and
classes: reader, writer, DictReader, DictWriter
 logging events in applications
 working with different levels of logging
 using LogRecord attributes to create log formats
 creating custom handlers and formatters
 parsing and creating configuration files using
the ConfigParser object
 interpolating values in .ini files

You might also like