Logica e Informatica (A.A. 2021/2022)


A chi è rivolto il corso. Il corso, di 3 crediti, è una delle sezioni del corso Metodi quantitativi per l'informatica e viene tenuto nel secondo semestre (periodo didattico da febbraio 2022 a maggio 2022).
Docente. Prof. Maurizio Lenzerini.
Obiettivi. L'obiettivo del corso è di introdurre la logica matematica come potente strumento per modellare e ragionare formalmente su diversi aspetti dell’informatica, quali: i requisiti di un sistema informatico, i dati, i programmi, gli automi e la computazione in generale. Vengono studiati i principali sistemi formali della logica, in primis la logica proposizionale e la logica dei predicati. Viene affrontato il tema dell’uso della logica nello specificare argomenti, dimostrare o confutare la loro validità ed inferire le loro conseguenze, anche in modo automatico. Vengono poi approfonditi alcuni temi che riguardano l’uso della logica nell’informatica, in particolare nella gestione dei dati, nell’interrogazione di basi di dati, nella specifica di programmi e nel ragionamento sulle proprietà dei programmi e degli automi.

  • Avvisi
    • 28 giugno 2022. Gli studenti possono ora prenotarsi per l'appello di luglio. Si ricorda che al momento della verbalizzazione lo studente deve ovviamente superato gli esami di entrambe le sezioni del corso.

  • Materiale didattico
    • Il materiale didattico prevede le slides preparate dal docente, che si possono scaricare dalla pagina MOODLE del corso
  • Lezioni: orari e aule

    Per seguire le lezioni a distanza gli studenti che si sono iscritti al corso tramite il sistema MOODLE devono collegarsi alla stanza virtuale ZOOM. Sul sito dell'ateneo è disponibile una pagina che include una guida all'uso di ZOOM. Le registrazioni delle lezioni sono disponibili nella pagina MOODLE del corso. Gli orari e le aule sono questi:

    • lunedì: [ore 11:00 - 13:00] Sede Marco Polo (RM021), viale dello Scalo S. Lorenzo, 82, aula 106
    • martedì: [ore 14:00 - 15:00] Sede Marco Polo (RM021), viale dello Scalo S. Lorenzo, 82, aula 106
  • Esercitazioni
    Il materiale delle esercitazioni, comprese le soluzioni degli esercizi, è scaricabile accedendo alla pagina MOODLE del corso.

  • Lezioni: calendario e contenuti
    Week Lunedì (11:00 - 13:00) aula 106 Martedì (14:00 - 15:00) aula 106
    01 (Feb 21) Lezioni 1,2
    - Introduzione al corso
    - Sintassi della logica proposizionale
    Lezione 3
    - Semantica della logica proposizionale
    02 (Feb 28) Lezioni 4,5
    - Proprietà della logica proposizionale
    - Pragmatica della logica proposizionale: esempi ed esercizi
    Lezione 6
    - La nozione di implicazione logica
    03 (Mar 07) Lezione 7,8
    - La nozione di teoria proposizionale
    - Esercizi di formalizzazione in logica proposizionale
    ------
    04 (Mar 14) Lezione 9,10
    - Sistemi formali per la deduzione in logica proposizionale
    - Il sistema assiomatico di Hilbert
    ------
    05 (Mar 21) Lezione 11,12
    - Inferenze nel sistema di Hilbert
    - Introduzione alla Davis-Putnam procedure
    ------
    06 (Mar 28) Lezione 13,14
    - La procedura DPLL per a verifica di soddisfacibilità
    ------
    07 (Apr 04) Lezione 15,16
    - La tecnica dei tableau per la logica proposizionale
    ------
    08 (Apr 11) Lezione 17,18
    - La logica del primo ordine: sintassi e semantica
    Lezione 19,20
    - La logica del primo ordine: deduzione
    - La logica del primo ordine: esercizi
    09 (Apr 18)
    ------
    ------
    10 (Apr 25)
    ------
    ------
    11 (Mag 02)
    ------
    ------
    12 (Mag 09) Lezione 21,22
    - La logica del primo ordine: esercizi
    - La logica del primo ordine: indecidibilità

    Lezione 23,24
    - Logica e basi di dati
    - Il calcolo relazionale come linguaggio per query
    13 (Mag 16) Lezione 25,26
    - Logica e vincoli di integrità
    ------
    14 (Mag 23) Lezione 27,28
    - Il linguaggio Datalog
    ------
  • Programma provvisorio del corso
    • 1. La logica proposizionale. Sintassi e semantica della logica proposizionale. Potere espressivo della logica proposizionale. “Satisfiability”: problema, complessità e algoritmi di decisione. L’inferenza nella logica proposizionale. Problemi e algoritmi di decisione relativi all’inferenza.
    • 2. La logica dei predicati del primo ordine. Sintassi e semantica della logica dei predicati del primo ordine. Potere espressivo della logica dei predicati. L’inferenza nella logica dei predicati: deduzione, induzione e abduzione. Sistemi formali per la deduzione. Problemi di decisione nella logica dei predicati. Cenno alle logiche modali e temporali.
    • 3. Applicazione della logica nell’informatica. La logica nello sviluppo e nell’analisi dei programmi. Logica e automi. La logica nella gestione dei dati. Logica e linguaggi di interrogazione nelle basi di dati. Il linguaggio Datalog. La logica nella rappresentazione della conoscenza.
  • Modalità d'esame

    Lo studente può scegliere di svolgere l'esame per la sezione "Logica e Informatica" tra due modalità:

    • Nel primo caso lo studente o il gruppo di due studenti (non di più) sceglie di affrontare un argomento da essi stessi proposto (eventualmente anche in sinergia con un progetto relativo alla sezione del corso su metodi probabilistici) oppure selezionato tra quelli proposti dal docente, e comunica la scelta al docente. Se l'argomento scelto non è stato selezionato già da altri studenti, il docente assegna l'argomento allo studente o al gruppo, altrimenti dovrà essere fatta un'altra scelta. Una volta ricevuta l'accettazione da parte del docente, lo studente o il gruppo si occupa di reperire il materiale per condurre il lavoro, eventualmente chiedendo consiglio al docente. Alla fine del lavoro svolto lo studente o il gruppo produce una breve relazione (anche semplicemente sotto forma di slides), consegna la relazione al docente pochi giorni prima del colloquio d'esame, e nel colloquio conduce una discussione (tipicamente di una ventina di minuti supportata da slides) sul lavoro svolto. La lista di argomenti viene riportata di seguito (la lista viene continuamente aggiornata fino alla fine del corso):
      • Formalizzazione di un problema scelto in logica proposizionale in modo che la soluzione del problema corrisponda ad un compito di ragionamento sulle corrispondenti formule proposizionali
      • Algoritmo per la soddisfacibilità per formule Krom (2-sat): definizione e implementazione (già scelto)
      • Algoritmi per la soddisfacibilità per formule Horn: definizione e implementazione (già scelto)
      • La deduzione naturale in logica proposizionale (già scelto)
      • Implementazione della tecnica del tableaux per deduzione in logica proposizionale
      • Logiche proposizionali modali: sintassi, semantica e deduzione (già scelto)
      • Logiche proposizionali temporali: sintassi, semantica e deduzione (già scelto)
      • Quantified Boolean Formulas (già scelto)
      • Formalizzazione di un problema scelto in logica del primo ordine in modo che la soluzione del problema corrisponda ad un compito di ragionamento sulle corrispondenti formule del primo ordine
      • Formulazione del concetto di macchina di Turing in logica del primo ordine e dimostrazione della indecidibilità dell'implicazione logica al primo ordine mediante riduzione all'halting problem (già scelto)
      • La tecnica del tableaux per la logica del primo ordine
      • Valutazione e contenimento di query congiuntive estese con unione e negazione
      • Adding negation to Datalog (già scelto)
      • Disjunctive Datalog (già scelto)

      Quando lo studente è pronto per la presentazione manda un messaggio al docente chiedendo di effettuare la prova in una specifica data tra quelle di seguito indicate. Le possibili date per presentare il lavoro on line all'indirizzo [https://meet.google.com/hzy-save-oqw] sono per il momento le seguenti (altre se ne aggiungeranno nei successivi appelli):

      • martedì 11 ottobre 2022, ore 17:00,
      • martedì 25 ottobre 2022, ore 17:00.
    • Nel secondo caso l'esame consiste di una prova scritta ed eventualmente di una prova orale, entrambe vertenti sul programma d'esame. Anche in questo caso lo studente deve mandare un messaggio al docente, che indicherà la data dell'esame.
  • Prenotazione degli esami: per la verbalizzazione dell'intero esame di Logica e Metodi Probabilistici dell'Informatica, gli studenti devono utilizzare il servizio del sistema Infostud.
  • Calendario previsto degli esami
    • Primo appello: giugno 2022
    • Secondo appello: luglio 2022
    • Terzo appello: settembre 2022
    • Appello straordinario (per studenti studenti part-time, fuori corso, iscritti per l’A.A. 2021-2022 al terzo anno della laurea e al secondo anno della laurea magistrale, studenti con disabilità e con D.S.A.): ottobre 2022
    • Quarto appello: gennaio 2023
    • Quinto appello: febbraio 2023
    • Appello straordinario (per studenti fuori corso, part time, con disabilità e con D.S.A.): aprile 2023
  • Informazioni sulle edizioni passate del corso
  • Ricevimento studenti. Il martedì alle ore 17, o on-line oppure al Dipartimento di Ingegneria Informatica Automatica e Gestionale "Antonio Ruberti", via Ariosto 25, Roma, secondo piano, stanza B203 (se disponibile), oppure stanza B217 (altrimenti) -- si prega di consultare la sezione delle latest news per l'indirizzo della stanza on-line e per eventuali variazioni.