Laboratorio di Programmazione

Novità

Orario e aule - Ricevimento - Annunci su lezioni

Inizio lezioni a.a. 2017-2018: 7 Marzo 2018.
Termine lezioni: 2 Maggio 2018.
Il laboratorio è diviso su due turni: dalle 14:00 alle 16:00, dalle 16:00 alle 18:00. Gli studenti sono divisi in due gruppi (quelli con cognome che comincia da xx ad xx, quelli con cognome che comincia da xx a xx - ancora da stabilire).

Lezioni:

Vacanze: -

Ricevimento: Giovedì dalle 16:00 alle 18:00 presso il MICC in Viale Morgagni 65 - fissare comunque l'appuntamento per email: marco.bertini@unifi.it

Assenze:

Date esame

È necessario prenotarsi mediante il modulo web disponibile all'indirizzo: http://sol.unifi.it/prenot/prenot

L'esame è svolto presso i locali del MICC in Viale Morgagni 65. Le modalità di superamento dell'esame sono riportate sotto.

Le date d'esame sono visibili sul sito ufficiale dell'Università http://sol.unifi.it/docprenot/docprenot:

Lucidi lezioni e materiale collegato

I collegamenti sono generalmente fatti a materiale scritto in inglese, a meno di diversa indicazione. I lucidi sono in formato PDF. I lucidi preceduti dalla scritta "OLD" sono quelli dell'A.A. precedente e devono ancora essere aggiornati - se ne sconsiglia la stampa. I programmi fatti durante le lezioni sono riportato nella pagina web: Registro lezioni 2017-2018 e sul sito di e-learning dell'Università.

Sito e-Learning Unifi con materiale del corso: http://e-l.unifi.it. Tutti gli studenti dell'A.A. 2017-2018 devono iscriversi.

Lucidi e materiale a.a. 2017 - 2018

Lucidi e materiale anni precedenti:

Modalità di svolgimento dell'esame

L'esame consiste in un elaborato di programmazione in C++ tra quelli presentati sul sito di e-Learning del corso oppure da concordare col docente. Durante lo sviluppo dell'elaborato verranno usati gli strumenti visti a lezione, come sistemi di versionamento del codice e unit testing. L'elaborato può essere combinato con quello da svolgere per il corso "Programmazione", previo accordo col docente.

Ambienti di sviluppo/compilatori consigliati

L'ambiente di sviluppo (IDE) consigliato รจ CLion.
Gli studenti sono comunque liberi di usare qualsiasi strumento gli risulti più comodo.

Clion è un ambiente i sviluppo integrato multipiattaforma con licenza gratuita per gli studenti. Durante il corso verrà usata questa IDE. I software sviluppati durante il corso DEVONO essere forniti come progetti CLion o Eclipse.

Eclipse CDT (richiede l'installazione di Eclipse e di un compilatore come G++ o clang++) - multipiattaforma.
Tutorial sulla configurazione di Eclipse+CDT su OSX, Linux e Windows (Video tutorial: installare Eclipse, MINGW e MSYS - per Windows). Eclipse ed i diagrammi UML: tutorial in inglese - tutorial in italiano.
Plugin utili per Eclipse: Linuxtools, cppcheclipse.
Tutorial sull'installazione di Eclipse/CDT e MSYS/MingW (Windows, mostra anche come installare WxWidgets). Wiki wxWidgets per l'uso di Eclipse + wxWidgets (EN); Tutorial sull'installazione di wxWidgets per Eclipse (Windows e Linux, EN); Tutorial sull'uso di wxWidgets (EN, molto semplice, adatto per principianti).
Da OSX Mavericks non è più disponibile il debugger GDB, che è usato da Eclipse. Si deve installare usando Macports o Homebrew. In alternativa si consiglia l'uso di XCode o CLion.

Altri ambienti di sviluppo che si possono usare sono:


Compilatori

Windows: GCC nella distribuzione MinGW

Linux: G++

OSX: In OSX si devono installare gli strumenti di programmazione a command line (necessari per usare CLion/Eclipse/Codelite/Code::Blocks), scaricando XCode da App Store e quindi dando il comando xcode-select --install in una finestra del terminale (tutorial).

Editor per diagrammi UML:

Libri di testo

Copertina VicarioE. Sink, "Versioning Control by Example", disponibile gratuitamente sul web: http://ericsink.com/vcbe/

 

 

 

 

 

 

 

Libri consigliati

Martin Fowler et al., "Refactoring: Improving the Design of Existing Code", Addison-WesleyCopertina Sedgewick

 

 

 

 

 

 

 

 

 

Kent Beck, "Test-Driven Development: By Example", Addison-WesleyCopertina Design Patterns