PB173 Domain specific development

Faculty of Informatics
Spring 2025
Extent and Intensity
1/1/0. 2 credit(s) (plus extra credits for completion). Type of Completion: k (colloquium).
In-person direct teaching
Teacher(s)
doc. RNDr. Petr Švenda, Ph.D. (lecturer)
Lukasz Michal Chmielewski, PhD (seminar tutor)
Bc. Kristína Hanicová (seminar tutor)
Ing. Michal Prívozník (seminar tutor)
RNDr. Martin Ukrop, Ph.D. (assistant)
Guaranteed by
doc. RNDr. Petr Švenda, Ph.D.
Department of Computer Systems and Communications – Faculty of Informatics
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics
Timetable of Seminar Groups
PB173/btc: Mon 17. 2. to Mon 12. 5. Mon 16:00–17:50 A321, P. Švenda
PB173/SCA: Tue 18. 2. to Tue 13. 5. Tue 14:00–15:50 C117, L. Chmielewski
PB173/virtualization: Wed 19. 2. to Wed 14. 5. Wed 10:00–11:50 S505, K. Hanicová, M. Prívozník
Prerequisites
( PB111 Principles of low-level prog. || PB071 Principles of low-level prog. ) && SOUHLAS
We expect you to have knowledge of the appropriate programming language and operating system based on your desired seminar group.
Course Enrolment Limitations
The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 70 student(s).
Current registration and enrolment status: enrolled: 23/70, only registered: 2/70, only registered with preference (fields directly associated with the programme): 1/70
fields of study / plans the course is directly associated with
there are 37 fields of study the course is directly associated with, display
Course objectives
Enhance your programming capabilities in the language appropriate for the particular selected application domain.
Learning outcomes
The general goal of this course is extension of knowledge of a programming language in a particular area of expertise based on the particular seminar group. Each seminar group will define its own specific learning goals.
Syllabus
  • The concrete content of the course depends on the individual thematic groups which are listed in Teacher's information area.
Literature
  • Literatura dle tématické skupiny.
Teaching methods
In lectures, the students create programs in given area, usually one per week, finishing it as individual work. Lectures contains necessary theoretical introduction. Remaining time is devoted to solve practical programming problems with employment of related development tools.
Assessment methods
During the whole semester, student will undertake several programming homework and/or a project. The amount of homework and final evaluation criteria are specified by each tematic group.
Language of instruction
Czech
Further comments (probably available only in Czech)
Study Materials
The course is taught each semester.
Teacher's information

The groups/topics for a given semester will be announced via email before the start of seminar group enrollment and they will be filled to this page.

There are following seminar groups for Spring 2025:

  • 1. C programming with usage of LLM tools in Bitcoin Lighting domain (Petr Švenda, teaching in Czech) – The group will work with extensive production c-Lighting project used for fast payments in Bitcoin ecosystem https://github.com/ElementsProject/lightning in C programming language. For an initial understanding of design, implementation and later also for code extension, we will use large language models (ChatGPT, Copilot). The group is also experimental - the goal is not only to perform some programming in this domain but also to collaboratively discover suitable options for how to use LLMs for effective teaching of programming courses at our faculty.
  • 2. Virtualization (Red Hat, Czech) – the main goal is to demonstrate basics of virtualization technology, practical preparation of virtualization environment and its effective usage. The teaching is spread over the whole semester (2 hours/week).
  • 3. Programming Side-Channel Attacks (teaching in English, Lukasz Chmielewski) - in computer security, a side-channel attack is any attack based on extra information that can be gathered using an unintended channel (e.g., power consumption) because of the fundamental way a computer protocol or algorithm is implemented, rather than flaws in the design of the protocol or algorithm itself. In this seminar group, you will learn principles of side-channel analysis and you will learn how to program various stages of a side-channel attack.

Example topics: Binary exploitation, Perl, Image processing, Applied cryptography and secure programming, Systems programming in Linux, Implementing an interpreter in C++, Efficient programming, Implementing a small OS kernel, Binary analysis and disassembly.

The course is also listed under the following terms Autumn 2010, Autumn 2011, Autumn 2012, Autumn 2013, Autumn 2014, Autumn 2015, Spring 2016, Autumn 2016, Spring 2017, Autumn 2017, Spring 2018, Autumn 2018, Spring 2019, Autumn 2019, Spring 2020, Autumn 2020, Spring 2021, Autumn 2021, Spring 2022, Autumn 2022, Spring 2023, Autumn 2023, Spring 2024, Autumn 2024.
  • Enrolment Statistics (recent)
  • Permalink: https://is.muni.cz/course/fi/spring2025/PB173