Scheda insegnamento
-
Docente Paolo Pistone
-
Moduli Paolo Pistone (Modulo 1)
Francesco Gavazzo (Modulo 2)
-
Crediti formativi 6
-
SSD INF/01
-
Modalità didattica Convenzionale - Lezioni in presenza (Modulo 1)
Convenzionale - Lezioni in presenza (Modulo 2)
-
Lingua di insegnamento Inglese
-
Campus di Bologna
-
Corso Laurea in Genomics (cod. 9211)
-
Orario delle lezioni (Modulo 1) dal 03/03/2022 al 08/04/2022
Orario delle lezioni (Modulo 2) dal 21/04/2022 al 01/06/2022
Anno Accademico 2021/2022
Conoscenze e abilità da conseguire
l’insegnamento ha come scopo quello di fornire allo studente conoscenze specialistiche nell’ambito delle scienze computazionali permettendogli/le di acquisire maggior consapevolezza circa il potenziale dei più recenti sistemi informatici e di comunicazione. Nello specifico saranno forniti concetti circa i sistemi operativi, le reti informatiche, la sicurezza informatica e le banche dati.
Contenuti
Il corso consiste di due moduli indipendenti e fornisce un'introduzione ad alcuni dei principali temi dell'informatica.
Nel primo modulo saranno discussi i fondamenti logici dei calcolatori ed alcune applicazione della logica nell'informatica.
Nel secondo modulo saranno discussi alcuni concetti fondamentali della teoria della complessità computazionale e la loro applicazione per l'analisi dei protocolli crittografici e di algoritmi di apprendimento automatico.
Al termine del corso gli studenti saranno in grado di discutere diversi temi teorici e di risolvere alcuni problemi pratici di informatica teorica utilizzando concetti e risultati delle discipline menzionate.
Modulo 1:
Fondamenti logici
- Logica Proposizionale e Logica dei Predicati
- Modelli di calcolo basati sui circuiti e Algebra Booleana
Calcolatori
- Introduzione alle macchine calcolatrici
- Dai circuiti ai computer
- Dai computer alla programmazione
Logica e Informatica
- Intelligenza Artificiale e Ragionamento Simbolico
- Database relazionali
Modulo 2:
Complessità:
- Modelli di calcolo, la macchina di Turing
- Notazione asintotica, classi di complessità, il problema P=NP
- Discussione di alcuni problemi intrattabili (fattorizzazione, logaritmo discreto)
Crittografia:
- Cenni di aritmetica modulare
- Panoramica generale sulla crittografia (funzioni one-way, crittosistemi, sistemi a chiave pubblica/privata)
- Esempi di crittosistemi a chiave pubblica (RSA, DHKE)
- Firme digitali
Machine Learning:
- Il modello PAC della complessità dell'apprendimento automatico
- Stime della complessità di alcuni problemi di apprendimento (funzioni Booleane, Support Vector Machines, reti neurali)
Testi/Bibliografia
Saranno distribuite le slides delle lezioni. Per ulteriore approfondimento suggeriamo i seguenti manuali:
Primo modulo:
- Robert Sedgewick, Kevin Wayne: Computer Science: An Interdisciplinary Approach, Pearson Education US (2016)
- Dirk van Dalen: Logic and Structure, Universitext; 5th edition (2013)
- Michael Huth, Mark Ryan: Logic in Computer Science: Modelling and Reasoning about Systems, Cambridge University Press (2012)
Secondo modulo:
- Guttag J.V. Introduction to Computation and Programming Using Python. Revised and Expanded Edition. MIT Press, Cambridge, 2013.
- Sipser, M. Introduction to the theory of computation. Second Edition. Thomson Course Technology, USA, 2006.
- Paar, C. and Pelzl, J. Understanding Cryptography. Springer-Verlag, Berlin-Heidelberg, 2010.
- Mohri, M., Rostamizadeh, A., Talwalkar, A. Foundations of Machine Learning, MIT Press, Cambridge, Massachussets 2018.
Metodi didattici
Lezioni frontali.
Modalità di verifica e valutazione dell'apprendimento
Fogli di esercizi settimanali ed esame orale.
Strumenti a supporto della didattica
Saranno distribuite le slides delle lezioni.
Orario di ricevimento
Consulta il sito web di Paolo Pistone
Consulta il sito web di Francesco Gavazzo