Practical training in programming

Login to KOS for course enrollment Display time-table
Code Completion Credits Range Language
18PROP KZ 3 2C Czech
Garant předmětu:
Jakub Klinkovský
Jakub Klinkovský
Jakub Klinkovský
Department of Software Engineering

The goal of this course is to understand advanced topics related to programming, code design and software project development. Students will practice pragmatic techniques and principles on concrete real-world examples. Emphasis is put on the review of freely available software tools that can improve the programmer’s work efficiency and ensure high quality of the final source code.

Syllabus of lectures:

1.Best practices for writing clean code (formatting, naming, structuring)

2.Modular architecture of the program and software project

3.Object-oriented design, SOLID principles and design patterns

4.Principles of defensive programming

5.Principles of agile software development

6.Unit tests – design, development and deployment

7.Source code version control with Git

8.Using Git to develop software – branching and merging

9.Branching strategies – GitFlow, GitHub Flow, GitLab Flow

10.Tools for project build automation – GNU Make, CMake, Meson

11.Tools for code quality assurance and bug detection

12.Tools and techniques for code refactoring

13.Documentation generators

Syllabus of tutorials:
Study Objective:
Study materials:

Key literature:

[1] K. Fogel, Producing open source software: How to run a successful free software project, Second Edition, O'Reilly Media, 2022. https://producingoss.com/

[2] R.C. Martin, Clean Code: A Handbook of Agile Software Craftmanship, Prentice Hall 2009. ISBN 978-0132350884.

[3] S. Chacon, B. Straub, Pro Git, Second Edition, Apress, 2014. https://git-scm.com/book/en/v2

Recommended literature:

[1] D. Thomas, A. Hunt, The Pragmatic Programmer, 20th Anniversary Edition, Addison-Wesley, 2019. ISBN 978-0135957059.

[2] M. Fowler, Refactoring: Improving the Design of Existing Code, Second Edition, Addison-Wesley, 2018. ISBN 978-0134757599.

[3] P. Silén, Clean Code Principles and Patterns: A Software Practitioner's Handbook, 2023. ISBN 979-8373835732.

Time-table for winter semester 2023/2024:
Time-table is not available yet
Time-table for summer semester 2023/2024:
Time-table is not available yet
The course is a part of the following study plans:
Data valid to 2023-11-30
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/en/predmet7675106.html