Exam block #1: File Processing and Communicating with a Program’s Environment (20%)
Objectives covered by the block (8 exam items)
- Processing different kinds of 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
Exam block #2: Math, Science, and Engineering Tools (20%)
Objectives covered by the block (8 exam items)
- math – a basic tool for elementary evaluations
- NumPy – fundamental package for scientific computing
- SciPy – an ecosystem for mathematics, science, and engineering
- Matplotlib – 2D plotting library producing publication quality figures
- Pandas – a library providing high-performance and data analysis tools
- SciKit-image – a collection of algorithms for image processing
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: 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 important PEPs
Exam block #5: 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
Last updated: March 11, 2019
Aligned with PCPP-32-101