Dettaglio insegnamento

PROGRAMMAZIONE DI APPLICAZIONI INTELLIGENTI

MF0781

Insegnamento
PROGRAMMAZIONE DI APPLICAZIONI INTELLIGENTI
Codice
MF0781
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
000 - CORSO GENERICO
Responsabile didattico
CFU
6
Ore di lezione
48
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ - Opzionale
Anno
3
Periodo
Secondo Semestre
Sede
VERCELLI
Lingua insegnamento
Italiano
Contenuti
Il contenuto traccia l'evoluzione dell'intelligenza artificiale, con un forte focus sugli LLM e le loro applicazioni pratiche. Copre brevemente i tipi di apprendimento automatico e le reti neurali, per poi approfondire tecniche avanzate degli LLM, come tokenization, embeddings e transformers, prompt engineering, agenti. Si pone particolare enfasi sulle applicazioni pratiche degli LLM, in particolare in due ambiti:
- utilizzo come assistenti alla scrittura di applicazioni
- infusione di intelligenza in applicazioni.
Testi di riferimento
"Hands-On Large Language Models" by Jay Alammar, Maarten Grootendorst - O’Reilly Media, 2024
"Build a Large Language Model (From Scratch)" by Sebastian Raschka - Manning, 2024
Obiettivi formativi
Sviluppare competenze nella progettazione e implementazione di applicazioni basate su AI, con particolare focus sui LLMs e le loro architetture.

Acquisire la capacità di valutare criticamente le prestazioni e i limiti dei modelli AI, distinguendo tra diverse soluzioni di deployment.

Approfondire strumenti e tecniche avanzate per l’ottimizzazione e l’integrazione degli LLMs nelle applicazioni, come Prompt Engineering, Retrieval Augmented Generation, Workflow e Agenti.
Prerequisiti
Conoscenze base del linguaggio di programmazione Python.
Conoscenze base di algebra lineare.
Metodi didattici
Il corso è articolato in circa 36h di didattica erogativa e 12h di didattica interattiva da svolgere in laboratorio.
Altre informazioni
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati, rivolgendosi allo "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti" e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa. Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Modalità di verifica dell'apprendimento
L’esame del corso sugli LLM si articola in due parti:
- Progetto pratico (2/3 del voto finale), svolto singolarmente o in gruppo (massimo 3 persone).
- Prova scritta (1/3 del voto finale), da sostenere individualmente.

La consegna e discussione del progetto è condizione necessaria per poter accedere allo scritto.
Per superare l’esame, sia il progetto sia lo scritto devono ottenere almeno 18/30.

Conoscenza e comprensione
- La prova scritta verifica la comprensione teorica e metodologica dei Large Language Models, inclusi principi architetturali, tecniche di addestramento, strumenti e metodi di applicazione.
- Il docente accerta la conoscenza dei fondamenti alla base del progetto durante la fase di consegna/discussione.
- La relazione del progetto deve documentare in modo chiaro le scelte architetturali, gli strumenti impiegati, le tecniche utilizzate e i principi progettuali adottati.

Capacità di applicare conoscenza e comprensione
- Il progetto valuta la capacità di applicare tecniche di AI e LLM per risolvere casi concreti, garantendo funzionalità, correttezza dei risultati e assenza di bug nei casi d’uso comuni.
- Gli studenti possono proporre liberamente un progetto, previa approvazione del docente, incentivando creatività e autonomia progettuale.
- La consegna e discussione del progetto permette di verificare l’effettivo funzionamento del sistema sviluppato e la padronanza degli strumenti utilizzati.

Abilità comunicative
- La relazione del progetto richiede la capacità di presentare in modo chiaro obiettivi, scelte, risultati e limiti del lavoro svolto, con adeguato linguaggio tecnico.
- La fase di discussione durante la consegna del progetto accerta la capacità di illustrare il funzionamento del sistema, le scelte implementative e le motivazioni.
- Lo scritto include domande che richiedono comprensione e capacità di sintetizzare concetti, alcune eventualmente a risposta aperta breve.

Autonomia di giudizio
- Gli studenti devono dimostrare autonomia e consapevolezza nelle scelte progettuali, illustrandone e motivandone gli aspetti chiave nella relazione e nella discussione.
- La possibilità di definire un proprio progetto stimola pensiero critico e autonomia decisionale.
- Lo scritto verifica la capacità di riconoscere, confrontare e valutare tecniche e metodologie presentate nel corso.

Capacità di apprendimento
- La prova scritta accerta la capacità dello studente di apprendere, integrare e rielaborare autonomamente i contenuti del corso.
- Il progetto consolida e amplia le competenze tramite l’applicazione pratica a un problema reale e la gestione end-to-end di un sistema basato su LLM.
- La lode richiede il punteggio massimo sia nel progetto sia nella prova scritta, oltre a un livello eccellente nella qualità della relazione e del sistema sviluppato.
Programma esteso
Breve storia dell’intelligenza artificiale dall’origine ai giorni nostri

Introduzione al Machine Learning
- Apprendimento supervisionato
- Apprendimento non supervisionato
- Apprendimento per rinforzo

Introduzione alle Reti Neurali
- Reti feedforward
- Apprendimento (Backpropagation)
- Generalizzazione / Overfitting
- Teorema di Approssimazione Universale
- Introduzione a PyTorch: implementazione a apprendimento di una semplice rete neurale

Large Language Models
- Trasformazione di testo in vettori di numeri (Tokenization / Embeddings)
- Introduzione all'architettura Transformers
- Caratteristiche, capacità e limiti dei Large Language Models
- Ciclo di vita di un Large Language Model
- Prompt Engineering

Programmazione assistita da AI

Retrieval Augmented Generation (RAG)

Agenti
Risultati di apprendimento attesi
Conoscenza e comprensione: gli studenti acquisiranno una solida conoscenza delle metodologie e delle architetture alla base delle applicazioni basate su AI, con particolare attenzione ai LLMs e alle loro implicazioni pratiche.

Capacità di applicare conoscenza e comprensione: gli studenti saranno in grado di sviluppare e implementare soluzioni AI di media complessità, integrando modelli pre-addestrati in applicazioni reali. Saranno capaci di applicare tecniche di ottimizzazione, come il Prompt Engineering e la Retrieval Augmented Generation, per migliorare l’efficacia dei modelli.

Abilità comunicative: gli studenti svilupperanno la capacità di documentare e presentare il proprio lavoro in modo chiaro e strutturato, utilizzando un lessico tecnico appropriato.

Autonomia di giudizio: gli studenti acquisiranno la capacità di valutare in maniera critica l’efficacia di diversi modelli AI, individuandone i punti di forza e di debolezza. Saranno in grado di scegliere il modello più adatto a un determinato contesto applicativo, considerando aspetti tecnici, etici ed economici.

Capacità di apprendimento: gli studenti svilupperanno un approccio autonomo nell’aggiornamento delle proprie competenze, sapendo identificare le risorse più appropriate per approfondire tematiche emergenti nell’ambito dell’AI e dei LLMs.
Ultimo aggiornamento:09-09-2026 00:14:31