Insegnamento SOFTWARE ENGINEERING AND AI-ENABLED SYSTEMS
- Corso
- Ingegneria informatica e robotica
- Codice insegnamento
- A005842
- Curriculum
- Data science e data engineering
- Docente
- Fabrizio Montecchiani
- Docenti
-
- Fabrizio Montecchiani
- Ore
- 72 ore - Fabrizio Montecchiani
- CFU
- 9
- Regolamento
- Coorte 2025
- Erogato
- 2025/26
- Attività
- Caratterizzante
- Ambito
- Ingegneria informatica
- Settore
- ING-INF/05
- Tipo insegnamento
- Obbligatorio (Required)
- Tipo attività
- Attività formativa monodisciplinare
- Lingua insegnamento
- Italiano.
- Contenuti
- - Le qualità del software come prodotto industriale e i principi dell'ingegneria del software. - Metodologie e tecniche ingegneristiche tradizionali per l'analisi, la progettazione e lo sviluppo del software. - Metodologie e tecniche per sistemi software basati su intelligenza artificiale.
- Testi di riferimento
- Gli argomenti trattati a lezione sono illustrati in dispense a cura del docente. In aggiunta, verranno consigliati alcuni testi di riferimento per approfondimenti sui vari argomenti del corso.
- Obiettivi formativi
- L'insegnamento di prefigge di impartire agli studenti le nozioni teoriche e pratiche su metodologie, modelli e tecniche per l'analisi, la progettazione e lo sviluppo di software complessi, inclusi software che contengono componenti di intelligenza artificiale.
- Prerequisiti
- Sono consigliate conoscenze di base relativamente alla programmazione ad oggetti tramite il linguaggio Java e alle basi di dati relazionali. Sono inoltre consigliate conoscenze di base legare ai principi e alle tecniche di machine learning.
- Metodi didattici
- Il corso si articola in due principali tipologie di lezioni.
Lezioni frontali: lezioni frontali svolte in aula. Ogni lezione consiste nell'illustrazione da parte del docente di nuovi concetti teorici, attraverso la proiezione di appositi lucidi.
Esercitazioni guidate in laboratorio: si svolgono nel laboratorio di ingegneria del software, e prevedono la progettazione e l'implementazione di programmi sotto la guida del docente. - Altre informazioni
- Nessuna.
- Modalità di verifica dell'apprendimento
- I metodi di valutazione di questo insegnamento cercano di quantificare le conoscenze teoriche acquisite dallo studente, nonché la sue capacità di applicare tali conoscenze per la risoluzione di problemi applicativi. I tipi di prove previste per la valutazione sono descritti qui di seguito.
- Prova scritta di natura teorica
Durata: 60 minuti
Punteggio: 10/30
Obiettivo: accertare le conoscenze sui concetti teorici impartiti nell'insegnamento.
- Prova al calcolatore
Durata: 120 minuti
Punteggio: 20/30
Obiettivo: accertare le abilità pratiche acquisite in relazione alle tematiche del corso - Programma esteso
- PARTE I - Introduzione all'ingegneria del software - Qualità e principi del software - Modelli di produzione del software - Ingegneria dei requisiti - Progettazione architetturale - Programmazione a oggetti e design patterns - Test del software PARTE II - Introduzione a sistemi software basati su AI - Ingegneria dei requisiti per sistemi basati su AI - Progettazione, deployment e automazione di componenti software basati su AI - Responsible Engineering
- Obiettivi Agenda 2030 per lo sviluppo sostenibile
- Industria, innovazione e infrastrutture; Ridurre le disuguaglianze