---+ 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_: [[MatDidd#lucidi][Introduzione ai linguaggi di programmazione]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/introProgLang.pdf][pdf]]) _Lucidi_: [[MatDidd#lucidi][Introduzione a Java 1]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/1_IJ1.pdf][pdf]]) _Sorgenti_: [[MatDidd#sorgenti][Hello0]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/Hello0.java][java]]) _Sorgenti_: [[MatDidd#sorgenti][Hello]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/Hello.java][java]]) _Sorgenti_: [[MatDidd#sorgenti][Greeter]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/Greeter.zip][zip]]) --- *lun 15 mar* (Gorla) Elementi fondamentali di Java: oggetti, classi, attributi, metodi, I/O, tipi di dati primitivi, conversioni, operatori, costrutti. _Lucidi_: [[MatDidd#lucidi][Introduzione a Java 1]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/1_IJ1.pdf][pdf]]) _Lucidi_: [[MatDidd#lucidi][Introduzione a Java 2]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/1_IJ2.pdf][pdf]]) _Sorgenti_: [[MatDidd#sorgenti][TicketMachine]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/TicketMachine.java][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_: [[MatDidd#lucidi][Introduzione a Java 2]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/1_IJ3.pdf][pdf]]) _Lucidi_: [[MatDidd#lucidi][Introduzione a Java 3]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/1_IJ3.pdf][pdf]]) --- *lun 22 mar* (Gorla) Iterazione e ricorsione: il fattoriale, i numeri di fibonacci, la ricerca binaria. _Dispense_: [[MatDidd#lucidi][Risorsione e Iterazione]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/recIterAssLog.pdf][pdf]]) _Sorgenti_: [[MatDidd#sorgenti][Fibonacci]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/Fibonacci.java][java]]) --- *mer 24 mar* (Piperno) Laboratorio: esperimenti con eccezioni e liste. _Sorgenti_: [[MatDidd#sorgenti][Eccezioni]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/ProvaEccezioni.java][java]]) _Sorgenti_: [[MatDidd#sorgenti][Liste]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/ProvaListe.java][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_: [[MatDidd#lucidi][Risorsione e Iterazione]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/recIterAssLog.pdf][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_: [[MatDidd#lucidi][Risorsione e Iterazione]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/recIterAssLog.pdf][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_: [[MatDidd#lucidi][Specifiche]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/specifications.pdf][pdf]]) _Dispense_: [[MatDidd#lucidi][Astrazione procedurale]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/proc-abs.pdf][pdf]]) _Dispense_: [[MatDidd#lucidi][ADTs]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/adt.pdf][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_: [[MatDidd#lucidi][ADTs]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/adt.pdf][pdf]]) _Dispense_: [[MatDidd#lucidi][ADTs-2]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/ri-af.pdf][pdf]]) --- *lun 19 apr* (Gorla) Esempi di ADT: booleani, numeri complessi e stack (implementazione con array; suggerimenti per un'implementazione con liste concatenate). _Dispense_: [[MatDidd#lucidi][Booleani e Complessi]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/Java-ADT.pdf][pdf]]) _Dispense_: [[MatDidd#lucidi][Stack]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/stack-java.pdf][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_: [[MatDidd#lucidi][Esercizi]] ([[http://twiki.di.uniroma1.it/pub/Metod_prog/PZ/MatDidd/Esercizi.pdf][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:_ * [[%ATTACHURL%/Java1.pdf][Java1.pdf]]: Java: aspetti generali e definizioni di classi _Lucidi:_ * [[%ATTACHURL%/Java2.pdf][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:_ * [[%ATTACHURL%/Java3.pdf][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:_ * [[%ATTACHURL%/TestTree.java][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:_ * [[%ATTACHURL%/Java4.pdf][Java4.pdf]]: Ereditarietà _Codice:_ * [[%ATTACHURL%/TestPunti.java][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:_ * [[%ATTACHURL%/eccezioni.pdf][eccezioni.pdf]]: Eccezioni --- *ven 28 mag* (Salvo) Iteratori in Java. _Lucidi:_ * [[%ATTACHURL%/iteratori.pdf][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:_ * [[%ATTACHURL%/polimorfismo.pdf][polimorfismo.pdf]]: Tipi Generici _Codice:_ * [[%ATTACHURL%/testBlocchi2.java][testBlocchi2.java]]: Liste Generiche --- *Ecco alcuni utili esercizi con cui cimentarvi* Potete mettervi alla prova sull'intramontabile mondo dei [[%ATTACHURL%/fumetti.pdf][fumetti]], Oppure su quello tornato di recente alla ribalta di [[%ATTACHURL%/pupasecchione.pdf][Pupe e Secchioni]]. Purtroppo anche i tagli a univeristà e ricerca sono il pensiero ricorrente dei nostri [[%ATTACHURL%/onorevoli.pdf][Onorevoli]] Il consiglio è di consultare le seguenti soluzioni commentate solo *dopo* adeguato sforzo... Eccovi svelati comunque tutti i segreti di [[%ATTACHURL%/fumettiCorretto.pdf][paperi e Xman]], di [[%ATTACHURL%/pupasecchioneCorretto.pdf][Pupe e Secchioni]] e di lacrimose e sanguinose [[%ATTACHURL%/onorevoliCorretto.pdf][manovre economiche]] -- Users.IvanoSalvo - 19 Mag 2010
This topic: Metod_prog/PZ
>
WebHome
>
AA0910
>
DiarioLez0910
Topic revision: r16 - 2010-06-17 - IvanoSalvo
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback