English
Object-oriented programming in Python
Python is one of the most popular programming languages and a key tool for automation, data analysis, machine learning, and web development. Its simple syntax lets you move quickly from an idea to a working program. This course provides a solid foundation in object-oriented programming for further study in these areas.
This course covers Python 3.14 in JetBrains PyCharm, from basic language constructs, built-in collections, and functional programming to object-oriented programming, file handling, and unit testing. In the final part, students learn to work with relational databases using sqlite3 and SQLAlchemy, perform numerical computing and data analysis with NumPy and pandas, plot with Matplotlib, create PySide6 GUI applications, package applications, and apply static code analysis. Each topic combines a lecture with a laboratory assignment.
Course syllabus
Python language fundamentals
- Python 3.14, JetBrains PyCharm, virtual environments, package management, and Git version control
- Data types, variables, operations, console input/output, and control flow
- Functions: parameters and arguments, scope, recursion, and type hints
- Exception handling and debugging
Data structures and functional programming
- Built-in collections: lists, tuples, sets, dictionaries, and the collections module
- Strings, f-strings, template strings, and regular expressions
- Iterators, generators, generator expressions, lambda functions, and decorators
Object-oriented programming
- Classes and objects: attributes, methods, constructors, properties, and encapsulation
- Inheritance, polymorphism, abstract classes, and protocols
- Special methods and operator overloading, data classes, and enumerations
- Modules and packages, file handling (pathlib, JSON, CSV), and unit testing with pytest
Data processing and GUI applications
- Relational databases: SQL fundamentals, the sqlite3 module, and SQLAlchemy ORM
- Numerical computing, data analysis, and visualization with NumPy, pandas, and Matplotlib
- Creating PySide6 GUI applications: widgets, layouts, signals, and slots
- Model/View architecture, dialogs, and database access in PySide6 applications
- Packaging and distributing Python applications, generic types, and static code analysis
Required software
| Software | Purpose | Topic |
|---|---|---|
| Python 3.14 (via the Python Install Manager) | Interpreter | 1 |
| PyCharm | Development environment | 1 |
| uv | Virtual environments and dependencies | 1 |
| Git | Version control | 1 |
Packages are installed into the project’s virtual environment with pip or uv: pytest (topic 11), SQLAlchemy (topic 12), NumPy, pandas and Matplotlib (topic 13), PySide6 (topic 14), mypy, Ruff and PyInstaller (topic 16). You can use DataGrip to view the SQLite database.
How a course is organized
A course is divided into topics. Each topic corresponds to one lecture and one lab assignment and has four parts:
- Lecture. The theory is split into chapters in reading order, with code examples, diagrams and program output.
- Practice. Worked examples with complete code that show how to do the lab assignment.
- Tasks. 30 variants of the lab assignment, each at three levels of difficulty: 1 – initial, 2 – basic, 3 – advanced. Every task is self-contained, so you can start right away at the level you choose.
- Summary. The topic’s conclusions, self-check questions and useful links.
To prepare for assessment, every course also has Review questions, Review tasks, Useful links and Recommended reading.
How to study
- Open your course and install the development environment named on the course page. The first topic of each course explains how, except “Object-oriented programming in C# II”, which uses the environment from the “Object-oriented programming in C# I” course.
- Read the lecture chapters in order. Type in and run the examples yourself rather than just reading them.
- On the Practice page, first try to solve the problem yourself, then compare your solution with the worked one.
- On the Tasks page, find your variant (your teacher gives you its number) and choose a level of difficulty.
- Check yourself with the questions on the Summary page, and only then move on to the next topic.
- Before the exam, go over the Review questions and solve a few Review tasks.
Navigation
The topics and their chapters are listed in the menu on the left (on a phone, open it with the “Menu” button). The “Next page” button at the bottom of every page follows the course program, and the “On this page” list on the right takes you to a section.
Course materials
- Review questions — 100 questions covering the course topics for self-assessment and exam preparation
- Review tasks — practical tasks by topic
- Useful links — documentation and online resources
- Recommended reading — textbooks and study guides