Production-level coding in Python
Data is displayed for the academic year: 2024./2025.
Lecturers
Course Description
Skill introduces production and large project intepreter use. First part is focused on architectural topics and challenges, including maintaining large codebase, reactive programing, and model tracking. Second part covers for interpreter architecture, and pragmatic use of its limitations and advantages. Third part covers extending the interpreter with low'level modules. The skill is finalized with a project task covering most of lecture domains.
Study Programmes
University graduate
[FER3-HR] Computing - study
Skills
(1. semester)
(3. semester)
[FER3-HR] Electrical Engineering and Information Technology - study
Skills
(1. semester)
(3. semester)
[FER3-HR] Information and Communication Technology - study
Skills
(1. semester)
(3. semester)
Learning Outcomes
- describe a separation of responsibilities
- describe an organization of large projects
- apply asychronous programming
- describe parallel execution within intepreter runtime
- demonstrate extending the interpreted with low-level modules
- demonstrate inheritance model and metaprogramming
- describe event-driven reactive programming
Forms of Teaching
Lectures
Lectures and guest lectures
Grading Method
Continuous Assessment | Exam | |||||
---|---|---|---|---|---|---|
Type | Threshold | Percent of Grade | Threshold | Percent of Grade | ||
Seminar/Project | 50 % | 100 % | 0 % | 0 % |
Week by Week Schedule
- Architecture: event-driven development, "stochastic" UI actions
- Architecture: MVC, undo/redo
- Architecture: maintaining large codebase, pytest, type hinting, static checkers
- In-depth Python: AST, compile, bytecode & main interpreter loop, GC
- In-depth Python: MRO, metaprogramming
- In-depth Python: GIL, multi-threading, multi-processing, async
- Extending Python - C, ctypes, ref count, C++
- Midterm
- Midterm
- Extending Python - numpy, scipy, efficient computational pipeline
- Extending Python - Rust, PyO3
- 10. Practical project - Phase 1
- 10. Practical project - Phase 2
- 10. Practical project - Phase 3
- Final exam
Literature
General
ID 252446
Winter semester
3 ECTS
L0 English Level
L1 e-Learning
24 Lectures
0 Seminar
0 Exercises
2 Laboratory exercises
0 Project laboratory
0 Physical education excercises
Grading System
Excellent
Very Good
Good
Sufficient