Programmazione avanzata - (ex Informatica III - modulo Programmazione)
Il C.I. PROGRAMMAZIONE AVANZATA + PROGETTAZIONE,ALGORITMI E COMPUTABILITA’ è diviso in due parti. Questa è la parte di programmazione avanzata. Il corso prima dell’AA 2122 si chiamava informatica III e questo era il modulo di programmazione.
Informazioni ufficiali
Per ulteriori informazioni (ad esempio programma ufficiale) dal sito ufficiale di UniBG: pagina ufficile per il corso integrato
Materiale a disposizione
- il team per l’AA 22/23 è qui
- sotto il materiale di teams trovate i lucidi di quest’anno.
- sotto teams trovate anche gli appunti del corso appunti PA _ XXX.pdf. Contiene tutti gli argomenti del corso e svolge la funzione di libro di testo (pur essendo ancora in costruzione)
- Materiale didattico (protetto da password)
- La freemap del corso come jpeg. Dall’anno 21/22 non abbiamo fatto ASM e al posto di scala c’è Haskell.
Nell’area restricted potete trovare:
- temi d’esame degli anni passati (sia esercizi della parte pratica che i quiz di teoria) http://cs.unibg.it/gargantini/didattica/info3/restricted/temi_esame/
- le slides del corso degli anni passati
- Il link a dropbox con i sorgenti degli esempi visti in classe
- uno zip che contiene eclipse e il compilatore C++ tutto insieme come zip https://cs.unibg.it/gargantini/didattica/info3/restricted/eclipse-cpp-PA.zip
Altro materiale didattico
- Libro di Finkel di supporto per alcuni argomenti (vedi syllabus):
ftp.aw.com/cseng/authors/finkel/apld/ - Testo di riferimento: Programming Language Concepts di JC Mitchell
Registro
Il registro lo tengo su teams.
Studenti anni passati
- Chi deve sostenere Informatica III di 5 crediti del precedente ordinamento, sostiene questo esame. Da quest’anno tutti avranno la stessa modalità d’esame (a meno di diversi accordi scritti con il professore).
Esame e progettini
L’esame è diviso in una parte scritta su PC e una orale. La parte scritta è divisa in una parte con alcune domande tipo quiz (circa 7 domande) e una parte sempre a PC con degli esercizi in cui dovete essenzialmente scrivere piccoli programmini o risolvere piccoli problemi (e disegnare un record di attivazione) (vedi temi d’esame). Le due prove su calcolatore sono nella stessa giornata una a seguire l’altra. La durata è di circa 2h30/3h.
L’orale, che è dopo circa una settimana, consiste in circa tre domande (su argomenti teorici o su parti dello scritto) e la visione dei progettini. Per la prova orale bisogna infatti portare dei progettini individuali su:
- Java
- progetto di una picccola applicazione con Java, in cui usate tutti i costrutti studiati, incluse le collezioni, varargs, record, ereditarietà, interfacce, overriding, … Valutazione: uso corretto e completo dei costrutti di Java.
- C++
- progetto di una piccola applicazione in cui si utilizzano i costrutti studiati del C++: costruttore e distruttore, campi pubblici e privati, membri virtual e non, overloading, ereditarietà multipla, STL (con qualche struttura dati e algoritmo). Valutazione: complessità e completezza dell’applicazione. Uso di costrutti non obbligatori come overloading degli operatori, templates, … Dall’AA 20/21 verranno valutati anche i puntatori smart in C++.
- Haskell
- piccolo programma in cui mostrate qualche funzionalità di Haskell.
I tre progetti possono trattare lo stesso problema (quetso è meglio se si vogliono far vedere le differenze dei tre linguaggi) o tre problemi differenti.
I progetti vanno portati quando sostenete l’orale. Devono essere fatti in eclipse tranne Haskell.
Documentazione Per ognuno dei progetti dovete scrivere una breve relazione di progetto (da circa 2 a 6 pagine a secondo del progetto).
La documentazione va portata possibilemente *stampata** se l’esame è in presenza, in modo da sfogliarla (la documentazione soltanto, non il codice). Il codice va messo anche su supporto elettronico (chiavetta USB) o altro (sito drive, github…). Copierò i vostri progetti sul mio PC per farli funzionare (però potete anche portare/usare il vostro PC per sicurezza).