Laboratorio di tecnologie dell'informazioneblackboard

Novità

Date esame

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

Senza questa prenotazione NON è possibile sostenere l'esame, causa le nuove modalità di verbalizzazione elettronica.

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

Orario e aule - Ricevimento - Annunci su lezioni

Inizio lezioni a.a. 2010-2011: 7 Marzo 2011.

Vacanze: Non ci sarà lezione il martedì dopo Pasqua (27 Aprile)

Ricevimento: su appuntamento, da fissare per email: bertini@dsi.unifi.it

Assenze: il 18 e 19 Aprile non ci sarà lezione causa partecipazione a conferenza

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.

Registro lezioni a.a. 2010-2011

 

Per motivi di tempo può non essere possibile vedere tutti gli aspetti del linguaggio C++ durante il corso. Consiglio la lettura completa di uno dei due libri di testo consigliati, o quantomeno dei seguenti tutorial:

Blog interessanti sul C++ e la programmazione in generale:

Modalità di svolgimento dell'esame

L'esame si compone di una prova scritta e una orale.
La prova scritta consiste in alcuni elaborati di programmazione e nella discussione di contenuti del programma. La prova è organizzata "a batteria" in due parti di 45-60 minuti ciascuna: nella prima parte vengono date risposte a questioni di natura teorica, nella seconda viene svolto un esercizio di programmazione.
La prova scritta è svolta su carta, usando fogli in formato A4 (no fogli protocollo). Al termine, viene presentata e discussa la soluzione. Successivamente i candidati ricevono la fotocopia del loro elaborato.
Per accedere alla prova orale, il candidato deve correggere il proprio elaborato, riportando le correzioni in maniera visibile sulla fotocopia. Il candidato deve anche realizzare il programma corretto e funzionante che corregge l'elaborato e lo completa facendone un programma autocontenuto. Il candidato deve infine fornire una autovalutazione del proprio elaborato, in base al valore attribuito a ciascuna parte della prova, alla discussione della soluzione, all'esperienza acquisita nella correzione e realizzazione effettiva del programma.
La prova orale inizia con la discussione dell'elaborato, e prosegue con l'approfondimento di tutti i contenuti del programma.

Esempio di compito 1 (PDF); Esempio di compito 2 (PDF); Esempio di compito 3 (PDF); Esempio di compito 4 (PDF)

In alternativa è possibile stabilire degli elaborati relativi alla creazione di software open source. Il tema dell'elaborato deve essere concordato preventivamente.

Ambienti di sviluppo/compilatori consigliati

Eclipse CDT (richiede l'installazione di Eclipse e di un compilatore come GCC) - multipiattaforma. Durante il corso verrà usata questa IDE. I software sviluppati durante il corso DEVONO essere forniti come progetti Eclipse.
- Tutorial per l'installazione di Eclipse/CDT su Windows, OSX e Linux (molto completo); Tutorial sulla configurazione di Eclipse+CDT su OSX, Linux e Windows.
Problemi comuni:

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). Semplice spiegazione del design pattern MVC.

Plugin utili per Eclipse: Linuxtools, cppcheclipse

Code::Blocks (disponibile in distribuzione che contiene il compilatore) - multipiattaforma

Compilatore per Windows: GCC nella distribuzione MinGW

Compilatore per Linux e OSX: GCC

Libri di testo

Copertina VicarioE. Vicario, "Fondamenti di programmazione - Linguaggio c, strutture dati e algoritmi elementari, c++", Società Editrice Esculapio, 2006 - estratto (PDF)

 

 

 

 

 

 

 

 

Libri consigliati

L.J. Aguilar, “Fondamenti di programmazione in C++”, McGraw-Hill
Copertina Aguilar

 

 

 

 

 

 

 

 

 

B. Eckel, “Thinking in C++”, disponibile gratuitamente (in versione HTML) su:
http://www.mindview.net/Books/DownloadSites e acquistabile su IBS. Versione PDF (2.2 MB) del libro (creata dalla versione HTML fornita dall'autore)Copertina Eckel

 

 

 

 

 

 

 

H. Schildt, C++ A Beginner's guide (gratis su Microsoft MSDN)

A. B. Downey, How to Think Like a Computer Scientist - C++ version (gratis su web e PDF)

F. B. Brokken, C++ Annotations (gratis su web)

R.Sedgewick, “Algoritmi in C++”, Pearson EducationCopertina Sedgewick

 

 

 

 

 

 

 

 

 

E.Gamma, R.Helm, R.Johnson, J.M.Vlissides, “Design Patterns”, Pearson EducationCopertina Design Patterns

 

 

 

 

 

 

 

 

 

E.Freeman, K. Sierra, “Head First Design Patterns”, O'Reilly (sito web)Copertina Head FIrst Design Patterns