FONDAMENTI DI INFORMATICA

Anno accademico 2016/2017 - 1° anno
Docente: Franco BARBANERA
Crediti: 9
SSD: INF/01 - Informatica
Organizzazione didattica: 225 ore d'impegno totale, 189 di studio individuale, 36 di lezione frontale
Semestre:

Obiettivi formativi

Conoscenza di base delle teorie fondamentali dell'informatica.

Capacita' di comprensione del significato degli aspetti teorici dell'informatica.

Capacita' di utilizzare nozioni teoriche in contesti applicativi.

Capacita' di valutare, giudicare e comunicare metodologie e tecniche informatiche nel contesto piu' generale ed astratto delle teorie fondazionali.


Prerequisiti richiesti

Nessuno.


Frequenza lezioni

No.


Contenuti del corso

Elementi di Teoria dei linguaggi formali:

  • Alfabeto, stringa, linguaggio. Operazioni tra linguaggi. Espressioni regolari. Cardinalita' dei linguaggi.
  • Grammatiche di Chomsky. Grammatiche ti tipo 0, 1, 2 e 3. Gerarchia di Chomsky. Forma normale di Bakus.
  • Cosa vuol dire computare
  • Accettazione e riconoscimento di linguaggi. Automi.
  • Automi a stati finiti deterministici e non deterministici.
  • Nota sugli Automi a Stati Finiti
  • Pumping Lemma per Automi a stati finiti.
  • Cenni di linguaggi non contestuali.


Modelli computazionali e teoria della calcolabilita':

  • Macchine di Turing. Maccchina di Turing Universale.
  • Introduzione alla programmazione funzionale ed al Lambda-calcolo
  • variabili libere e legate,alfa-equivalenza, sostituzione, beta-riduzione. Definizione di sistema formale. Numerali di Church, funzioni lambda-definibili.
  • Lambda-definibilita' di funzioni ricorsive. Il teorema di Church-Rosser; unicita' della forma normale, consistenza della teoria della beta-equivalenza.
  • Il formalismo delle funzioni primitive ricorsive e parziali ricorsive
  • Introduzione informale alla teoria della ricorsivita' e ad alcuni risultati fondamentali.
  • Un modello computazionale basato sulla logica: un cenno alla programmazione logica.


Codici e rappresentazione informazione numerica:

  • Codici e rappresentazione in complemento a due.
  • Strings vs Numbers


Macchine astratte

  • Macchine astratte
  • Realizzazione di macchine astratte; organizzazione a livelli dei sistemi di calcolo.

 

Logica:

  • Sistemi formali. Regole derivabili ed amissibili. Alcune proprieta' dei sistemi formali. Consistenza.
  • La Logica Proposizionale. Principali definizioni e proprieta'. Teorema di deduzione.
  • Semantica della Logica Proposizionale. Correttezza e completezza.
  • La Deduzione Naturale per la logica proposizionale.
  • La corrispondenza dimostrazioni-programmi
  • La logica dei predicati: linguaggio e semantica.
  • La logica dei predicati: sostituzioni, deduzione naturale, sistema assiomatico.
  • Enunciati di alcuni teoremi fondamentali.
  • Formalizzazione dell'aritmetica e della teoria dei gruppi.
  • Enunciati di alcuni teoremi fondamentali della teoria dei modelli.
  • Introduzione formale ai risultati limitativi della logica: Goedel, Tarski, Church.
  • Induzione, induzione completa, induzione ben fondata e suo utilizzo nelle dimostrazioni di correttezza
  • Corrispondenza tra Induzione e Ricorsione: un cenno
  • Un frammento decidibile della logica del primo ordine: clausole di Horn e cenni di Prolog


Semantica dei linguaggi di programmazione:

  • Semantica Operazionale Strutturata

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

Scritto e orale


Esempi di domande e/o esercizi frequenti

http://www.dmi.unict.it/~barba/FONDAMENTI/ESERCIZI/index.html