91161 - NETWORKS, SECURITY AND DATA BASES

Anno Accademico 2021/2022

  • Docente: Paolo Pistone
  • Crediti formativi: 6
  • SSD: INF/01
  • Lingua di insegnamento: Inglese
  • Moduli: Paolo Pistone (Modulo 1) Francesco Gavazzo (Modulo 2)
  • Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
  • Campus: Bologna
  • Corso: Laurea in Genomics (cod. 9211)

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