Università di Pisa
Anno Accademico 2017-18
docente: prof. Marco Bellia
Guida allo studio del materiale. La partecipazione alla lezione è il primo fondamentale passo per lo studio del corso e del materiale relativo. La lezione infatti, introduce e discute, in modo conveniente, il materiale selezionato per lo studio degli argomenti trattati e, fornisce indicazioni su letture complementari per un loro possibile approfondimento. Il passo successivo è la revisione individuale del contenuto delle slide presentate. Questa revisione deve essere condotta prima della successiva lezione e deve consistere nel ri-considerare ogni affermazione, formulazione ed esempio, contenuti, e motivare ciascuno di questi utilizzando le parti del testo indicato (e riportato nel diario delle attività, sotto). In questa revisione anche le letture complementari possono risultare utili. Ultimata questa revisione, occorre considerare e risolvere tutti gli esercizi proposti: Si può usare questa attività come base per riflettere su quanto studiato e sfidarsi sulla soluzione di problemi ancora più complessi di quelli proposti. Infine, occorre annotare ogni domanda o dubbio emersi e usare il ricevimento per discuterli con i docenti durante la settimana.
Martedì 27/2 | Presentazione del corso. Principi di Calcolabilità: Funzioni Calcolabili e Programmi | Presentazione Lezione1 |
---|---|---|
Mercoledì 28/2 | Calcolabilità, Algoritmi e L. di Programmazione. | Lezione2 |
Giovedì 1/3 | ANNULLATA | |
Venerdì 2/3 | Laboratorio Uso delle Macchine, Esercizi | LaboratorioA1 ListingL1.zip |
Martedì 6/3 | Classi di L.P e Applicazioni: Discussione ed Esercizi |
EserciziL1 EserciziL2(solo Testo) |
Mercoledì 7/3 | Macchina Astratta: Struttura e Realizzazione. Interprete, Compilatore: Proprietà |
Lezione3 EserciziL3 |
Giovedì 8/3 | Interprete, Compilatore: Confronti, Front-End, RTS Sintassi: Gramatiche, Derivazione, Ambiguità | <
Lezione4 |
Venerdì 9/3 | Laboratorio Sintassi Concreta e Astratta: Discussione | LaboratorioA2 ListingA2.1.zip ListingA2.2.zip |
Martedì 13/3 | Completamenti ed Esercizi | Lezione4 ed Esercizi EserciziL4 |
Mercoledì 14/3 | Semantica: Denotazionale, Operazionale e SOS | Lezione4 |
Giovedì 15/3 | Decidibilità. Modelli di Calcolo: Lambda Calcolo | Lezione5 Parte1 |
Venerdì 16/3 | Laboratorio Definiamo SmallC: Sintassi, Semantica | Laboratorio1 |
Martedì 20/3 | Completamenti ed Esercizi | Macchina a Stato Dcl.zip |
Mercoledì 21/3 | Ambiente: Binding, Scope. Memoria: Statica, Dinamica | Lezione6 |
Giovedì 22/3 | Memoria Statica, Dinamica. Un caso in C | EserciziL6 |
Venerdì 23/3 | Laboratorio Dichiarazioni in C e OCaml1 | Laboratorio2 OCaml1.zip |
Martedì 27/3 | Controllo di Sequenza, Ricorsione, Tail Recursion e Memoization. | Lezione7 ListingL7.zip |
Mercoledì 28/3 | Astrazioni di Controllo: Trasmissione per Valore, Costante, Reference, Risultato, Valore-Risultato, Nome, di Funzione. Higher Order |
Lezione8 |
Giovedì 29/3 | Eccezioni | Completamento Lezione8 |
Venerdì 30/3 | Interruzione Accademica 2018 | |
Martedì 3/4 | Interruzione Accademica 2018 | |
Mercoledì 4/4 | Dati, Tipi di Dato, Tipi. Union in C e record con varianti. | Lezione9 |
Giovedì 5/4 | Tipi Algebrici, Patterns e Pattern-Matching | Completamento Lezione9 EserciziL9 |
Venerdì 6/4 | Laboratorio: Sintassi Astratta in OCaml e Tests di Comportamento | Laboratorio:Raccomandazione Laboratorio3(aggiornato) Oggi.ml(aggiornato) EserciziLab3-2To5.ml |
Martedì 10/4 | Programmazione Strutturata: QuickSort in OCaml | Completamento Lezione7 ListingL9.zip |
Mercoledì 11/4 | Tipi Astratti | Lezione10 |
Giovedì 12/4 | Tipi Astratti: AF. I. Moduli | Completamento Lezione10 |
Venerdì 13/4 | Laboratorio: Env&Store, Semantica dcl, Implementazione | Oggi Oggi.zip Laboratorio4 |
Martedì 17/4 | Completamenti ed Esercizi: Printf, 'a option, Implentazione Tipi Astratti |
Slides |
Mercoledì 18/4 | Linguaggi Object Oriented | Lezione11 |
Giovedì 19/4 | Java: Programmazione in Piccolo. Identificatori, Scalari, Strutturati, Espressioni, Comandi | Lezione12Parte1 |
Venerdì 20/4 | Laboratorio: Semantica dcl ed Exp. Implementazione | |
Martedì 24/4 | Java: Rappresentazione Interna di Classi, Oggetti, Metodi, AR. Applichiamo all'esecuzione di un programma. | Lezione12 (Parte2) |
Mercoledì 25/4 | Festa Nazionale | |
Giovedì 26/4 | Ricevimento in Aula L | Esercizi (soluzioni discusse ed esercizi da completare) |
Venerdì 27/4 | Ricevimento in Aula M | Esercizi (soluzioni discusse ed esercizi da completare) listings.zip (allegati) |
Martedì 1/5 | Festa Nazionale | |
Mercoledì 2/5 | Linguaggi Object Oriented: Java Basic 2 | Lezione13 (senza esercizi) |
Giovedì 3/5 | Java. Esercizi: Computazione, Stack, Heap | D2PointEx2.pdf |
Venerdì 4/5 | Laboratorio: Sviluppo di Codice | Sviluppo1.pdf Allegati.zip |
Martedì 8/5 | Tipi di Dato Concreti in Java e OCaml | Lezione14 |
Mercoledì 9/5 | Linguaggi Object Oriented: Java Basic 3 | Lezione15 |
Giovedì 10/5 | Java: Esercizi | vedi STACKS.zip in Laboratorio |
Venerdì 11/5 | Laboratorio: Sviluppo di Codice | STACKS.zip |
Martedì 15/5 | Completamenti ed Esercizi | Lezione16 |
Mercoledì 16/5 | ADT: Mutable. Esposizione dello stato. Equivalenza di Tipi | Lezione16 |
Giovedì 17/5 | Java Additionals: equals, clone, toString, elements | Lezione17 |
Venerdì 18/5 | Laboratorio: Sviluppo di Codice | MuTree.zip |
Martedì 22/5 | metodo elements(). Studio di un Caso di Polimorfismo | Lezione18 (Parte1) |
Mercoledì 23/5 | Linguaggi Funzionali: Principi | Lezione19 |
Giovedì 24/5 | Completamenti : API<T> in Java, Higher Order in Ocaml | Lezione18(completa) Lezione19 |
Venerdì 25/5 | Laboratorio:: Sviluppo di Codice | Pack25-5-18.zip(agg*1) |
Martedì 29/5 | Completamenti ed Esercizi: Riuso e Analisi di un caso | Lezione20 |
Mercoledì 30/5 | Esercizi: Riuso in OCaml | QueueV1.mlEsercizi.ml |
Giovedì 31/5 | Esercizi: Riuso in OCaml | |
Venerdì 1/6 | Esercizi: Estensioni in Ocaml e Java | Pack1-6-18.zip |
Martedì 5/6 | Esercizi di venerdi | ReadMeFirst.pdf Pack5-6-18.zip |
Lunedì 11/6 | Altri Esercizi | AltriEsercizi11-6-18.pdf |
Lunedi 18 Giugno | Appello: Prova Preliminare AULA E1 - ORA 9:00 |
Annullato |
Lunedi 25 Giugno | Appello Straordinario: Prova Preliminare AULA L - ORA 9:00 |
Iscrizione Testo.doc Allegati.doc Soluzione.txt |
Mercoledi 27 Giugno | Prova Finale AULA Seminari Est (Informatica) - ORA 9:00 |
Esito Comunicato |
Lunedi 2 Luglio | Prova Finale AULA Seminari Est (Informatica) - ORA 9:00 |
Esito Comunicato |
Mercoledi 18 Luglio | Appello: Prova Preliminare AULA E1 - ORA 9:00 |
Iscrizione Obbligatoria Testo.pdf Allegati.pdf Soluzione.pdf |
Lunedi 23 Luglio | Prova Finale AULA Seminari Est (Informatica) - ORA 15:00 |
Esito Comunicato |
Mercoledi 5 Settembre | Appello: Prova Preliminare AULA E1 - ORA 9:00 |
Iscrizione Obbligatoria Testo.doc Allegati.doc Soluzione.pdf |
Mercoledi 12 Settembre | Prova Finale AULA Seminari Est (Informatica) - ORA 09:00 |
Esito Comunicato |
Prova Finale AULA - ORA |
||
Mercoledi 19 Settembre | Appello: Prova Preliminare AULA E1 - ORA 9:00 |
Iscrizione Obbligatoria Testo Allegati Soluzione |
Prova Finale AULA - ORA |
||
Lunedi 12 Novembre | Appello: Prova Preliminare AULA E1 - ORA 16:00 |
Iscrizione Obbligatoria Testo Allegati Soluzione.pdf |
Giovedi 15 Novembre | >Prova Finale AULA Studio Bellia (in Dipartimento di Informatica) - ORA 16:00 |
Esito Comunicato |
Mercoledi 09 Gennaio | Appello: Prova Preliminare AULA P1 - ORA 09:00 |
Iscrizione Obbligatoria Testo.pdf Allegato.pdf Soluzione.pdf |
Lunedi 14 Gennaio | >Prova Finale AULA P1 - ORA 16:30 |
Esito Comunicato |
Mercoledi 30 Gennaio | Appello: Prova Preliminare AULA P1 - ORA 09:00 |
Iscrizione Obbligatoria |
> | Prova Finale AULA - ORA |
(agg*1). Aggiornamento contenente l'API dei valori Queue e correzioni nel QueuePack originariamente distribuito (riguardanti l'overriding del metodo clone()).