FI:PB173 Domain specific development - Course Information
PB173 Domain specific development
Faculty of InformaticsSpring 2025
- Extent and Intensity
- 0/2/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)
Bc. Kristína Hanicová (lecturer)
Lukasz Michal Chmielewski, PhD (lecturer)
Ing. Michal Prívozník (lecturer)
RNDr. Martin Ukrop, Ph.D. (lecturer)
Jan Fiala (seminar tutor)
Mgr. Gabriela Fialová (seminar tutor)
Ing. Šárka Jana Janderková (seminar tutor)
Mgr. Milan Šorf (seminar tutor) - 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 - 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: 0/70, only registered: 0/70, only registered with preference (fields directly associated with the programme): 0/70 - fields of study / plans the course is directly associated with
- Image Processing and Analysis (programme FI, N-VIZ)
- Bioinformatics and systems biology (programme FI, N-UIZD)
- Computer Games Development (programme FI, N-VIZ_A)
- Computer Graphics and Visualisation (programme FI, N-VIZ_A)
- Computer Networks and Communications (programme FI, N-PSKB_A)
- Cybersecurity Management (programme FI, N-RSSS_A)
- Formal analysis of computer systems (programme FI, N-TEI)
- Graphic design (programme FI, N-VIZ)
- Graphic Design (programme FI, N-VIZ_A)
- Hardware Systems (programme FI, N-PSKB_A)
- Hardware systems (programme FI, N-PSKB)
- Image Processing and Analysis (programme FI, N-VIZ_A)
- Information security (programme FI, N-PSKB)
- Informatics (programme FI, B-INF) (2)
- Informatics in education (programme FI, B-IVV) (2)
- Information Security (programme FI, N-PSKB_A)
- Quantum and Other Nonclassical Computational Models (programme FI, N-TEI)
- Computer graphics and visualisation (programme FI, N-VIZ)
- Computer Networks and Communications (programme FI, N-PSKB)
- Principles of programming languages (programme FI, N-TEI)
- Programming and development (programme FI, B-PVA)
- Cybersecurity management (programme FI, N-RSSS)
- Services development management (programme FI, N-RSSS)
- Software Systems Development Management (programme FI, N-RSSS)
- Services Development Management (programme FI, N-RSSS_A)
- Software Systems Development Management (programme FI, N-RSSS_A)
- Software Systems (programme FI, N-PSKB_A)
- Software systems (programme FI, N-PSKB)
- Machine learning and artificial intelligence (programme FI, N-UIZD)
- Teacher of Informatics and IT administrator (programme FI, N-UCI)
- Informatics for secondary school teachers (programme FI, N-UCI) (2)
- Computer Games Development (programme FI, N-VIZ)
- Processing and analysis of large-scale data (programme FI, N-UIZD)
- Natural language processing (programme FI, N-UIZD)
- Course objectives
- Enhance your programming capabilities in the language appropriate for the particular selected application domain.
1. PB173/TechWriting (Technical writing)
• Give students an overview of the technical writing industry, acquire knowledge and skills that are required for a technical writer job role.
• Prepare students to work with technical writers if they are working as developers.
• Prepare students to write better documentation for their future projects.
• Train purposeful, minimalist writing and clear communication. - 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.
1. PB173/TechWriting (Technical writing)
• Understand technical writing principles, goals, and audience.
• Participate actively in writing activities. Students will be able to produce a set of documents related to technology.
• Understand how to analyze data from research and incorporate it into assigned writing clearly, concisely, and logically.
• Edit documents with peer exchange according to professional guidelines.
• Get an overview of tools that are used in technical writing and learn more about cross-team collaboration. - Syllabus
- The concrete content of the course depends on the individual thematic groups which are listed in Teacher's information area.
- 1. PB173/TechWriting (Technical writing):
• Introduction to technical writing (definition and purpose of technical writing, comparison between different writing styles, a day in the life of a technical writer, types of technical documentation and their specifics, target audience)
• Style (accessibility, minimalism, modularity and structure, user focus and information flow, style guides)
• Soft skills (empathy, ethics, cultural awareness, communication skills, curiosity, proactivity, editorial skills, time management)
• Hard skills (definition of hard skills in technical writing, why we need them, product knowledge, engagement with the development team. Understanding user personas, teamwork across QE, product owners, engineers, support teams, planning for tech writing, how to create technical content, content strategy)
• Tools (introducing single sourced and modular documentation, advantages of using markup languages with the ability to set attributes and use conditions, overview of text editors, version control systems, and publishing tools, creating and generating documentation using AsciiDoc and AsciiDoctor)
• Usability (usability of documented products, 10 usability heuristics, usability of documentation deliverables) - 2. PB173/Virtualizace (Virtualization, in Czech language):
The main goal is to provide insight into the domain of virtualization, understanding of principles, practical preparation of the virtualized environment, and effective usage.
- 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.
1. PB173/TechWriting (Technical writing):
• Written work to display writing skills, and to show application and evaluation capabilities
• Portfolio of student work to encourage student self-reflection and to determine student learning over time
• Performance and activity during the lectures - demonstration of acquired skills, and the ability to work collaboratively - Language of instruction
- Czech
- Further comments (probably available only in Czech)
- The course is taught each semester.
The course is taught: every week. - 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.
Currently, we know of the following topics for spring 2025:
- 1. Technical writing (Red Hat, English) – The group will cover basics of technical writing for proper documentation and support of development projects. The teaching is spread over the whole semester (2 hours/week). More information at https://github.com/rh-writers/technical-writing-course-brno
- 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.
- Enrolment Statistics (Spring 2025, recent)
- Permalink: https://is.muni.cz/course/fi/spring2025/PB173