Practical training in programming
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
18PROP | KZ | 3 | 2C | Czech |
- Course guarantor:
- Jakub Klinkovský
- Lecturer:
- Jakub Klinkovský
- Tutor:
- Jakub Klinkovský
- Supervisor:
- Department of Software Engineering
- Synopsis:
-
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.
- Requirements:
- 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.
- Note:
- Time-table for winter semester 2024/2025:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Wed Thu Fri - Time-table for summer semester 2024/2025:
- Time-table is not available yet
- The course is a part of the following study plans:
-
- Fyzikální inženýrství - Počítačová fyzika (elective course)
- Aplikovaná algebra a analýza (elective course)
- Aplikace informatiky v přírodních vědách (elective course)
- Aplikovaná informatika (elective course)
- Matematické inženýrství - Matematické modelování (elective course)
- Physical Engineering - Computational physics (elective course)