Linguaggi di Programmazione e Laboratorio

LAUREA Triennale in MATEMATICA

Università di Pisa
Anno Accademico 2014-15
docenti: proff. Marco Bellia, Vincenzo Ciancia


Guide to the material study. The participation to the lesson is the first fundamental step in the study of the course. During the lesson, all the material that is essential for the study of the arguments of the lesson, will be presented and discussed, together with indications on the complementary readings, if any. The next step is the individual revision of the content of the slides that have been discussed during the last lesson. This revision must be done before the next lesson and consists in re-consider each sentence, formula, example in the slide, and motivate each of them. In this revision, the complementary readings should be of help. Solve and discuss all the proposed exercises, if any. Use this activity as the basis for reading additional papers or book chapters that You consider of value for the study of the arguments of the lesson, and/or again, challenge Himself in dealing with issues (problems, exercises) that are related to such arguments.
Finally, annotate any question or doubt and use the question time to discuss them with Myself during the week.

Lunedì 23/2 Presentazione; Linguaggi, programmi, funzioni calcolabili Introduzione (slides 1-12)
Martedì 24/2 LP: Struttura, Potenza e Espressività, Metodologie, Classificazioni Introduzione (slides 13-20)
Mercoledì 25/2 Linguaggi Low/Hight Level, Macchine Astratte e implementazione MacchineAstratte (slides 1-9)
Lunedì 2/2 Macchine Intermedie: Compilatore, Interprete, e soluzioni miste MacchineAstratte (slides 10-14)
Martedì 3/3 Definizione di Liaguaggi: Sintassi, Grammatiche, Stringhe, Parse Tree, Ambiguità Sintassi
Mercoledì 4/3 Semantica SOS Semantica
Venerdì 6/3 Esercizi, Discussioni in Aula M EsercitazioneDel6/3
Lunedì 9/3 Fondamenti di Calcolabilità e Linguaggi, Lambda-Calcolo Fondamenti-1
Martedì 10/3 Fondamenti di Linguaggi: Logica Combinatoria Fondamenti:Completa con Esercizi
Mercoledì 11/3 Ambiente e Memoria nei Linguaggi e loro AM parte1
Venerdì 13/3 Esercizi, Discussioni in Aula M EserciziDiscussiEProposti
Lunedì 16/3 Memoria Dinamica: Stack e Heap parte1+parte2
Martedì 17/3 Strutturare il controllo: Espressioni, Comandi costrutti strutturati: parte1
Mercoledì 18/3 Programmazione Strutturata. Ricorsione di coda Programmi Strutturati-Completa
Venerdì 20/3 Laboratorio: prof. V. Ciancia Lecture 1
Lunedì 23/3 Astrazioni: Procedure, Funzioni e Mecc. di Trasmissione in lucidi del 24/3
Martedì 24/3 Astrazioni: Trasmissione di Procedure e Funzioni con Esercizio Astrazioni
Mercoledì 25/3 Funzioni che calcolano funzioni e Eccezioni Funzioni & Eccezioni
Mercoledì 25/3 Esercitazione: Sviluppo QS con Program. Strutturata SA+Progettazione+StrutturaProgr.
Venerdì 27/3 Laboratorio: prof. V. Ciancia Lecture 2
Lunedì 30/3 Dati e Tipi Dati e Tipi
Martedì 31/3 API-ADT e Moduli API-ADT e Moduli
Mercoledì 1/4 Programmazione Strutturata: Studio di QSort Polimorfa Specifica Astratta e Progetto di Sviluppo
Una prima Versione in C: Seq.h , QSort.h
Lunedì 13/4 Linguaggi Object Oriented: Principi. Java: Classi e Oggetti Linguaggi OO: Java - 1: Classi e Oggetti
Martedì 14/4 Astrazioni, Ereditarità e Riuso. Istallazione e Uso di Java Linguaggi OO: Java - 2: Ereditarietà e Riuso
Mercoledì 15/4 Programmazione Strutturata: Studio di QSort Polimorfa Versione C con liste Doubly-Linked: bool.hmut.hMutSubS.hST-IntermedioQSort.hST-Finale
Venerdì 17/4 Laboratorio: prof. V. Ciancia
Lunedì 20/4 Java: Variabili, Campi, Descrittori di Classi e Metodi, AR e Invocazione Java: Basics1
Martedì 21/4 Java: Shadowing, Overriding, Late Binding Java: Basics2
Mercoledì 22/4 P.S.: Studio di QSort Polimorfa. Doubly Linked List in C e in Java class1class2class3
Esercizi di verifica
Venerdì 24/4 Laboratorio: prof. V. Ciancia
Lunedì 27/4 Java: Overloading, Eccezioni Java: Basics3 (slide 1-13)
Martedì 28/4 Java: Modificatori, ADT, Interfacce, Polimorfismo Generico Java: Basics3(slides 14-20)
Mercoledì 29/4 P.S.: Studio di QSort Polimorfa in Java QSortVersion4-PolyM.pdf
Lunedì 4/5 P.S.: QSort Polimorfa in Java ed Esercizi
Martedì 5/5 Linguaggi Funzionali: Principi. OCaml: Tipi Concreti e Tipi Astratti Linguaggi Funzionali: API-ADT in OCaml
Mercoledì 6/5 Esercizi RelazioneAPI      RelazioneAPI-Imm
EserciziDaDiscutereLunedi
Lunedì 11/5 Esercizi: Implementazione Multipla Mutable      Immutable e Multipla
Martedì 12/5 Esercizi: API-ADT in OCaml OCaml+Esercizi      I/O in Java
Mercoledì 13/5 Esercizi in OCaml e in Java HigherOrder: Memo
Venerdì 15/5 Laboratorio: prof. V. Ciancia
Lunedì 18/5 Esercizi in OCaml: Estendere Tipi Listing1:Ex3      Listing2:Ex3     
Martedì 19/5 Esercizi in OCaml e in Java Listing2:Ex5      Listing3:Ex5     
Mercoledì 20/5 Esercizi in OCaml e in Java Listing3      MutableFunRel:Ex3+Ex5      ImmutableFunRel:Ex3+Ex5     
Venerdì 22/5 Laboratorio: prof. V. Ciancia
Lunedì 25/5 Esercizi in OCaml e in Java SimpleTree in OCaml      SimpleTree in Java     
Martedì 26/5 Laboratorio: prof. V. Ciancia
Mercoledì 27/5 Laboratorio: prof. V. Ciancia
Venerdì 29/5 annullata vedi avvisi: Prova di Esame
Venerdì 5/6 FacSimile Prova di Esame:    Testo1ora     Soluzione1ore Sala Riunioni Est * ore 11:00-13:00
(* Dipartimento di Informatica)
Giovedì 25/6 Esame: Prima Prova Preliminare Aula E1 ore 09:00-11:00
Giovedì 2/7 Esame: Prima Prova Finale Aula seminari Est* ore 16:00-17:00