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

Python Syllabus 1

python syllabus

Uploaded by

Pradeep G
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views

Python Syllabus 1

python syllabus

Uploaded by

Pradeep G
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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