Programátorské praktikum

Practical training in programming

PROP

Academic year 2024-2025

ČVUT ・ FJFI ・ KSI

Goal of the course

  • how to do some things correctly/better
  • try to work in a small team of programmers
  • show that programming can be fun and not just endless typing and finding errors

Motivation

The 4 things it takes to become an expert:

  • many repetitions
  • valid environment
  • timely feedback
  • deliberate practice

Motivation

The 4 things it takes to become an expert:

  • many repetitions
  • valid environment
  • timely feedback \rightarrow PROP
  • deliberate practice

Goal of the course

  • how to do some things correctly/better
  • try to work in a small team of programmers
  • show that programming can be fun and not just endless typing and finding errors

Motivation

Communication is the key to success.


Motivation

Communication is the key to success.


Goal of the course

  • how to do some things correctly/better
  • try to work in a small team of programmers
  • show that programming can be fun and not just endless typing and finding errors

Motivation

center

Teaching style

Basic information about the course (see the study plans):

Code Completion Credits Range Language
18PROP KZ 3 2C Czech English

According to the plans, PROP should be tutorials, but it will be non-traditional.

  • PROP is not about teaching according to a rigid schedule
  • PROP is not about one specific programming language, but general concepts and tools useful to every programmer

The success of this course depends on your active participation – discussion, sharing opinions and experience, etc.

Contents

The outline in the study plans can be divided in several topic groups:

  • General concepts
    • How to write clean code
    • Object oriented design, SOLID principles and design patterns
    • Defensive programming principles
  • Agile software development
    • unit tests – design, development and usage in practice
  • Code versioning using Git
    • branching and merging, usage patterns: GitFlow, GitHub Flow, GitLab Flow
  • Programmer's toolset
    • project build automation, modular architecture
    • refactoring, code quality assurance, bug detection, documentation

Supporting literature (from to the study plans)

  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
  4. D. Thomas, A. Hunt, The Pragmatic Programmer, 20th Anniversary Edition, Addison-Wesley, 2019. ISBN 978-0135957059.
  5. M. Fowler, Refactoring: Improving the Design of Existing Code, Second Edition, Addison-Wesley, 2018. ISBN 978-0134757599.
  6. P. Silén, Clean Code Principles and Patterns: A Software Practitioner's Handbook, 2023. ISBN 979-8373835732.

Requirements for successful completion

The course ends with a graded assessment ("klasifikovaný zápočet" in Czech).

The requirement will be an active contribution to some existing project
(options will be specified later).

Attendance is not necessary, but strongly recommended.

Survey

https://jlk.fjfi.cvut.cz/md/PROP-2024