Fondamenti di Informatica B 2009/2010
Organizzazione del corso
Il corso è costituito da una prima parte di 3 crediti più una seconda di 6 crediti corrispondente al corso di Fondamenti di Informatica LB.
Materiale didattico
I lucidi delle lezioni, organizzati a moduli, sono pubblicati su AMS Campus.
Pagina dedicata alle esercitazioni del corso.
Materiale relativo alla prima parte del corso
- Lucidi di presentazione del corso FINFB (9CFU).
- Modulo 1: ambienti, visibilità e tempo di vita delle variabili, funzioni e procedure, modello a run-time, complessità computazionale.
- Esercizi di analisi di programmi C: esercizi vari. Esercizi della lezione del 26/3/2010.
- Testi della prova in itinere del 31 Marzo 2010.
Materiale relativo alla seconda parte del corso
- Lucidi di presentazione del corso FINF-LB (6CFU).
- Modulo 2: introduzione alla progettazione di applicazioni software.
- Modulo 3a: introduzione alla programmazione a oggetti. Codice presentato a lezione.
- Modulo 3b: meccanismi di estensione e riuso. (Esempio: adventure)
- Modulo 3c: eccezioni.
- Modulo 3d: generics.
- Modulo 4: strutture dati. Codice presentato a lezione (contiene anche i sorgenti di "PhoneBook")
- Modulo 5a: programmazione ad eventi. Codice presentato a lezione.
- Modulo 5b: programmazione grafica con Swing.
- Modulo 6: Java I/O stream. Codice presentato a lezione.
Testi d'esame e informazioni sulle modalità d'esame
- Testi di esame degli anni scorsi (e soluzioni) sono disponibili alla pagina del corso tenuto nell'a.a. 2008/2009 FINFB.
- Istruzioni per lo sviluppo e la consegna del progetto.
- Un esempio di testo d'esame.
- Testi e soluzioni del compito del 22 giugno 2010.
- Testi e soluzioni del compito del 19 luglio 2010.
- Testi e soluzioni del compito del 2 settembre 2010.
- Testi e soluzioni del compito del 13 settembre 2010.
- Testi e soluzioni del compito del 7 Gennaio 2011.
- Testi e soluzioni del compito del 21 Febbraio 2011. Validità del voto conseguito nella prova in itinere: il voto conseguito nella prova in itinere è valido solo per il primo appello d'esame dopo la fine del corso (appello del 22 Giugno 2010). Coloro i quali consegnano il compito entro i primi 120' mantengono il voto conseguito nella prova in itinere per quanto attiene all'esercizio 4; chi si trattiene oltre i 120' dichiara implicitamente la propria intenzione di rinunciare al voto conseguito nella prova intermedia.
Ringraziamenti
Si ringraziano i Proff. Alessandro Ricci, Paola Mello, Enrico Denti e Massimo Franceschet per aver reso disponibile il loro materiale didattico, parzialmente utilizzato -con rielaborazioni- in questo corso.
Al termine del corso, lo studente possiede le conoscenze dei fondamenti della programmazione a oggetti e dispone delle metodologie di base per lo sviluppo di applicazioni software di medie dimensioni. In particolare, lo studente è in grado di:
- sviluppare, modificare ed estendere programmi secondo il paradigma della programmazione a oggetti
- utilizzare strutture dati avanzate e tecniche di programmazione ad eventi
- realizzare semplici interfacce grafiche
- progettare applicazioni di medie dimensioni in un linguaggio ad oggetti (Java, C++, C#)
- Funzioni e procedure:
- legami, regole di visibilità e ambienti
- trasferimento dei parametri
- chiamata delle funzioni e modello a tempo di esecuzione
- Algoritmi e strutture dati (rudimenti)
- allocazione statica e dinamica
- complessità computazionale
- Elementi di progettazione e programmazione del software ad oggetti
- dagli algoritmi ai sistemi
- elementi fondamentali programmazione ad oggetti
- riuso, estendibilità, composizione
- eccezioni
- sistemi ad eventi, interfacce grafiche
- sistemi di I/O, gestione dei file
Gli appunti e diapositive del docente costituiscono il materiale di riferimento principale del corso. Fra i testi che possono essere utili per approfondire i concetti del corso:
- Linguaggio C, Kernighan & Ritchie, Jackson Libri.
- C: Corso completo di programmazione, Deitel & Deitel, Apogeo.
- Concetti di informatica e fondamenti di Java 2, Horstmann, Apogeo.
- Progettazione del software e design pattern in Java, Horstmann, Apogeo.
Il corso si sviluppa in un insieme bilanciato di lezioni di teoria e pratica in laboratorio, ove gli studenti svolgono esercizi, esercitazioni o progetti coadiuvati dal docente e dal tutor.
- Prova scritta (con esercizi di analisi e sintesi e domande di teoria)
- Prova orale con domande sugli argomenti del corso e discussione di un progetto presentato in gruppo
Pagina web del corso con PDF dei lucidi, altro materiale e link utili. Una parte delle lezioni sarà svolta in laboratorio.