Corso di Informatica 2 (IN2 - Modelli di Calcolo)

Le lezioni

Diario delle lezioni dell'anno accademico 2009-2010

Le lezioni si tengono nel primo semestre con il seguente orario:

  • martedì ore 11.00-13.00 (lezione);
  • mercoledì ore 14.00-16.00 (lezione);
  • venerdì ore 14.00-16.00 (lezione);
  • venerdì ore 16.00-18.00 (esercitazione o laboratorio a settimane alterne).
Lezione n. 1 - Tuesday 22 September 2009

  • Presentazione del corso Presentazione del corso
Lezione n. 2 - Thursday 24 September 2009

  • (Laboratorio 1) Richiami di architettura del calcolatore. Gestione dinamica della memoria. Classificazione degli errori di accesso alla memoria. Motivazioni per disciplinare gli accessi alla memoria. Java. Interpreti e compilatori. Portabilita' del codice. Opzioni del compilatore C. Introduzione alle classi nella programmazione object oriented.
Lezione n. 3 - Friday 25 September 2009

  • Algoritmo formale che decide un problema. Problemi di decisione, Concetto di Semidicidibilita'. Monoide libero delle parole di un certo alfabeto. Automa a stati finiti. Algoritmo associato ad un automa astati finiti. Insiemi Regolari. Automa che riconosce li insieme delle parole esteso con un carattere.
Lezione n. 4 - Tuesday 29 September 2009

  • Proprieta' di chiusura degli automi finiti. Concatenazione. Unione. Complemento. Espressioni Regolari Definizione di automa finito non-deterministico. Algoritmo associato ad un automa non-determiistico. Automi con epsilon-mosse. Equivalenza tra NFA e DFA. Espressioni regolari.
Lezione n. 5 - Thursday 1 October 2009

  • (Laboratorio 2) Definizioni di classi. Metodi costruttori. Definizione di tipi di dato astratti. Costruttori di liste: emptylist, append. Implementazione di una classe. Compilazione di classi. Esecuzione di Java bytecode. Metodo main.
Lezione n. 6 - Friday 2 October 2009

  • Automi Non deterministici. Traduzione di un NFA in DFA. Equivalenza tra insiemi decidibili con NFA e con espressioni regolari. Macchine RAM. Algoritmo formale associato ad una macchina RAM.
Lezione n. 7 - Thursday 8 October 2009

  • (Laboratorio 3) Attributi e metodi con qualificatore static e final. Incaplsulamento di classi. Chiamate ricorsive a metodi. Terminato l'esempio delle liste.
Lezione n. 8 - Friday 9 October 2009

  • Definizione di Macchina di Turing. Definizione di algoritmo associato ad una macchina di Turing. Decidibilita` per macchina di Turing. Semidicibilita' per macchina di Turing. Funzioni computabili per macchina di Turing. Concetto di Computazione associata ad un input. Considerazioni sulla cardinalita' di insiemi decidibili per macchina di Turing.
Lezione n. 9 - Tuesday 13 October 2009

  • Definizione del tempo di arresto di una macchina di Turing. Definizione di spazio di arresto. Definizione di complessita'. Classe di complessita' polinomiale. Caso della complessita' lineare. Separazione tra le classi DTIME(n^2) e DTIME(c n). Pumping-lemma per le macchine con tempo di arresto lineare.
Lezione n. 10 - Thursday 15 October 2009

  • (Laboratorio 4) Metodi e classi astratte. Definizione dei costruttori. Derivazione di classi. Concetto della inheritance. Creazione di istanze di classe.
Lezione n. 11 - Friday 16 October 2009

  • Esempi di applicazione del Pumping-lemma. Decidibilita' dell'insieme 0^p 1^p in tempo c n log(n)
Lezione n. 12 - Tuesday 20 October 2009

  • Definizione ed esempi di simulazioni tra algoritmi. Equivalenza tra macchine a seminastro e macchine mononastro. Costo della simulazione.
Lezione n. 13 - Thursday 22 October 2009

  • (Laboratorio 5) Classi astratte; esempio di liste di oggetti eterogenei. Implementazione del crivello di Eratostene ad oggetti.
Lezione n. 14 - Friday 23 October 2009

  • Definizione di macchina multinastro. Algoritmo associato ad una macchina multinastro. Vantaggi nell'esecuzione. Teorema di simulazione di una macchina multinastro con una mononastro. Valutazione del costo computazionale nella simulazione.
Lezione n. 15 - Tuesday 27 October 2009

  • Cambiamenti di alfabeto. Proprieta' prelimiari al Teorema di Speedup. Cambiamenti di alfabeto nelle macchine di Turing. Complessita'.
Lezione n. 16 - Thursday 29 October 2009

  • Automi Finiti, applicazioni ed esercizi. Macchine di Turing e complessita': applicazioni ed esercizi.
Lezione n. 17 - Tuesday 10 November 2009

  • Classi di complessita' indipendenti dall'alfabeto e dal numero di nastri. Macchine di Turing speciali (alfabeto A={1}, autoconfinate nel seminastro positivo). Equvalenza tra macchine di Turing e macchine di Turing speciali. Costo della complessita' della simulazione.
Lezione n. 18 - Thursday 12 November 2009

  • (Laboratorio 6)Implementazione OOP del crivello di Eratostene. Classi astratte. Derivazione di classi astratte. Overloading di costruttori.
Lezione n. 19 - Friday 13 November 2009

  • Rappresentazione dei numeri naturali in base 1 e in base >1. Decidibilita' di un insieme numerico. Indipendenza della decidibilita' dalla base scelta. Complessita` di un insieme numerico, relazione di complessita' in funzione della base.
Lezione n. 20 - Tuesday 17 November 2009

  • Definizione della classe delle funzioni ricorsive. Definizione di computabilita'. Equivalenza tra computabilita' e decidibilita' della funzione caratteristica del grafico della funzione (nel caso delle funzioni totali). Equivalenza tra funzioni parziali Turing computabili e semidecidibilita' del grafico della funzione. Funzioni ricorsive; funzioni base: successore, predecessore, funzione costante e funzione proiezione; schema di ricorsione, composizione, concatenazione e minimalizzazione.
Lezione n. 21 - Thursday 19 November 2009

  • Ogni funzione computabile e' anche ricorsiva. Codifica delle macchine di Turing nelle funzioni ricorsive: la funzione di transizione associata ad un macchina di Turing e' una funzione ricorsiva.
Lezione n. 22 - Thursday 26 November 2009

  • Teorema di equivalenza tra funzioni computabili e funzioni ricorsive: codifica della configurazione di input a partire dall'n-upla di interi rappresentata. Aritmetizzazione dello spazio delle configurazioni di una macchina di Turing.
Lezione n. 23 - Thursday 3 December 2009

  • Teorema di equivalenza tra funzioni computabili e funzioni ricorsive. Funzioni ricorsive primitive. Funzioni ricorsive totali. Funzione di Ackermann.
Lezione n. 24 - Friday 4 December 2009

  • Funzioni ricorsive. Applicazioni. Funzioni definite per casi su domini ricorsivi. Caso delle funzioni parziali. Lambda Calcolo: funzioni sulle variabili: variabli libere, variabili legate, lunghezza di un lambda-termine. Induzione strutturale. Grafo sintattico di un lambda-termine.
Lezione n. 25 - Thursday 10 December 2009

  • (Laboratorio 7) Attributi e metodi di classe (static). Implementazione del crivello di Eratostene (versione distribuita). Definizione di array di oggetti. Ancora sulla visibilita' di metodi (public/private).
Lezione n. 26 - Friday 11 December 2009

  • Definizione di lambda termini. Lemmi preliminari sulla sostituzione. Alfa equivalenza. Relazioni che passano al contesto. L'alpha equivalenza passa al contesto. Proprieta' di Church-Rosser. La chiusura transitiva di una relazione Church-Rosser e' Church-Rosser. Definizione di sostituzione. Definizione di beta-riduzione. Proprieta' della beta riduzione.
Lezione n. 27 - Tuesday 15 December 2009

  • Confluenza dell beta conversione. Proprieta' di Church-Rosser. unicita' della Forma Normale. Esempi di riduzione.
Lezione n. 28 - Thursday 17 December 2009

  • Beta equivalenza. Forma normale dei lambda termini. Utilizzo del lambda calcolo come dispositivo computazionale astratto.
Lezione n. 29 - Friday 18 December 2009

  • Strategie di riduzione. Riduzione di testa. Riduzione sinistra. Strategie normalizzanti. Alberi di Bohm. Forma normale di testa. Risolubilita' di lambda termini.
Lezione n. 30 - Tuesday 22 December 2009

  • Codifica dei booleani; rappresentazione delle funzioni ricorsive di base; rappresentazione della composizione; Rappresentazione della minimalizzazione. Operatori di punto fisso nel lambda calcolo; teoremi di esistenza. Rappresentazione di altri tipi di dato nel lambda calcolo: booleani, coppie, liste. Risoluzione di equazioni ricorsive mediante uso di operatori di punto fisso.

Per informazioni e commenti: pedicini@mat.uniroma3.it - Torna alla Home page - Ultima modifica: Fri Mar 5 00:59:10 CET 2010