Přístupnostní navigace
E-application
Search Search Close
Course detail
FSI-9PVPAcad. year: 2027/2028
The course focuses on advanced programming in Python, with an emphasis on developing supporting applications for scientific and research purposes. It covers advanced programming techniques, software architecture design, automation of computational tasks, parallel and asynchronous programming, performance optimization, and software testing. Attention is also given to modern approaches to software development, distribution, and diagnostics, as well as ensuring the reproducibility of scientific computations.
All development is done with AI support.
Language of instruction
Assignment to study programme types
Mode of study
Guarantor
Department
Learning outcomes of the course unit
Entry knowledge
Basic programming knowledge equivalent to the 1IN (Informatics) course and a basic understanding of Python applications in the student's field of study.
Rules for evaluation and completion of the course
Aims
The aim of the course is to develop students' advanced Python programming skills, with a focus on the design, implementation, and management of supporting applications for scientific and research purposes. Students will learn to apply advanced programming techniques, design modular and maintainable software, automate computational tasks, optimize application performance, and ensure software reliability, testability, and reproducibility of results, including development with AI.
Study aids
Prerequisites and corequisites
Basic literature
Recommended reading
Classification of course in study plans
Lecture
Teacher / Lecturer
Syllabus
All teaching activities incorporate AI support to varying degrees.
Advanced Programming Techniques in Python. Decorators, generators, iterators, context managers, functional programming, type annotations, generic types, and reflection.
Software Design and Architecture. Object-oriented design, design patterns, abstract interfaces, modularization, dependency management, development of custom libraries, and code refactoring.
Program Automation and Execution Control. Metaprogramming, dynamic module loading, CLI tool development, application parameterization, computational task management, and workflow automation.
High-Performance and Reliable Programming. Parallel and asynchronous programming, memory optimization, profiling, exception handling, automated testing, and application debugging.
Scientific Software Development and Operations. Version control, application packaging and distribution, automated building and testing, logging, diagnostics, and reproducibility of computational experiments.