Obiettivi formativi e Competenze in uscita
|
L'obiettivo del corso è fornire allo studente le competenze architetturali e operative necessarie per governare l'ecosistema digitale di un'impresa moderna. Integrando teoria e programmazione pratica in Python e Shell, il corso abilita lo studente alla gestione di sistemi operativi, di servizi Internet/Web e di strumenti di sicurezza informatica.
Le principali abilità acquisite saranno:
-
Gestione Sistemistica: Comprendere e governare l'architettura interna di un sistema operativo per ottimizzare l'allocazione delle risorse hardware.
-
Automazione di Processo: Padroneggiare la linea di comando Linux e lo scripting Shell per automatizzare task operativi e flussi di dati.
-
Progettazione di Sistemi Distribuiti: Sviluppare applicazioni basate sul modello Client/Server e integrare servizi Internet complessi, anche per soluzioni Internet of Things (IoT) e in ambienti Cloud.
-
Integrazione Industriale: Progettare soluzioni Industrial Internet of Things (IIoT) e gestire asset produttivi tramite Digital Twin.
-
Governance della Sicurezza: Identificare vulnerabilità sistemiche e applicare strumenti di cybersecurity per la protezione del patrimonio informativo aziendale.
|
Prerequisiti
|
Il corso richiede la conoscenza del linguaggio Python.
|
The course requires knowledge of the Python programming language.
|
Contenuti
|
- Fondamenti Architetturali: Cenni sull’architettura degli elaboratori e l’evoluzione dei sistemi operativi moderni. - Automazione in Ambiente Unix/Linux: Padronanza della Shell, comandi di sistema e sviluppo di script di automazione. - Gestione delle Risorse: Processi e strategie di scheduling. Sincronizzazione, comunicazione inter-processo (IPC) e gestione della memoria virtuale. - Data Management & File Systems: Organizzazione, controllo degli accessi e gestione fisica/logica dei dati in ambiente Unix. - Strategie Open Source: Analisi di benefici, rischi e modelli di licenza per l'impresa. - Sistemi Distribuiti e Networking: architetture di rete, modelli Client/Server ed evoluzioni, Cloud Computing, sistemi di nomi (DNS), tolleranza ai guasti, scalabilità, analisi dei principali servizi Internet (e-mail, Web, …). - Network Programming: Sviluppo di applicazioni Client/Server tramite Socket in Python. - Cybersecurity & Identity Management: Crittografia simmetrica/asimmetrica, soluzioni per la gestione sicura delle identità, principali minacce e strumenti di difesa. - Smart Factory & Industria 4.0: Introduzione all’Industrial Internet of Things (IIoT) e implementazione di Digital Twin per la gestione remota di sistemi industriali.
|
Metodi e Approcci Didattici
|
L’insegnamento è erogato in presenza, per favorire la massima interazione con il docente, con il supporto delle registrazioni delle lezioni per il ripasso asincrono. Le attività didattiche includono:
- lezioni frontali
- esercitazioni guidate
- esempi svolti e commentati
|
Compiti di docenti e tutor
|
Il tutor didattico agisce come facilitatore tecnico, supportando studentesse e studenti:
-
Durante le sessioni di laboratorio, fornendo assistenza immediata nel debugging e nella logica di programmazione.
-
Attraverso didattica integrativa mirata, organizzando sessioni di ripasso collettivo o ricevimenti individuali (sincroni/asincroni) per chiarire i punti più complessi del programma.
|
Testi e Materiali Didattici
|
- Materiale didattico originale fornito dal docente (slide, dispense, esempi di codice)
- Eventuali risorse online selezionate e rese disponibili sulla piattaforma del corso
- Libri di testo di approfondimento opzionali:
1) I moderni Sistemi Operativi 3/ed - Andrew S. Tanenbaum - Pearson Prentice Hall
2) J. Kurose, K. Ross, "Reti di Calcolatori - Un approccio top-down a Internet", Pearson Education Italia, 8a edizione, 2022.
3) Computer security: principles and practice - William Stallings, Lawrie Brown - Global edition
|
Modalità di valutazione
|
L'esame, volto a verificare la capacità di "problem solving" tecnico e teorico, si svolge in laboratorio ed è articolato in 3 moduli indipendenti:
-
Modulo Automazione: Sviluppo di uno script Shell per la gestione di task di sistema.
-
Modulo Network and System Programming: Sviluppo di un’applicazione distribuita Client/Server con server multiprocesso (Python Socket) per applicazioni Industrial Internet-of-Things (IIoT).
-
Modulo Teoria: Test di verifica sulle basi concettuali, architetturali e di sicurezza.
Il superamento di ciascun modulo richiede un punteggio minimo di 18/30. Il voto finale è calcolato come media delle tre prove.
Le tre prove possono anche essere sostenute separatamente in appelli diversi.
|