FI:PB176 Basic Code Quality and Mngmnt - Course Information
PB176 Basics of Quality and Managment of Source Code
Faculty of InformaticsSpring 2024
- Extent and Intensity
- 2/0/1. 3 credit(s) (plus extra credits for completion). Type of Completion: k (colloquium).
- Teacher(s)
- RNDr. Lukáš Ručka (lecturer)
Branislav Bubán (assistant)
doc. RNDr. Eva Hladká, Ph.D. (assistant)
Jozef Hoschek (assistant)
Ivan Kushpel (assistant)
Tomáš Nevrlka (assistant)
Jakub Wolek (assistant)
Stepan Yakimovich (assistant) - Guaranteed by
- RNDr. Lukáš Ručka
Department of Computer Systems and Communications – Faculty of Informatics
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics - Timetable
- Wed 12:00–13:50 D1
- Prerequisites
- PB006 Princ. of Prog Lang. and OOP || PB071 Principles of low-level prog. || NOW( PB071 Principles of low-level prog. )
Students are expected to have a previous experience in computer programming, least on the level of IB111. Furthermore, a user-level experience with UNIX/Linux systems and the command prompt is assumed (corresponding to a simultaneous study of PV004). Finally, a parallel study of any computer programming course corresponding to the 2nd semester of any of the associated curriculums is assumed. - Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
- fields of study / plans the course is directly associated with
- there are 7 fields of study the course is directly associated with, display
- Course objectives
- The goal of the course is to teach the student a code versioning and best practices (small, isolated changes, focus on a consistent flow of changes), introduce the build systems and continuous integration and distribution. Establish the importance of consistency and code style, name and label selection. Introduce testing as a crucial component of code quality assurance, in conjunction with bug tracking systems.
- Learning outcomes
- After successful submission, the student shall be: Capable of versioning the code through version tracking system (GIT), including the best practices. • Familiar with build systems of medium-sized projects, including the technologies and principles of continuous integration. • Submit sufficiently detailed bug reports, including minimum-broken examples. • Design and implement test suites on the level of small projects.
- Syllabus
- GIT versioning system, the principles behind commit, branches, code merge. The decentralized model behind GIT repositories. • Build systems and platforms. • Testing, unit tests, bug reports, integration tests, practical aspects of CI. • Code style, comments and documentation. • Software distribution, containers.
- Literature
- Linux kernel coding style — The Linux Kernel documentation, 2016, The kernel development community. [online] https://www.kernel.org/doc/html/latest/process/coding-style.html
- FEATHERS, Michael C. Working effectively with legacy code. Upper Saddle River, NJ: Prentice Hall, 2005. ISBN 0-13-117705-2. info
- Teaching methods
- Theoretical lectures are coupled with semiautomated e-learning laboratories and exercises. The final block consists of invited talks about quality assurance in companies.
- Assessment methods
- To be allowed to participate in the final colloquium, a student must submit at least 75% of the e-learning exercises, following the topics. Furthermore, in the 2/3 of the semester, a mandatory overnight team project game will be organized. Here, the student has to perform in a stress-supporting environment before the deadline, as a part of the team, following the game rules. This experience is later reflected during the colloquium exam.
- Language of instruction
- Czech
- Further comments (probably available only in Czech)
- Study Materials
The course is taught annually. - Teacher's information
- The purpose of this course is to provide a broader perspective of the individual areas covered, as well as the practical skills required to work with technologies introduced. The focus is on the general ideas behind the topics, with detailed knowledge of internals left for further study. In addition to the GIT workflow mentioned earlier, you might also expect the faculty GitLab and docker workflows as well.
- Enrolment Statistics (recent)
- Permalink: https://is.muni.cz/course/fi/spring2024/PB176