Logo ČVUT
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2024/2025

Practical training in programming

Login to KOS for course enrollment Display time-table
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
roomTR:124
Klinkovský J.
08:00–09:50
(parallel nr.101)
Trojanova 13
PCLab KFE
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:
Data valid to 2024-10-14
For updated information see http://bilakniha.cvut.cz/en/predmet7675106.html