Programátorské praktikum

Akademický rok 2023-2024

ČVUT ・ FJFI ・ KSI

Smysl předmětu

  • naučit se některé věci dělat správně/lépe
  • vyzkoušet si práci v malém programátorském týmu
  • ukázat, že programování může být i zábava (ne jen tupé bušení do klávesnice, nekonečné hledání chyb apod.)

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

Smysl předmětu

  • naučit se některé věci dělat správně/lépe
  • vyzkoušet si práci v malém programátorském týmu
  • ukázat, že programování může být i zábava (ne jen tupé bušení do klávesnice, nekonečné hledání chyb apod.)

Motivation

Communication is the key to success.


Motivation

Communication is the key to success.


Smysl předmětu

  • naučit se některé věci dělat správně/lépe
  • vyzkoušet si práci v malém programátorském týmu
  • ukázat, že programování může být i zábava (ne jen tupé bušení do klávesnice, nekonečné hledání chyb apod.)

Motivation

center

Styl výuky

Základní informace o předmětu (viz bílá kniha):

Kód Zakončení Kredity Rozsah Jazyk výuky
18PROP KZ 3 2C česky

Dle bílé knihy je PROP cvičení, ale nebude to tradiční cvičení.

  • PROP není o rigidní výuce dle předem dané osnovy
  • PROP není o jednom konkrétním programovacím jazyku, ale o obecných zásadách, postupech a nástrojích, které usnadní život každému programátorovi

Velká část bude záviset na vašem aktivním zapojení – diskuze, vlastní návrhy a zkušenosti, atd.

Náplň výuky

Jednotlivé body osnovy dle bílé knihy lze rozdělit do několika tematických skupin:

  • Obecná metodika programování
    • Základní zásady psaní čistého kódu
    • Objektový návrh, principy SOLID a návrhové vzory
    • Principy defenzivního programování
  • Principy agilního vývoje software
    • unit testy – návrh, vývoj a použití v praxi
  • Správa verzí kódu pomocí systému Git
    • větvení a slučování větví, strategie GitFlow, GitHub Flow, GitLab Flow
  • Nástroje programátora
    • automatizace sestavování projektu, modulární architektura
    • refaktorování, kontrola kvality kódu, detekce chyb, tvorba dokumentace

Studijní materiály dle bílé knihy

  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.

Podmínky pro zápočet

Zapojit se aktivně do vývoje nějakého existujícího projektu (možnosti a požadavky upřesním později).

Docházka není povinná, ale velmi žádoucí – neexistují skripta ani jiné materiály, které přesně odpovídají náplni předmětu.

Dotazník

Krátký dotazník pro doladění obsahu předmětu Vašim potřebám:

  1. V kterých programovacích jazycích zvládáte programovat? Který jazyk vám nejvíc vyhovuje?
  2. Jaké nástroje (vývojové prostředí, kompilátor, debugger apod.) při programování běžně používáte?
  3. V jakém operačním systému programujete?
  4. Jaký je největší softwarový projekt, na jehož tvorbě jste se podíleli nebo se právě podílíte? Je to váš soukromý projekt nebo spolupracujete s dalšími programátory?
  5. Které téma z osnovy předmětu vás nejvíc zajímá? Napadá vás nějaké další?