Studiare

In questa sezione è possibile reperire le informazioni riguardanti l'organizzazione pratica del corso, lo svolgimento delle attività didattiche, le opportunità formative e i contatti utili durante tutto il percorso di studi, fino al conseguimento del titolo finale.

Piano Didattico

Queste informazioni sono destinate esclusivamente agli studenti e alle studentesse già iscritti a questo corso.
Se sei un nuovo studente interessato all'immatricolazione, trovi le informazioni sul percorso di studi alla pagina del corso:

Laurea magistrale in Computer Engineering for intelligent Systems - Immatricolazione dal 2025/2026

Il piano didattico è l'elenco degli insegnamenti e delle altre attività formative che devono essere sostenute nel corso della propria carriera universitaria.
Selezionare il piano didattico in base all'anno accademico di iscrizione.

CURRICULUM TIPO:

2° Anno   Sarà attivato nell'A.A. 2025/2026

InsegnamentiCreditiTAFSSD
Sarà attivato nell'A.A. 2025/2026
InsegnamentiCreditiTAFSSD
Insegnamenti Crediti TAF SSD
Tra gli anni: 1°- 2°
4 modules among the following:
- 1st year: Advanced visual computing and 3d modeling, Computer vision, Embedded & IoT systems design, Embedded operating systems, Robotics 
- 2nd year: Advanced control systems
6
B
ING-INF/05
6
B
ING-INF/04
Tra gli anni: 1°- 2°
Tra gli anni: 1°- 2°
Further activities
6
F
-

Legenda | Tipo Attività Formativa (TAF)

TAF (Tipologia Attività Formativa) Tutti gli insegnamenti e le attività sono classificate in diversi tipi di attività formativa, indicati da una lettera.




S Stage e tirocini presso imprese, enti pubblici o privati, ordini professionali

Codice insegnamento

4S012351

Coordinatore

Nicola Bombieri

Crediti

6

Offerto anche nei corsi:

Lingua di erogazione

Inglese en

Settore Scientifico Disciplinare (SSD)

ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Periodo

I semestre dal 1 ott 2024 al 31 gen 2025.

Corsi Singoli

Autorizzato

Obiettivi di apprendimento

Il corso si propone di fornire conoscenze teoriche e pratiche sulle architetture di calcolo per sistemi intelligenti e sui corrispondenti linguaggi di programmazione, con particolare attenzione alle piattaforme eterogenee per il continuum Edge-Cloud. Al termine del corso lo studente dovrà dimostrare di saper applicare le conoscenze necessarie per individuare tecniche di programmazione software avanzata per sistemi intelligenti, anche in un contesto di ricerca, attraverso l'analisi dell'efficienza applicativa e considerando vincoli di progettazione sia funzionali che extra-funzionali (es. correttezza, prestazioni, consumo energetico, efficienza energetica). Questa conoscenza consentirà allo studente di analizzare le prestazioni ed eseguire il code profiling, individuando le zone critiche e le relative ottimizzazioni e considerando le caratteristiche architetturali della piattaforma di calcolo. Al termine del corso, gli studenti dimostreranno la capacità di confrontare modelli per lo sviluppo software avanzato e di selezionare quello migliore considerando il caso d'uso. Definendo la struttura del codice ottimizzato, lo studente dimostrerà la capacità di identificare le scelte architetturali appropriate, considerando i contesti dell'applicazione e della piattaforma di destinazione. Infine, lo studente dovrà dimostrare la capacità di proseguire autonomamente lo studio nel campo delle architetture informatiche e dei linguaggi di programmazione per sistemi intelligenti.

Prerequisiti e nozioni di base

Programmazione di base
Architetture degli elaboratori di base

Programma

Modulo TEORIA (24 ore):
-) Introduzione alle architetture avanzate di calcolo.
-) Modelli di programmazione parallela e per architetture programmabili at-the-edge.
-) Misura e analisi delle prestazioni, legge di Amdhal e metriche per la misura delle prestazioni.
-) Consumi di potenza ed efficienza energetica: modelli di programmazione
-) Data-level parallelism: architetture GPU e CPU-iGPU
-) Pipeline: concetti base ed avanzati.
-) Instruction-level parallelism (ILP).
-) Tecniche avanzate di branch prediction, static scheduling e speculation.
-) Gerarchie di memoria: concetti base ed avanzati.
-) Tecniche avanzate per l'ottimizzazione delle performance della cache.
-) Thread-level parallelism (TLP).
-) Coerenza della cache in architetture shared-memory, protocolli Snoopy.
-) Edge computing e Deep Learning at the edge
Modulo LABORATORIO (24 ore):
-) Programmazione architetture eterogenee (CPU-iGPU)
-) Utilizzo di compilatori paralleli per architetture multi-core.
-) Inferenza basata su CNN e transfer learning at the edge

Bibliografia

Visualizza la bibliografia con Leganto, strumento che il Sistema Bibliotecario mette a disposizione per recuperare i testi in programma d'esame in modo semplice e innovativo.

Modalità didattiche

Lezioni frontali per teoria
Lezioni frontali e sviluppo codice per lab

Modalità di verifica dell'apprendimento

Esercizi a risposta libera per la parte di teoria, sviluppo codice per la parte di lab. Tempo totale 2 ore.

Le/gli studentesse/studenti con disabilità o disturbi specifici di apprendimento (DSA), che intendano richiedere l'adattamento della prova d'esame, devono seguire le indicazioni riportate QUI

Criteri di valutazione

Per superare l'esame lo studente dovrà dimostrare di:
- aver compreso i principi alla base della programmazione di sistemi intelligenti;
- essere in grado di esporre le proprie argomentazioni in modo preciso e organico senza divagazioni;
- saper applicare le conoscenze acquisite per risolvere problemi applicativi presentati sotto forma di esercizi, domande e progetti.

Criteri di composizione del voto finale

L'esame consiste in una prova scritta, contenente domande a risposta multipla, domande a risposta aperta ed esercizi riguardanti sia la parte teorica che di laboratorio. Lo studente potrà elaborare un progetto assegnato dal docente per un bonus (fino a +5 punti).

Lingua dell'esame

English