Metodologie di Programmazione - Canale P-Z

Corso di Laurea in Informatica

Anno Accademico 2009/10

Diario delle lezioni e delle esercitazioni

lun 8 mar (Gorla)

Presentazione del corso. Evoluzione dei linguaggi di programmazione. Il primo progamma Java (Hello, World) e come lo avremmo scritto in C. Il main. La piattaforma Java. Comilazione ed esecuzione di programmi Java: la JVM.

Lucidi: Introduzione ai linguaggi di programmazione (pdf)

Lucidi: Introduzione a Java 1 (pdf)

Sorgenti: Hello0 (java)

Sorgenti: Hello (java)

Sorgenti: Greeter (zip)


lun 15 mar (Gorla)

Elementi fondamentali di Java: oggetti, classi, attributi, metodi, I/O, tipi di dati primitivi, conversioni, operatori, costrutti.

Lucidi: Introduzione a Java 1 (pdf)

Lucidi: Introduzione a Java 2 (pdf)

Sorgenti: TicketMachine (java)


mer 17 mar (Piperno)

Laboratorio: primi contatti con un ambiente di programmazione Java; modifica del programma "Ticket Machine", con l'aggiunta di funzionalitą pił evolute (diversi tipi di biglietti, numero massimo di posti disponibili, input/output, ...)


ven 19 mar (Gorla)

Attributi e metodi static, overloading, classi dei tipi di dati primitivi, stringhe, array, liste.

Lucidi: Introduzione a Java 2 (pdf)

Lucidi: Introduzione a Java 3 (pdf)


lun 22 mar (Gorla)

Iterazione e ricorsione: il fattoriale, i numeri di fibonacci, la ricerca binaria.

Dispense: Risorsione e Iterazione (pdf)

Sorgenti: Fibonacci (java)


mer 24 mar (Piperno)

Laboratorio: esperimenti con eccezioni e liste.

Sorgenti: Eccezioni (java)

Sorgenti: Liste (java)


ven 26 mar (Gorla)

Precondizioni, postcondizioni, invarianti, funzioni di terminazione e loro applicazione per dimostrare la correttezza delle implementazioni dei metodi Java visti il 22 Marzo per calcolare il fattoriale e i numeri di fibonacci.

Dispense: Risorsione e Iterazione (pdf)


mer 7 apr (Piperno)

Laboratorio: il quicksort ricorsivo.


ven 9 apr (Gorla)

Precondizioni, postcondizioni, invarianti, funzioni di terminazione e loro applicazione per dimostrare la correttezza delle implementazioni dei metodi Java su array: ricerca binaria e selection sort.

Dispense: Risorsione e Iterazione (pdf)


lun 12 apr (Gorla)

Specifiche e loro confronto; quando un programma soddisfa una specifica e metodi di verifica. Astrazione procedurale. Introduzione ai tipi di dato astratti.

Dispense: Specifiche (pdf)

Dispense: Astrazione procedurale (pdf)

Dispense: ADTs (pdf)


mer 14 apr (Piperno)

Laboratorio: il quicksort iterativo; invariante e dimostrazione di correttezza.


ven 16 apr (Gorla)

Tipi di dato astratti (ADT): specifica e implementazione.

Dispense: ADTs (pdf)

Dispense: ADTs-2 (pdf)


lun 19 apr (Gorla)

Esempi di ADT: booleani, numeri complessi e stack (implementazione con array; suggerimenti per un'implementazione con liste concatenate).

Dispense: Booleani e Complessi (pdf)

Dispense: Stack (pdf)


mer 21 apr (Piperno)

Laboratorio: ADT coda e albero binario; loro implementazione in Java.


ven 23 apr (Gorla)

Esercizi in vista dell'esonero.

Dispense: Esercizi (pdf)


lun 3 mag (Salvo)

Alberi in Java. Interfacce. Sottotipaggio. Type Soundness in Java. Overloading di costruttori. Il costruttore di default. Dynamic lookup dei metodi.

Lucidi: * Java1.pdf: Java: aspetti generali e definizioni di classi

Lucidi: * Java2.pdf: Ancora sulle definizioni di classi


ven 7 mag (Salvo)

Alberi in Java.

Tipo statico e tipo dinamico. Uso di metodi privati per funzioni ausiliarie che non appartengono all'interfaccia del tipo. Downcast e instance of. Il metodo equals. Il metodo toString. Overloading.

Lucidi: * Java3.pdf: Interfacce e sottotipaggio


lun 10 mag (Salvo)

Alberi in Java: bilanciamento in profonditą e nel numero dei nodi. Bilanciamento con un'unica scansione dell'albero: uso dei valori tornati dal metodo. Bilanciamento con un'unica scansione dell'albero: simulazione del passaggio di parametri per indirizzo in Java.


ven 14 mag (Salvo)

Alberi in Java. Uso di campi statici. Uso di costruttori privati. Inner classes.

Codice: * TestTree.java: Alberi in Java


lun 17 mag (Salvo)

Ancora sugli alberi in Java: alberi generici. Overloading. Subtyping dei tipi base. Introduzione all'ereditarietą. Overriding di metodi.

Lucidi: * Java4.pdf: Ereditarietą

Codice: * TestPunti.java: Esempio ereditarieta': punti e punti colorati


ven 21 mag (Salvo)

Ancora sull'ereditarietą: classi astratte.


lun 24 mag (Salvo)

Eccezioni in Java.

Lucidi: * eccezioni.pdf: Eccezioni


ven 28 mag (Salvo)

Iteratori in Java.

Lucidi: * iteratori.pdf: Iteratori


lun 31 mag (Salvo)

Ereditarietą e specifiche.

Invariante di tipo di dato.

Signature, method e property rule.

Wrapping.


ven 4 giu (Salvo)

Insiemi come liste ordinate.

Tipi mutabili e immutabili.

Il metodo clone().


lun 7 giu (Salvo)

Polimorfismo in JAVA: Tipi Generici.


lun 11 giu (Salvo)

Polimorfismo e sottotipaggio: limiti inferiori e limiti inferiori.

Funzionali su liste in Java: map e reduce.

Lucidi: * polimorfismo.pdf: Tipi Generici

Codice: * testBlocchi2.java: Liste Generiche


Ecco alcuni utili esercizi con cui cimentarvi

Potete mettervi alla prova sull'intramontabile mondo dei fumetti,

Oppure su quello tornato di recente alla ribalta di Pupe e Secchioni.

Purtroppo anche i tagli a univeristą e ricerca sono il pensiero ricorrente dei nostri Onorevoli

Il consiglio č di consultare le seguenti soluzioni commentate solo dopo adeguato sforzo...

Eccovi svelati comunque tutti i segreti di paperi e Xman, di Pupe e Secchioni e di lacrimose e sanguinose manovre economiche

-- IvanoSalvo - 19 Mag 2010

Edit | Attach | Watch | Print version | History: r16 < r15 < r14 < r13 < r12 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r16 - 2010-06-17 - IvanoSalvo






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback