Dettaglio insegnamento

ARCHITETTURE COMPUTAZIONALI, RETI E SICUREZZA

MF0614

Insegnamento
ARCHITETTURE COMPUTAZIONALI, RETI E SICUREZZA
Codice
MF0614
Anno Accademico
2023/2024
Anno regolamento
2023/2024
Corso di studio
INTELLIGENZA ARTIFICIALE E INNOVAZIONE DIGITALE
Curriculum
000 - 000-GENERICO
Responsabile didattico
CFU
12
Ore di lezione
96
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ - Opzionale
Anno
1
Periodo
Secondo Semestre
Sede
VERCELLI
Lingua insegnamento
Italiano
Contenuti
Il corso offre una panoramica completa delle fondamenta dell'informatica, introducendo gli studenti alle sfaccettature complesse dei sistemi di calcolo, dalle strutture hardware, come processori e supporti di memorizzazione, alla rappresentazione dei dati e al dimensionamento dello spazio di memorizzazione. Inoltre, approfondisce la comprensione degli studenti sulla distinzione tra i vari strati software, inclusi firmware, sistema operativo e applicazioni.
Gli studenti esploreranno la complessità delle reti e dei protocolli di comunicazione, comprendendo l'importanza del dimensionamento dei dispositivi in termini di capacità di memorizzazione e potenza di trasmissione. Saranno inoltre portati a familiarizzare con i componenti fondamentali per la connessione alla rete di una varietà di dispositivi, tra cui PC, dispositivi mobili e sensori IoT.
Sarà data enfasi all'esplorazione dei requisiti software, sia funzionali che non funzionali, e alla diversità di applicazioni e servizi, disponibili sia localmente che in rete. Questo segmento del corso comprende anche una panoramica sui diversi tipi di licenze software e fornisce un'introduzione al lavoro con UML (Unified Modeling Language), uno strumento standardizzato per la modellazione di software.
Infine, gli studenti si immergeranno nel mondo della sicurezza informatica. Saranno introdotti a una vasta gamma di argomenti, tra cui i requisiti di sicurezza, le diverse tipologie di attacchi, l'organizzazione e la gestione degli incidenti, e i protocolli crittografici. Un focus importante sarà dato all'apprendimento dei principi di funzionamento dei firewall e al riconoscimento della varietà di soluzioni crittografiche disponibili, insieme alla comprensione di come queste si relazionino ai requisiti di sicurezza ed efficienza con l'obiettivo di sviluppare negli studenti una consapevolezza critica che li accompagni nel loro futuro percorso professionale.
Testi di riferimento
INFORMATICA DI BASE 7/ED
di Dennis Curtin, Kim Foley, Kunal Sen, Cathy Morin, Agostino Marengo, Alessandro Pagano
McGraw-Hill

Reti di calcolatori e Internet, Un approccio top-down
James F. Kurose, Keith W. Ross
Pearson

Charles Pfleeger & Shari Lawrence Pfleeger & Lizzie Coles-Kemp
Security in Computing, 6th Edition
Addison-Wesley Professional
Obiettivi formativi
Il corso fornisce agli studenti una panoramica completa delle sue fondamenta, equipaggiandoli con strumenti per capire l'importanza delle scelte fatte nei sistemi hardware, applicazioni software, connettività di rete e aspetti di sicurezza. L'obiettivo è che gli studenti siano in grado di interagire in modo informato con gli esperti per valutare correttamente le necessità nel loro specifico ambito applicativo.
Il corso si avvale di un approccio pratico, affiancando all'analisi teorica l'analisi di casi di studio e alcune attività di sperimentazione. Ciò aiuta a migliorare la comprensione degli argomenti e a familiarizzare gli studenti con i principali strumenti delle diverse aree specifiche.
Gli studenti svilupperanno la conoscenza e la capacità di comprendere la rappresentazione digitale delle informazioni, la loro comunicazione e l'elaborazione tramite strumenti informatici. Il corso fornisce una conoscenza di base sulla struttura e il funzionamento di un sistema di calcolo e dei protocolli di comunicazione, con le loro componenti hardware e software. Inoltre, evidenzia le similitudini e le differenze tra diverse architetture e le mette in relazione con i requisiti di uno specifico contesto applicativo.
È posta enfasi sull'esplorazione dei requisiti software, sia funzionali che non funzionali, e sulla varietà di applicazioni e servizi, disponibili sia localmente che in rete. Gli studenti saranno anche introdotti a lavorare con UML (Unified Modeling Language), uno strumento standardizzato per la modellazione del software.
Infine, il corso si immerge nel mondo della sicurezza informatica, introducendo gli studenti a una vasta gamma di argomenti. Saranno illustrati i requisiti di sicurezza, le diverse tipologie di attacchi, l'organizzazione e la gestione degli incidenti e i protocolli crittografici. Gli studenti impareranno i principi di funzionamento dei firewall e riconosceranno la varietà di soluzioni crittografiche disponibili, capendo come queste si relazionano ai requisiti di sicurezza ed efficienza.
Le competenze acquisite permetteranno agli studenti di apprezzare le potenzialità e i limiti delle diverse architetture di sistemi di calcolo, dei diversi protocolli e dei corrispondenti rischi di sicurezza. Saranno in grado di identificare i requisiti essenziali per un sistema efficace nel loro contesto applicativo, fornendo indicazioni agli esperti incaricati di costruire o adattare il sistema per soddisfare tali requisiti.
Gli studenti acquisiranno la capacità di valutare problemi di dimensionamento dei sistemi in funzione del tipo di problemi da risolvere e di sicurezza. Nell'analisi dei requisiti funzionali e non funzionali di sistemi innovativi nel loro campo applicativo, saranno in grado di contribuire alla valutazione dell'adeguatezza della combinazione tra protocolli di comunicazione e dispositivi da adottare, e alla scelta delle misure di sicurezza più opportune, in collaborazione con analisti, sviluppatori esperti e specialisti di sicurezza.
Infine, acquisiranno la capacità di utilizzare la terminologia tecnica specifica del settore e di esporre efficacemente le caratteristiche salienti dei problemi applicativi di loro competenza, confrontando possibili soluzioni alternative, sia architetturali che di comunicazione e di protezione, con l'aiuto di esperti del settore.
Il corso, inoltre, si propone di fornire agli studenti la capacità di apprendere autonomamente. Saranno in grado di apprezzare e valutare le nuove tecnologie e protocolli che si basano sui principi fondamentali trattati nel corso, aggiornando le proprie conoscenze.
Prerequisiti
Programmazione base in Python
Metodi didattici
Lezione Frontale
Flipped Classroom
Esercitazioni
Modalità di verifica dell'apprendimento
Esame orale
Programma esteso
Informatica di base (2 CFU)
- Panoramica sui concetti di base
- Architettura di un elaboratore
- Rappresentazione dei dati
- Logica booleana
Reti (4 CFU)
- Introduzione alle reti
- Il modello ISO/OSI
- Il protocollo Ethernet
- Il protocollo IP
- I protocolli TCP e UDP
- Il protocollo HTTP
- Le applicazioni web e l'uso dei metodi HTTP
- Esempi in Python
- Tipologie di sistemi informativi basati su applicazioni web
Definizione dei requisiti software (3 CFU)
- Ingegneria dei requisiti
- Modellazione concettuale con UML
- Definizione dei casi d'uso con UML
- Definizione delle narrative dei casi d'uso
- Licenze del software
Sicurezza (3CFU)
- Concetti di base della sicurezza informatica
- Crittografia
- Sicurezza nel web
- Sicurezza nelle comunicazioni di rete
- Sicurezza nel cloud
- Elementi di privacy
Risultati di apprendimento attesi
Conoscenze
Dopo aver sostenuto l'esame, gli studenti conosceranno:
- I meccanismi di rappresentazione dei dati;
- I criteri di dimensionamento dello spazio necessario per la memorizzazione dei dati;
- I principali componenti di un computer e le loro interazioni;
- Le caratteristiche dei processori: dalle CPU a bordo dei sistemi integrati, alle CPU multi-core, alle GPU;
- I diversi tipi di supporti di memorizzazione e la loro classificazione in base alle caratteristiche;
- I diversi tipi di sistemi di calcolo, da quelli integrati e indossabili ai supercomputer;
- La distinzione tra Hardware e Software e la distinzione tra Hardware, Firmware, Sistema Operativo e Applicazioni, secondo una struttura a strati delle architetture informatiche; Macchine virtuali;
- I diversi tipi di applicazioni e servizi (accessibili anche in rete).
- I diversi tipi di licenze software;
- Le caratteristiche dei vari protocolli di comunicazione;
- I criteri di dimensionamento dei dispositivi (anche in base alla capacità di memorizzazione) e la loro potenza di trasmissione;
- I principali componenti necessari per consentire la connessione alla rete di un PC, di un dispositivo mobile o di un sensore IoT;
- I componenti caratteristici dei dispositivi mobili e dei sensori IoT;
- L'interfacciamento dei dispositivi IoT con le applicazioni mobili e da queste ai sistemi cloud;
- La differenza tra requisiti funzionali e non funzionali
- La modellazione di un modello concettuale
- La modellazione dei casi d'uso del sistema
- I requisiti di sicurezza, gli attacchi e la loro classificazione, i cookie e la tracciabilità;
- Principi generali di sicurezza e crittografia;
- Organizzazione, procedure, gestione degli incidenti;
- Algoritmi e protocolli crittografici e loro utilizzo per ottenere i requisiti di sicurezza;
- Protocolli di controllo degli accessi e di autenticazione;
- Protocolli HTTPS e TLS;
- Introduzione ai firewall e ad altri dispositivi di sicurezza di rete e importanza degli aspetti organizzativi in questo ambito.

Competenze
Gli studenti acquisiranno familiarità con le tecnologie digitali, anche per la comunicazione di rete, rispetto alle potenzialità che esse hanno per risolvere problemi specifici. Inoltre, acquisiranno consapevolezza dei rischi di sicurezza e familiarità con i meccanismi di protezione, hardware, software e organizzativi. In particolare saranno in grado di:
- identificare le fonti dei dati e i problemi della loro acquisizione, codifica e archiviazione; in generale, determinare la quantità di dati da elaborare, in relazione al contesto applicativo;
- determinare il tipo di elaborazione a cui i dati devono essere sottoposti per valutare la potenza di calcolo necessaria per ottenere tempi di elaborazione adeguati allo specifico contesto applicativo;
- individuare i protocolli e il tipo di dispositivo più adatti allo scenario in questione;
- comprendere quali sono i passi fondamentali della definizione dei requisiti di un sistema
- comprendere i requisiti fondamentali di sicurezza del proprio ambiente applicativo, avendo ben chiari i possibili rischi;
- mettere in relazione i vari strumenti crittografici con i requisiti di sicurezza ed efficienza che essi garantiscono. In particolare:
- caratteristiche e funzionamento della firma digitale;
- gli strumenti adatti per la segretezza e la privacy;
- meccanismi per l'identificazione sicura degli utenti e per il controllo degli accessi;
- interagire con esperti nello sviluppo di architetture software e nel dimensionamento dell'hardware per soddisfare i requisiti di efficienza, affidabilità e scalabilità posti dal problema specifico, anche in vista di un'evoluzione futura;
- interagire con esperti di sicurezza per determinare insieme gli strumenti migliori da utilizzare nel contesto specifico;
- aggiornare le proprie conoscenze sulle tecnologie disponibili, nell'ottica di una continua ricerca della soluzione più efficace alle sfide poste dal proprio ambiente applicativo.
Ultimo aggiornamento:09-09-2026 00:14:31