- "Refactoring: Improving the Design of Existing Code ", Martin Fowler et al., Addison-Wesley
- "Test-Driven Development: By Example", Kent Beck, Addison-Wesley
- "Version Control by Example", Eric Sink, disponibile gratuitamente http://ericsink.com/vcbe/vcbe_a4_lo.pdf
Obiettivi Formativi
Apprendimento delle conoscenze di base di tecnologie e pratiche industriali della progettazione e scrittura del software:
- uso e creazione di librerie statiche e dinamiche
- uso dei sistemi di versionamento, con particolare riferimento a GIT
- uso delle pratiche di Unit Testing, con particolare riferimento ai framework per il C++
- uso delle pratiche di refactoring, con particolare riferimento agli strumenti disponibili in IDE moderni.
A fine del corso lo studente saprà applicare queste pratiche e tecniche per lo sviluppo di programmi.
Prerequisiti
Conoscenza di base della programmazione C/C++
Metodi Didattici
Lezioni in laboratorio e auto-studio
Modalità di verifica apprendimento
Elaborato di programmazione in C++ in cui si mostra:
- di saper applicare le tecniche di unit testing
- saper applicare tecniche di refactoring
- saper usare strumenti di versionamento
- saper sviluppare programmi di media complessità
Programma del corso
- Uso di librerie nei propri programmi
- CMake e uso di librerie di terze parti
- Unit testing di base
- Uso di Google Test
- I sistemi di versionamento: basi d'uso
- Basi di Git