Corso di Informatica 2 (IN410 - Modelli di Calcolo)

Le lezioni

Diario delle lezioni dell'anno accademico 2010-2011

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

  • martedì ore 14.00-14.00 - Aula F (lezione);
  • giovedì ore 14.00-16.00 - Aula F (lezione);
  • venerdì ore 14.00-16.00 - Aula F/laboratori (esercitazione/laboratorio);
Lezione n. 1 - Thursday 23 September 2010

  • Presentazione del corso: orari, libri di testo, modalita' d'esame. Panoramica sulla teoria della calcolabilita'. La questione P=NP. Introduzione ai problemi di decisione. Algoritmi formali come sistemi dinamici discreti. Esempio preliminare di automa a stati finiti.
Lezione n. 2 - Friday 24 September 2010

  • Definizione di lunghezza della coputazione. Definizione di Automa Finito. Algoritmo Formale associato ad un automa finito. Rappresentazione di un automa come grafo. Monoide libero delle parole su un certo alfabeto. Somme Formali di parole. Rappresentazione di un automa come matrice di adiacenza del grafo. Calcolo dell'insieme delle parole accettate dall'automa come serie delle potenze successive della matrice.
Lezione n. 3 - Tuesday 28 September 2010

  • Valutazione dell'esecuzione di un automa finito deterministico. Algebra delle parole (concatenazione e serie formali di parole). Matrici e prodotto di matrici. Linguaggio riconosciuto da un automa. Automi non deterministici. Proprieta' di chiusura degli insiemi decidibili per automa (somma, prodotto e star). Linguaggi regolari.
Lezione n. 4 - Thursday 30 September 2010

  • Automi finiti non deterministici con transizioni epsilon. Algoritmo formale associato ad un automa non deterministico. Equivalenza tra linguaggi decidibili per automa ed espressioni regolari.
Lezione n. 5 - Friday 1 October 2010

  • Introduzione alla programmazione object oriented. Confronto tra i tipi definiti dall'utente in C (struct) e le classi. Introduzione del linguaggio Java. Bytecode Java e Java Virtual Machine. Primi passi di programmazione di una classe per le liste. Compilazione di una classe.
Lezione n. 6 - Tuesday 5 October 2010

  • Esempio di conversione di un automa a stati non deterministico in uno deterministico equivalente. Teorema di Equivalenza tra espressioni regolari e automi. Trasformazione di un automa in espressione regolare.
Lezione n. 7 - Thursday 7 October 2010

  • Algoritmo formale associato ad una RAM. Esempio di programmazione di una RAM. Ogni insieme decidibile per automa a stati finiti puo' essere descritto da un'espressione regolare. Modello RAM. Linguaggio di programmazione delle RAM.
Lezione n. 8 - Friday 15 October 2010

  • Algoritmo Formale associato ad una macchina RAM. Definizione di Macchina di Turing. Algoritmo Formale associato ad una macchina di Turing. Problema decidibile per macchina di Turing.
Lezione n. 9 - Thursday 21 October 2010

  • Definizione di tempo e spazio di arresto di una macchina di Turing a partire da un dato input. Definizione di complessita' di un problema decidibile per macchina di Turing. Definizione delle classi di complessita'. Ogni problema decidibile per macchina di Turing con complessita' T(n), per ogni $N$ e' decidibile in tempo $T'(n)$ dove$T'(n)=n$ se $n
Lezione n. 10 - Friday 22 October 2010

  • Pumping Lemma per i problemi decidibili in tempo lineare. Separazione tra la classe di complessita' lineare e quella quadratica. Simulazione di algoritmi.
Lezione n. 11 - Tuesday 26 October 2010

  • Macchine di Turing a seminastro. Equivalenza tra macchine di Turing a seminastro e macchine di Turing. Simulazione di algoritmi.
Lezione n. 12 - Friday 29 October 2010

  • Definizione di macchine di Turing multinastro. Algoritmo associato ad una macchina multinastro. Teorema di simulazione delle macchine multinastro con le macchine a nastro singolo.
Lezione n. 13 - Thursday 11 November 2010

  • Dimostrazione del teorema di speedup. Introduzione al concetto di computabilita'. Macchine di Turing non-deterministiche. P vs NP. Problemi NP-completi.
Lezione n. 14 - Tuesday 16 November 2010

  • Funzioni Ricorsive di Base Operazioni di chiusura per le funzioni Turing Computabili: composizione, concatenazione, ricorsione, minimalizzazione.
Lezione n. 15 - Thursday 18 November 2010

  • Chiusura della classe delle funzioni Turing computabili rispetto allo schema di ricorsione. Chiusura della classe delle funzioni Turing computabili rispetto allo schema di minimalizzazione.
Lezione n. 16 - Tuesday 23 November 2010

  • Definizione della classe delle funzioni ricorsive. Esempi di funzioni ricorsive.
Lezione n. 17 - Thursday 25 November 2010

  • Generalizzazione dello schema di ricorsione alle funzioni a piu' valori. Codifica ricorsiva delle coppie e piu' in generale di n-uple di naturali. Equivalenza tra funzioni Turing computabili e funzioni ricorsive.
Lezione n. 18 - Friday 26 November 2010

  • Dimostrazione che ogni funzione Turing computabile e' anche ricorsiva. Definizione di funzioni ricorsive primitive e relazione con il concetto di funzione ricorsiva totale. Funzione di Ackermann.
Lezione n. 19 - Thursday 2 December 2010

  • Equivalena tra funzioni ricorsive e macchine di Turing (continua la dimostrazione). Ogni funzione calcolabile e' ricorsiva. Definizione di macchina di Turing universale.
Lezione n. 20 - Friday 3 December 2010

  • Implementazione del crivello di Eratostene in Java. Costrutti tipici della programmazione object oriented: classi astratte, pubbliche, private. Overloading di metodi, overriding, ereditarieta', costruttori di classe.
Lezione n. 21 - Tuesday 7 December 2010

  • Macchine di Turing Universali. Il problema dell'arresto. Indecidibilita' del problema dell'arresto. Introduzione e prime definizioni sul lambda calcolo. Induzione strutturale sui lambda termini. Variabili libere e varibili legate.
Lezione n. 22 - Thursday 9 December 2010

  • Introduzione al lambda calcolo. Definizione dell'insieme dei lambda termini. Lambda termini come funzioni. Lambda termini come dati. Astrazione e Applicazione. Variabili libere e variabili legate. Definizioni per induzione strutturale. Definizione della sostituzione semplice. Proprieta' di invarianza per permutazione della sostituzione. Lemma di non dipendenza dalle sostituzioni su variabili che non sono variabili libere del termine.
Lezione n. 23 - Friday 10 December 2010

  • Derivazione delle classi del crivello di Eratostene per la gestione di interi a precisione arbitraria. Metodi ed attributi di classe (static). Attributi costanti (final). Conversione da intero a stringa.
Lezione n. 24 - Thursday 16 December 2010

  • Proprieta' della sostituzione. Relazioni sui lambda termini. Definizione di alpha equivalenza. Definizione di relazione che passa al contesto.
Lezione n. 25 - Tuesday 21 December 2010

  • Sostituzione e sostituzione a meno di alpha-equivalenza, Beta riduzione, Terminazione e Confluenza nel lambda calcolo. Programmazione nel lambda calcolo. Interi, Coppie, Triple, Proiezioni, Liste, Induzione sugli interi, Induzione sulle liste.

Per informazioni e commenti: pedicini@mat.uniroma3.it - Torna alla Home page - Ultima modifica: Tue Mar 15 19:31:52 CET 2011