PROP 2022
Smysl předmětu:
- vyzkoušet si práci v malém programátorském týmu
- naučit se některé věci dělat správně/lépe
- 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.)
Poznámka: je to seminář (ne přednáška, ne cvičení), čili značná část by měla záviset na vašem aktivním zapojení – diskuze, vlastní návrhy, opravovat vyučujícího podle vlastních zkušenosti, které můžou být jiné
Anotace (možná náplň předmětu)
- základní zásady programování (formátování, pojmenování proměnných a funkcí, strukturování kódu)
- objektový návrh
- RAII (nejlepší způsob využití OOP v C++)
- The SOLID design principles:
- Single Responsibility Principle (SRP)
- Open-Closed Principle (OCP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
- Design patterns (smart pointer, iterator, etc.)
- praktiky pro správu a vývoj kódu
- git – nástroj pro verzování kódu
- agilní vývoj software – my použijeme Gitlab
- fáze: plánování, vývoj, testování (neustále se opakují)
- testování – unit testy, testy integrace, atd.
- automatické testování
- další praktiky:
- debugování
- optimalizace
- tvorba dokumentace
- nové standardy jazyka C++
Dotazník
Krátký dotazník pro doladění materiálů a obsahu předmětu Vašim potřebám:
- V kterých programovacích jazycích zvládáte programovat? Který jazyk vám nejvíc vyhovuje?
- Jaké nástroje (vývojové prostředí, kompilátor, debugger apod.) při programování běžně používáte?
- V jakém operačním systému programujete?
- 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?
- Napadá vás něco konkrétního, co byste se chtěli naučit nebo procvičit v rámci předmětu PROP? (např.: „zajímají mě šablony jazyka C++, ale moc se v nich nevyznám a chtěl bych si je důkladně procvičit“, nebo „potřebuji se naučit, jak nejlépe debugovat programy“, apod.)
Průběžné poznámky
Kromě toho budeme pracovat na zadání projektu (stránka bude aktualizována průběžně).