Logo webu
Are you interested in studying at Unicorn University? Sign up for an open day and find out more.

Advanced programming in Python

6 ECTS
Bachelor
Czech
Karel Šafr

The aim of the course is to deepen knowledge of the Python programming language with an emphasis on advanced concepts of object-oriented programming (OOP), memory management, data handling and user interface design. Students will learn advanced techniques and tools that will enable them to develop complex applications and solve complex problems more efficiently.

Course outline

OOP in detail
Constructor vs. initializer, magic methods, iterator, generator, context manager, getter and setter, data class.
Multiple inheritance and its applications (e.g. mixin or other patterns), diamond problem and Method Resolution Order (MRO), duck typing and protocol class, pitfalls of multiple inheritance.
Decorator
Decorator as a universal wrapper, its meaning in Python and syntactic sugar.
Python memory management
Python memory management, garbage collection.
Python data model
A preview of how Python works (computational properties of Python and its speed).
Import and its functions
Context and scope, closure, module vs. package, creating your own module/package, installation and its meaning, automatic documentation generation.
Numpy
Sphere of focus, vectorized operations and their advantage over loops in Python, what makes Python slow
Matplotlib
Graphics library, basic graph construction.
Requests
Working with public APIs and downloading data using the requests library.
Pandas
Working with DataFrames, basic statistics, filtering, and data cleaning.
User interface in Pythonu
Overview of libraries for CLI (argparse, cmd) and GUI (curses, Tkinter, PyQT), creating a UI for programs from previous weeks.
Testing in Python
Mocking, unittest a pytest, refactoring, debugging.
document_check.svg
We use cookies on this website to ensure its functionality and to personalise ads, solely with your consent and in accordance with our Cookies Policy.

By clicking on the "Accept cookies" button, you consent to the use of selected cookies and agree to the transfer of behavioural data for the display of targeted advertising on social and advertising networks. You can choose which information you want to share with us by clicking on the Cookie settings button.