Programmazione Orientata agli Oggetti in C++

Per chi ha già una certa dimestichezza col linguaggio C++, consiglio di soffermarsi principalmente sulla parte relativa alla programmazione ad oggetti, in particolare ereditarietà e polimorfismo.
Per la parte teorica, consistente in un quiz composto da 15 domande a risposta multipla, è necessario studiare le slide delle lezioni tenute dal docente Michele Tomaiuolo e che trovate a questo link e che ho raccolto qui per semplicità.

Personalmente ho dato uno sguardo anche al lavoro dei passati docenti:
prof.sa Alessandra Fascioli
prof. Marco Mari
prof.sa Monica Reggiani
che, come si noterà, sono tutti sulla stessa linea, ma danno esempi diversi da consultare.

Un altro ottimo ausilio per me è stata la partecipazione alle esercitazioni tenute dal prof. Alberto Ferrari. Le slide e gli esempi che lascia a disposizione nel suo sito sono estremamente esemplificativi ed illuminanti.

Dal momento che, dopo due anni, ero un po' a digiuno di programmazione in C++ ho ripreso in mano i due testi già utilizzati

J. Hubbard: Programmare in C++ 2a ed.. McGraw Hill (2001)

Cay Horstmann Fondamenti di C++ McGraw Hill

Questi testi, oltre a fornire la base per la creazione di codici in C++, danno già buone indicazione per la programmazione ad oggetti. A questi testi ho aggiunto l'importantissimo
H. Deitel, P. Deitel, C++ Tecniche avanzate di programmazione, 2/e, Apogeo
che potete trovare in buona parte qui e che consiglio, insieme agli altri, di portarsi appresso per la parte pratica dell'esame.

Lascio inoltre alcuni link da me utilizzati:
http://www.sitoserio.it/cpp/OOP/main.htm
http://www.camuso.it/cplusplus.asp
http://latemar.science.unitn.it/marco/Didattica/aa_2002_2003/Programmazione2/diario.html
Specialmente l'ultimo link mi è stato di grande aiuto: si tratta di ottime lezioni universitarie riprese all'Università di Trento qualche anno fa, ma ancora validissime. Le lezioni vanno in qualche modo a intersecarsi con quelle riguardanti il linguaggio Java e offrono un approccio graduale e chiaro alla programmazione ad oggetti.

Lascio a disposizione un quiz a titolo esemplificativo, avuto di straforo... Vi troverete a rispondere a domande di questo genere.
Il tempo a disposizione è di mezz'ora: personalmente in 20 minuti ho risposto a tutto consentendomi così nei rimanenti 10 minuti una più accurata verifica. Valgono solo le risposte valide: non vi sono punti negativi per risposte sbagliate. La valenza di questa parte di esame è 10 e i rimanenti 20 punti vengono dati dalla parte di programmazione.

Per quest'ultima parte vengono concesse tre ore e si possono consultare materiali cartacei di qualsiasi genere: purtroppo niente chiavette o simili. Consiglio pertanto di stamparvi tutto ciò che ritenete utile, compresi codici di classi generiche e template, ad esempio. La piattaforma di lavoro è DevC++ di cui si è già parlato nella parte relativa a Fondamenti di Informatica A .

Purtroppo il docente generalmente non rilascia compiti passati già svolti, però mi ha concesso una soluzione di uno studente del compito del 11 febbraio 2010 e naturalmente la mia prova del 16 marzo 2010. Guardate bene queste prove: è importante l'ordine e la chiarezza, soprattutto per voi stessi. Create poche classi alla volta, implementatele in un file separato e, prima di procedere con ulteriori sottoclassi, testatele con un main.cpp apposito. Se vi state ingarbugliando in un numero eccessivo di sottoclassi e implementazioni avete sicuramente sbagliato qualcosa, soprattutto concettualmente.

Come ultima informazione, se al quiz si prende un voto pari o superiore a 8/10, con un 20/20 nella parte pratica (a patto che sia a regola d'arte...) si può arrivare a prendere anche la lode (io ce l'ho fatta! :-), altrimenti, semplicemente, il voto totale è la somma dei due voti (minimo 6/10 al quiz e 12/20 per la parte di programmazione).

 

 

Commenti

Esame 25 settembre 2009

 Ludovico Giannini mi ha gentilmente inviato il testo della prova pratica del 25 settembre scorso.

esame c++ 25set09.pdf

Esame del 9 luglio 2009

Ho inserito il compito che ho sostenuto oggi ( 9 Luglio 2009). Non è andato bene perchè mi sono incasinato e alla fine non compilava. Consiglio: fatelo pezzo per pezzo e testatelo. Io l'ho fatto tutto in blocco e poi non ho trovato l'errore e alla fine non compilava!!!

Prog_C++ 9-7-2009.jpg