Salta al contenuto principale
CODICE 94787
ANNO ACCADEMICO 2025/2026
CFU
SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05
LINGUA Italiano
SEDE
  • GENOVA
PERIODO 2° Semestre
MODULI Questo insegnamento è un modulo di:

PRESENTAZIONE

L'insegnamento offre competenze per sviluppare software per sistemi embedded e pervasivi, unendo architettura, interazione hardware-software e tecnologie innovative come IA generativa e reti neurali. Include il paradigma del physical computing, in cui sistemi percepiscono e rispondono al mondo fisico, e affronta metodologie di ingegneria del software, con attenzione alla documentazione, agli standard e alla transizione da prototipo a prodotto finale.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

L'insegnamento si prefigge l'obiettivo di formare gli studenti nella progettazione, pianificazione e sviluppo di software applicativo per sistemi pervasivi e dedicati. Gli studenti apprenderanno le dinamiche di Internet, Internet delle cose e sistemi embedded, acquisendo competenze nella realizzazione di sistemi e nella gestione dei flussi di progettazione tramite diagrammi UML. L'insegnamento si sofferma anche sulla pianificazione e gestione di progetti, esplorando le architetture software di base e le tecnologie pertinenti quali sensori e modalità di comunicazione. Un focus particolare è dato allo sviluppo di interfacce uomo-macchina e all'utilizzo dell'Intelligenza Artificiale generativa come strumento per la co-progettazione. Le attività pratiche, fondamentali per consolidare le conoscenze teoriche, si svolgono in laboratorio informatico su piattaforma Arduino, disponibile sia in aula che tramite simulatore. Questo approccio hands-on permette agli studenti di sperimentare direttamente le applicazioni e le sfide del settore meccatronico, arricchendo il loro percorso formativo con esperienze concrete e applicate

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

L’insegnamento approfondisce le competenze necessarie alla progettazione, sviluppo e gestione di software per sistemi embedded e pervasivi, con un’attenzione specifica alla relazione tra architettura hardware e software. Gli studenti acquisiranno conoscenze sui principali modelli architetturali, sulle tecniche di programmazione per microcontrollori, sul paradigma del physical computing e sulla progettazione di interfacce utente fisiche. Saranno inoltre introdotti all’utilizzo di modelli di intelligenza artificiale generativa e subsimbolica, con applicazioni nel supporto al design, alla documentazione e alla prototipazione.
L’insegnamento prevede anche lo studio delle metodologie di ingegneria del software, della gestione del ciclo di vita del prodotto, delle strategie di testing e validazione, nonché della documentazione tecnica secondo standard industriali. L’obiettivo complessivo è formare figure capaci di intervenire in tutte le fasi di sviluppo di un sistema embedded, con capacità di analisi, progettazione e comunicazione interdisciplinare.

PREREQUISITI

Per affrontare con profitto l’insegnamento, lo studente dovrebbe possedere: 1) Conoscenze di base di programmazione, per esempio in linguaggio C o C++ o Python, comprensive di: uso di variabili, strutture di controllo, funzioni, concetti base di modularità e gestione della memoria; 2) Fondamenti di elettronica digitale, tra cui: conoscenza dei principali componenti hardware (sensori, attuatori, microcontrollori), concetti di logica combinatoria e sequenziale, principi di comunicazione digitale (es. I2C, seriale); 3) Familiarità con l’uso del PC come ambiente di sviluppo, inclusa: capacità di installare e usare IDE (es. Arduino IDE o simili), comprensione della struttura di un progetto software.

MODALITA' DIDATTICHE

L'insegnamento viene articolato secondo due categorie distinte di attività:

Lezione Teorica (Lecture - Lezione): attività didattica, per un totale di 40 ore, nella quale lo studente è prevalentemente “passivo”, cioè assiste ad una lezione teorica o pratico-applicativa in aula, oppure attraverso gli strumenti messi a disposizione dal portale dell’insegnamento.
Lezione Pratica (Hands-on experience - Sessione di studio): componente di “didattica assistita” , per un totale di 20 ore, nella quale lo studente è prevalentemente “attivo”, cioè esegue in prima persona, attività guidate in laboratorio. 
La frequenza alle lezioni, i materiali utilizzati e le esercitazioni  sono tutti elementi indispensabili per una corretta preparazione a questa disciplina. Si consiglia quindi di frequentare le lezioni e le esercitazioni, di leggere con attenzione e seguire scrupolosamente le indicazioni fornite nei materiali messi a disposizione on-line sul portale dell’insegnamento.

Lo schema di organizzazione dell’insegnamento risulta di 6 CFU per un totale di 150 ore di studio-lavoro.

PROGRAMMA/CONTENUTO

1. Progettazione di Architetture Software/Hardware (Analisi e modellazione di architetture per sistemi embedded e IoT - Diagrammi a blocchi, WBS e modellazione gerarchica - Attività: progettazione top-down, uso di ProjectLibre, modellazione a blocchi).
2. Progettazione di Applicazioni Embedded (Comportamenti tramite FSM, progettazione di UI fisiche, modellazione UML - Attività: FSM in Arduino, UI su LCD, use case e class diagrams).
3. Tecnologie ad Agenti e Sistemi Multi-Agente (Modelli reattivi e deliberativi, interazione agente-ambiente, logiche a eventi - Attività: simulazione su microcontrollori, robotica collaborativa distribuita).
4. Reti Neurali e IA Subsimbolica (Fondamenti di IA, reti neurali per segnali, deep learning embedded - 
Attività: training su PC, analisi edge deployment, confronto IA simbolica/subsimbolica).
5. IA Generativa e Co-design (Strumenti di AI generativa per progettazione e documentazione - Attività: prompting su chatbot, generazione assistita di Project Charter, brainstorming con LLM).
6. Ingegneria del Software e Ciclo di Vita (Modelli di sviluppo (waterfall, agile), gestione requisiti, versioning, testing - Attività: redazione di specifiche, tracciabilità, test e rilascio incrementale).
7. Documentazione e Standard Tecnici (Produzione di manuali, tracciamento, uso di standard (ISO, MISRA) - Attività: stesura documentazione tecnica, naming conventions, riferimenti normativi).
8. Sviluppo Applicazioni Embedded - Physical Computing (Codifica, testing e prototipazione su microcontrollori (Arduino/C++) - Attività: sketch modulari, librerie sensori, I2C, PWM, dispositivi interattivi).
9. Integrazione e Testing di Sistema (Validazione funzionale, robustezza, strumenti di monitoraggio e debug - Attività: test integrati, misure SNR, documentazione tecnica finale).
10. Ingegneria di Sistema e Risorse Fisiche (Progettazione di sistemi completi: alimentazione, comunicazione, consumo energetico - Attività: simulazioni robot, cablaggi, test di segnale).
11. Gestione dell’Evoluzione del Software (Controllo versioni, manutenzione, aggiornamento incrementale - Attività: release firmware, report tecnici, test di compatibilità).

TESTI/BIBLIOGRAFIA

Materiali usati durante le lezioni in aula  e durante le attività di laboratorio, resi disponibili con il procedere del corso sul portale AulaWeb nella sezione "Materiali utilizzati a lezione", unitamente a link a risorse e testi fruibili in rete.

LEZIONI

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

ESAMI

MODALITA' D'ESAME

Al fine di sostenere l’esame, lo studente deve effettuare l’iscrizione telematica attraverso il Portale Studenti all’indirizzo: https://servizionline.unige.it/studenti/.

L'esame consiste in un colloquio individuale sul programma del corso e sulla discussione del progetto assegnato e della relativa documentazione tecnica.

MODALITA' DI ACCERTAMENTO

L’esame si compone di una discussione del progetto finale, che include un colloquio individuale sugli argomenti del corso, e della valutazione della documentazione tecnica prodotta dallo studente.

Discussione del progetto e colloquio individuale (circa 70% del voto) - Questa parte permette di verificare l’effettiva acquisizione delle competenze progettuali, implementative e teoriche. Durante la discussione, che parte dall’analisi di un sistema embedded realizzato individualmente o in gruppo, vengono valutati: la capacità di integrare componenti hardware e software in una soluzione coerente; la comprensione dei modelli architetturali utilizzati (FSM, diagrammi a blocchi, diagrammi UML); l’uso competente di strumenti di sviluppo (es. Arduino, ProjectLibre, librerie sensoristiche); la capacità di argomentare le scelte progettuali dal punto di vista tecnico e metodologico; la comprensione approfondita degli argomenti del corso (physical computing, ingegneria del software, agenti, reti neurali, testing, sicurezza); la capacità di collegare teoria e pratica, integrando conoscenze concettuali e attività laboratoriali; l’uso corretto del lessico tecnico-specialistico e l’autonomia nell’esposizione orale.

Valutazione della documentazione tecnica (circa 30% del voto) - Comprende specifiche funzionali, diagrammi, manuali d’uso e tracciamento dei requisiti. La documentazione sarà valutata in base a: completezza, coerenza e chiarezza espositiva; 
corretto utilizzo del lessico tecnico e degli standard di settore; capacità di rappresentare in modo formale e professionale il ciclo di vita del progetto; uso dichiarato e motivato di strumenti di IA generativa, ove impiegati nel co-design, come supporto alla scrittura o alla progettazione.

Le modalità di preparazione all’esame e i criteri di valutazione dettagliati saranno presentati nel corso delle lezioni. Agli studenti sarà richiesto di documentare in modo trasparente l’eventuale uso di strumenti di IA generativa durante lo svolgimento del progetto o nella redazione della documentazione.

ALTRE INFORMAZIONI

Gli studenti con disabilità o con DSA possono fare richiesta di misure compensative/dispensative per l'esame. Le modalità saranno definite caso per caso insieme al Referente per Ingegneria del Comitato di Ateneo per il supporto agli studenti disabili e con DSA. Gli studenti che volessero farne richiesta sono invitati a contattare il docente dell'insegnamento mettendo in copia il Referente (https://unige.it/commissioni/comitatoperlinclusionedeglistudenticondisabilita.html).

Agenda 2030

Agenda 2030
Istruzione di qualità
Istruzione di qualità
Imprese, innovazione e infrastrutture
Imprese, innovazione e infrastrutture