Vinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.x

FISICA GENERALE I

SCHEDA DELL'INSEGNAMENTO (SI)
SSD FIS/01

LAUREA TRIENNALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

Docente: corso a canali multipli

Telefono: 

Email: 

 

INFORMAZIONI GENERALI - ATTIVITÀ

 

INSEGNAMENTO INTEGRATO (EVENTUALE): 
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): I
SEMESTRE (I, II): I
CFU: 6

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

...................................................................................................................................................

 

OBIETTIVI FORMATIVI

Lo studente acquisirà i concetti fondamentali della Meccanica Classica e i primi concetti della Termodinamica, privilegiando gli aspetti metodologici e fenomenologici. Inoltre, acquisirà una abilità operativa consapevole nella risoluzione di semplici esercizi.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione

Lo studente dovrà dimostrare di:

1)      Comprendere i principi fondamentali della fisica e le loro applicazioni in situazioni problematiche. In particolare:

  a.       enunciare i principi;

  b.       indicare le relazioni tra i principi;

  c.       confrontare spiegazioni dello stesso fenomeno o situazione mediante principi diversi.

2)      Conoscere le principali leggi che spiegano i fenomeni fisici. In particolare:

  a.       illustrare la legge in termini matematici;

  b.       valutare i limiti della legge;

  c.       estendere la legge a situazioni simili e a situazioni non note.

3)      Conoscere le grandezze fisiche operativamente indicando le corrette unità di misura. In particolare:

  a.       definire le grandezze fondamentali;

  b.       conoscere le operazioni tra le grandezze fondamentali;

  c.       descrivere le grandezze derivate in termini delle grandezze fondamentali.

4)      Conoscere il campo di indagine della fisica. In particolare:

  a.       comprendere il significato fisico degli enti matematici utilizzati per descrivere i fenomeni;

  b.       delineare il campo di applicabilità (macroscopico/microscopico) delle leggi utilizzate per descrivere i fenomeni;

  c.       descrivere i metodi di indagine utilizzati in fisica.

 

Capacità di applicare conoscenza e comprensione 

Lo studente dovrà dimostrare di essere in grado di:

1)      analizzare ed esaminare le situazioni fisiche proposte formulando ipotesi esplicative attraverso modelli matematici, analogie o leggi fisiche;

2)      formalizzare situazioni problematiche e applicare i concetti esposti al corso, i metodi matematici e gli strumenti disciplinari appresi durante il corso e rilevanti per la loro risoluzione, eseguendo, ove necessario, calcoli, stime, ragionamenti qualitativi;

3)      interpretare e/o elaborare dati proposti e/o ricavati, anche di natura sperimentale, verificandone la pertinenza al modello scelto e rappresentandoli, ove necessario, mediante linguaggio grafico-simbolico;

4)      argomentare e descrivere strategie risolutive adottate in situazioni fisiche problematiche, comunicando i risultati ottenuti valutandone al contempo la coerenza con la situazione problematica proposta.

 

Livelli per tutti i descrittori: L1 – ingenuo o inadeguato; L2 – superficiale o frammentario; L3 – parziale; L4 – completo o generalmente completo.

 

PROGRAMMA-SYLLABUS

Il Metodo Scientifico. Grandezze fisiche e loro definizione operativa, unità di misura, dimensioni. Cinematica del punto materiale in una dimensione. Grandezze vettoriali e cinematica del punto in più dimensioni. Moto parabolico dei corpi e moto circolare. Sistemi di riferimento inerziali, definizione di forza e di massa. Principi della dinamica. Forze fondamentali e leggi di forza. Forze di contatto, forze vincolari, leggi di forza empiriche (forza elastica, forze di attrito e viscose). Problemi notevoli: piano inclinato, oscillatore armonico, pendolo semplice. Impulso e quantità di moto. Lavoro ed energia cinetica. Forze conservative ed energia potenziale. Conservazione dell’energia meccanica e della quantità di moto. Urti in una dimensione. Momento angolare e momento delle forze. Moti relativi, sistemi di riferimento non inerziali e concetto di forza apparente. Cenni sul moto dei pianeti nel sistema solare. Dinamica dei sistemi di punti materiali: equazioni cardinali, centro di massa, leggi di conservazione, teorema di Koenig per l’energia cinetica. Elementi di dinamica del corpo rigido, rotazioni attorno ad asse fisso. Elementi di statica e dinamica dei fluidi. Temperatura e calore, primo principio della termodinamica. Gas ideali.

 

MATERIALE DIDATTICO

Libro di testo (es. Mazzoldi-Nigro-Voci, Halliday-Resnick, Serwey-Jevett), esercizi o questionari da svolgere a casa.

Si veda sito web del docente della materia

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Lezioni frontali ed esercitazioni in aula.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale
 Solo scritta o intercorso a metà  
 Solo orale  
 Discussione di elaborato progettuale   
 Altro (prova al calcolatore)  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla
 A risposta libera
 Esercizi numerici

 

 

SISTEMI OPERATIVI

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

 

LAUREA TRIENNALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

Docente: corso a canali multipli

Telefono:

Email:

 

INFORMAZIONI GENERALI - ATTIVITÀ

 

INSEGNAMENTO INTEGRATO (EVENTUALE): 
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): III
SEMESTRE (I, II): I
CFU: 9

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

PROGRAMMAZIONE, CALCOLATORI ELETTRONICI

 

EVENTUALI PREREQUISITI

...................................................................................................................................................

 

OBIETTIVI FORMATIVI

Il corso si pone l’obiettivo di fornire competenze sulle architetture di riferimento dei sistemi operativi; sulle metodologie utilizzate per la gestione delle risorse in un sistema operativo moderno; sugli strumenti per la programmazione di sistema; sull’utilizzo di una piattaforma Unix a livello utente e amministratore; sui principi base della programmazione concorrente. Le esercitazioni e le attività di laboratorio sono sviluppate in ambiente Linux e consistono in applicazioni di programmazione concorrente e la programmazione di moduli del kernel Linux

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione

Lo studente deve dimostrare: di conoscere le problematiche relative alla gestione delle risorse di calcolo in sistemi multi-utente e multi-programmati, di comprendere gli strumenti metodologici e gli algoritmi di base utilizzati per la realizzazione di sistemi di elaborazione ad alte prestazioni che utilizzino efficientemente le risorse di calcolo, di illustrare le tecniche fondamentali inerenti alla programmazione concorrente e di sistema.

 

 

Capacità di applicare conoscenza e comprensione 

Lo studente deve dimostrare di essere in grado di applicare gli strumenti metodologici appresi ai fini della progettazione dei sistemi di elaborazione, basati sull'utilizzo delle astrazioni fondamentali fornite dai sistemi operativi (es. processi, thread, filesystem, inter-process communication). Inoltre, lo studente deve dimostrare di essere in grado di applicare gli strumenti metodologici ai fini di sviluppare nuovi sistemi, utilizzando le conoscenze e le tecniche di programmazione concorrente e di sistema, e ai fini di diagnosticare i problemi dei sistemi di calcolo dovuti ad errata sincronizzazione e all'utilizzo inefficiente delle risorse di calcolo.

 

PROGRAMMA-SYLLABUS

Concetti Introduttivi. Evoluzione storica dei S.O. - Mono e multiprogrammazione - Batch, time sharing, real-time, mobile, cloud computing - Richiami di elementi di architettura a supporto di un S.O. (modalità di I/O, gestione delle interruzioni, modalità utente e supervisore, gerarchie di memoria) - Virtualizzazione delle risorse nei S.O. - Il kernel - Chiamata a supervisore - Architetture a livelli, monolitiche, modulari, microkernel.

 

Gestione e Scheduling dei Processi e Thread. Concetto di processo – Stati di un processo –  Descrittore di un processo – Code di processi – Il cambiamento di contesto – La gestione dei processi nei sistemi operativi Linux e Windows – Scheduling della CPU a breve, medio e lungo termine – Parametri di valutazione degli algoritmi di scheduling – Starvation – Preemption – Algoritmi First Come First Served,  Round Robin, Shortest Process Next, Shortest Remaining Time, a code multiple con retroazione – Confronto tra algoritmi di scheduling monoprocessore – Scheduling tradizionale UNIX  – Gli Scheduler O(1) e CFS del sistema operativo Linux – Scheduling nel sistema operativo Windows – Scheduling multiprocessore: Architetture SMP, multicore, e hyperthreading, scheduling con load sharing e dynamic load balancing, gang scheduling – Concetto di thread – Processi e thread – Stati di un thread – Thread a livello utente e a livello del nucleo – Modelli di programmazione multithreading – Primitive per la gestione dei threads – Cenni alla gestione dei thread nei sistemi Linux, Windows, Java.

 

Programmazione Concorrente.  Concorrenza e parallelismo – Speed-up nelle architetture concorrenti e parallele – La legge di Amdahl – Le primitive fork/join – Concetti di risorsa e di gestore di risorsa – Competizione, cooperazione, ed interferenza – Race condition e sincronizzazione - I modelli ad ambiente globale e locale – L’interazione tra processi nel modello ad ambiente globale – Il problema della mutua esclusione: requisiti, supporto hardware e soluzione. Il problema della comunicazione – I semafori – La comunicazione tramite memoria condivisa – La soluzione dei problemi di mutua esclusione mediante semafori – Problemi di cooperazione nel modello ad ambiente globale: problema del produttore/consumatore e soluzioni mediante semafori, problema lettori/scrittori e soluzioni mediante semafori – I monitor – Strategie di controllo signal and continue, signal and wait, e la soluzione di Hoare – La realizzazione di un monitor mediante semafori – La soluzione dei problemi di mutua esclusione, produttore/consumatore e lettori/scrittori mediante monitor – L’interazione tra processi nel modello ad ambiente locale – Le primitive per lo scambio di messaggio – Comunicazione diretta e indiretta, simmetrica ed asimmetrica – Comunicazione asincrona e sincrona – Send asincrona e sincrona – Receive bloccante e non bloccante – Realizzazione di send e receive sincrone mediante primitive asincrone – Processo servitore – Il problema del deadlock – Condizioni necessarie per il deadlock – Metodi per la gestione del deadlock – Prevenzione del deadlock – Deadlock Avoidance e algoritmo del banchiere – Rilevazione e recupero del deadlock – Comparazione delle strategie per la gestione del deadlock.

 

La Gestione della Memoria Centrale. Aspetti caratterizzanti la gestione della memoria: rilocazione, allocazione, organizzazione dello spazio virtuale, caricamento – Lo swapping – La gestione a partizioni multiple – Paginazione: schema di traduzione degli indirizzi, architettura di paginazione, TLB, Struttura della tabella delle pagine – Segmentazione: schema di traduzione degli indirizzi, architettura di segmentazione – Segmentazione con Paginazione – La memoria virtuale – La paginazione su richiesta – Algoritmi per la sostituzione delle pagine – Attività di paginazione degenere (thrashing) – Il modello del working set – Gestione della Memoria nel sistema operativo Linux: allocatori user-space e kernel-space, zone di memoria, buddy system, page cache, algoritmo di page frame reclaim – Cenni sulla gestione della memoria nel sistema operativo Windows.

 

La gestione dell’I/O. Le operazioni di I/O – La virtualizzazione delle risorse di I/O – Livello indipendente dai dispositivi, livello dipendente dai dispositivi – I driver – Struttura della memoria secondaria – I dischi – Scheduling degli accessi al disco con riferimento ai cilindri ed ai settori –  I/O caching e buffering – Algoritmi di I/O scheduling FIFO, SCAN, e varianti – Scheduling del disco nel SO Linux – Architetture RAID –  I dischi a stato solido.

 

La Gestione dei File. Organizzazione logica del file system: directory e file - Operazioni sulle directory e sui file –  Metodi di accesso – Descrittore di file – La condivisione dei file – Struttura delle directory per la condivisione di file – Link per la condivisione – La protezione dei file – Organizzazione logica del file system – Metodi di allocazione dei file: allocazione contigua, a lista concatenata e indicizzata – La gestione dei blocchi liberi – inode e gestione dei file in Unix – Il Virtual File System di Linux e i file system ext2, ext3 ed ext4 – Il File System NTFS di Windows – Journaling File Systems – Log-structured File System– Il File System F2FS di Linux per SSD.

 

Primitive per la gestione dei processi e thread nel SO UNIX/Linux. Primitive per la creazione e terminazione dei processi: fork, exec, exit, wait – Gestione delle risorse IPC – Primitive per la gestione della memoria condivisa – Primitive per la gestione dei semafori – uso della semop per la realizzazione di primitive wait e signal – Esempi d’uso: soluzione di problemi di mutua esclusione e comunicazione (produttore/consumatore e lettori/scrittori), realizzazione object-based e object-oriented di un tipo Monitor – Primitive per la gestione delle code di messaggi ed esempi d’uso – Le primitive POSIX Threads per la gestione dei threads, ed esempi d’uso.

 

Approfondimenti sul sistema operativo UNIX/Linux. Installazione del SO Linux – La shell e i comandi di base (navigazione nel filesystem, assegnazione permessi, installazione del software, compilazione dei programmi) – La compilazione dei programmi: makefile, librerie statiche e dinamiche – I canali di I/O dei processi – Pipe – Variabili d'ambiente – Shell scripting – Segnali UNIX – Configurazione e compilazione del kernel Linux – Sviluppo di system call e di moduli del kernel.

 

Approfondimenti su virtualizzazione e sul SO mobile Android. Utilizzi della virtualizzazione. Architetture di virtualizzazione. Virtualizzazione della CPU (virtualizzabilità della CPU, tecnica del trap-and-emulate, full virtualization mediante DBT, paravirtualizzazione, supporto hardware Intel VT). Virtualizzazione della memoria (shadow page tables, extended page tables). Virtualizzazione dell’I/O (full virtualization, PV I/O, I/O passthrough, IO-MMU, SR-VIO). Esempio di tecnologie VMware. Storia e obiettivi di progettazione di Android. Applicazioni in Android. La gestione dei processi e della memoria (ciclo di vita delle Activity, Intent, OOM). Application Security Model. Inter-Process Communication in Android.

 

 MATERIALE DIDATTICO

-          Libri di testo adottati

  ·         Ancillotti, Boari, Ciampolini, Lipari. Sistemi Operativi, McGraw Hill.

  ·         Stallings. Operating Systems: Internals and Design Principles, 6th ed., Pearson Education

 

-          Libri di testo consigliati

  ·         Silberschatz, Galvin, Gagne. Sistemi operativi - sesta edizione, Addison Wesley

  ·         Tanenbaum, I Moderni Sistemi Operativi – terza edizione, Pearson Education

 

-          Dispense didattiche e trasparenze delle lezioni disponibili sul sito web docente.

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

L'insegnamento verrà erogato attraverso lezioni frontali (circa due terzi delle ore totali del corso), con esercitazioni in aula e in laboratorio (circa un terzo delle ore totali del corso). Le lezioni frontali introdurranno gli aspetti teorici inerenti alle astrazioni realizzate dai sistemi operativi, agli algoritmi per la gestione efficiente delle risorse di calcolo (CPU, memoria, I/O), e alle problematiche, gli algoritmi e i meccanismi più comuni per lo sviluppo di sistemi concorrenti (es. semafori, mutex, monitor, memoria condivisa, code di messaggi). Nelle esercitazioni in aula e in laboratorio, gli studenti approfondiranno praticamente gli aspetti teorici, sviluppando autonomamente dei programmi concorrenti con il sistema operativo Linux e il linguaggio di programmazione C.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale
 Solo scritta  
 Solo orale  
 Discussione di elaborato progettuale   
 Altro (prova al calcolatore)  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera  
 Esercizi di programmazione

 

b) Modalità di valutazione:

La valutazione terrà conto in modo uniforme sia dello svolgimento della prova scritta (esercizi di programmazione concorrente), sia dello svolgimento della prova orale.

 

RETI DI CALCOLATORI I

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

 

LAUREA TRIENNALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

Docente: corso a canali multipli

Telefono: 

Email: 

 

INFORMAZIONI GENERALI - ATTIVITÀ

 

INSEGNAMENTO INTEGRATO (EVENTUALE): 
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): III
SEMESTRE (I, II): I
CFU: 9

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

...................................................................................................................................................

 

OBIETTIVI FORMATIVI

Scopo del corso è fornire le prime nozioni teoriche e le necessarie competenze operative sulle reti di calcolatori ed in generale sulle reti di comunicazione a commutazione di pacchetto. Il corso si sviluppa seguendo un approccio top-down, favorendo quindi una visione in primo luogo applicativa delle moderne tecnologie telematiche, per arrivare poi alla presentazione delle tecnologie software e hardware alla base della realizzazione degli impianti telematici. Gli obiettivi formativi principali sono: la conoscenza delle esigenze di comunicazione nelle moderne applicazioni informatiche e telematiche; le caratteristiche delle tecnologie di comunicazione a commutazione di pacchetto; i modelli di base per la progettazione di una rete di calcolatori; le caratteristiche base dell’architettura TCP/IP e di Internet; le principali tecnologie ad oggi in uso nelle reti locali sia cablate che wireless; i problemi base legati alla gestione in sicurezza delle reti e dei sistemi telematici; le competenze base per la programmazione distribuita basata sul modello client/server; una adeguata operatività nella configurazione base di semplici sistemi di rete basati sulla architettura TCP/IP; la capacità di utilizzare semplici strumenti per il monitoraggio, la gestione e la configurazione di reti di calcolatori.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione

 

Lo studente deve dimostrare di conoscere i concetti fondamentali che ispirano il progetto dei vari livelli di un sistema di rete. In particolare, lo studente deve dimostrare comprensione e capacità di descrizione dei protocolli di comunicazione descritti nel corso e capacità di comprendere vantaggi, limiti e tradeoff delle tecnologie e dei protocolli studiati.

 

Capacità di applicare conoscenza e comprensione 

 

Lo studente deve dimostrare di saper applicare le tecniche e le conoscenze apprese per la soluzione di semplici problemi di configurazione di rete, analisi di protocolli e di tracce di traffico di rete. Lo studente, inoltre, deve dimostrare di aver acquisito la capacità di utilizzare semplici strumenti software per la analisi delle reti e per la simulazione di sistemi di rete.

 

PROGRAMMA-SYLLABUS

Parte I – Concetti generali.

Reti di calcolatori e servizi di rete. Architetture a strati delle reti di calcolatori. Il modello ISO/OSI. Le reti a commutazione di pacchetto. Protocolli di comunicazione. Qualità del Servizio nelle reti a commutazione di pacchetto. Reti a datagrammi e reti a circuiti virtuali. Lo stack protocollare TCP/IP e l’IETF.

Parte II - Lo strato applicazione.

Caratteristiche dei protocolli applicativi. Il paradigma client/server. Protocolli HTTP, FTP, SMTP. Il sistema DNS. Il paradigma peer-to-peer. Sviluppo di software distribuito e la socket API e suo utilizzo nei linguaggi C e Python.

Parte III - Lo strato trasporto.

Tecniche per il la trasmissione affidabile end-to-end. Go-back-N e Selective Repeat. Tecniche end-to-end per controllo di errore, di flusso e di congestione. I protocolli TCP, UDP ed RTP. Controllo di congestione in TCP. Fairness. Checksum.

Parte IV - Lo strato rete.

Il protocollo IP. Gestione dell’Indirizzamento in reti IP. Subnetting. NAT. Il protocollo IPv6. Routing unicast e multicast in ambiente intra-domain. Routing distance-vector e link-state. I protocolli RIP ed OSPF. Routing gerarchico in Internet. Autonomous System. Cenni al routing inter-domain. Internet Exchange Points. Relazioni tra Autonomous Systems.

Parte V - Reti LAN.

Tecniche di accesso a mezzo condiviso in ambito LAN. Aloha. CSMA/CD. La tecnologia Ethernet e sua evoluzione.

Interconnessione di LAN: bridging e switching. VLAN. Sistemi di cablaggio strutturato. Collegamento di LAN in rete geografica: tecnologie di accesso. Gestione di Reti Locali: indirizzamento, servizi NAT e DHCP, servizi VLAN. Reti wireless LAN e PAN: tecnologie 802.11 e Bluetooth.

Parte VI -Tecniche per la comunicazione sicura in rete.

Tecniche crittografiche. Funzioni hash crittografiche. Firma digitale.

Parte VII – Attività esercitative

Configurazione di una rete TCP/IP. Uso di un simulatore/emulatore di rete. Il monitoring della rete. Strumenti software per l’analisi delle reti. Analisi di tracce di traffico di rete.

 

 MATERIALE DIDATTICO

Indicare i libri di testo consigliati o altro materiale didattico utile.

·  J. Kurose, K. Ross - Reti di calcolatori e Internet. Un approccio top-down. (7a ed.) - Pearson 2017

Lucidi delle lezioni

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Il corso consiste di:

a) lezioni frontali per circa l’80% delle ore totali;

b) esercitazioni pratiche per il rimanente 20%.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale
 Solo scritta  
 Solo orale  
 Discussione di elaborato progettuale   
 Altro (prova al calcolatore)  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera  
 Esercizi di programmazione  

  

SISTEMI MULTIMEDIALI

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

 

LAUREA TRIENNALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

Docente: Antonio m. rinaldi

Telefono: 0817683911

Email: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

 

INSEGNAMENTO INTEGRATO (EVENTUALE): 
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): III
SEMESTRE (I, II): II
CFU: 6

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

Basi di dati

 

EVENTUALI PREREQUISITI

...................................................................................................................................................

 

OBIETTIVI FORMATIVI

Il corso fornisce agli studenti le conoscenze e gli strumenti metodologici di base necessari per comprendere e progettare sistemi multimediali. Il corso presenterà modelli, tecniche e tecnologie per la gestione dei dati multimediali insieme agli aspetti architetturali dei sistemi multimediali. Verranno presentate e discusse diverse metodologie e standard per la rappresentazione multimediale. Verranno utilizzati strumenti software per l'implementazione dell'estrazione di descrittori multimediali e il loro utilizzo in diverse applicazioni.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione

Il corso fornisce agli studenti le conoscenze e gli strumenti metodologici necessari per analizzare le problematiche legate alla multimedialità per consentirne la gestione. Questi strumenti consentiranno agli studenti di riconoscere le principali relazioni che intercorrono tra la rappresentazione dei dati multimediali, l'analisi e la gestione degli stessi e di comprenderne gli effetti in termini di efficacia ed efficienza nell'ambito dell'intero processo di gestione multimediale.Capacità di applicare conoscenza e comprensione 

Il corso fornisce competenze e strumenti metodologici e operativi necessari per applicare concretamente le conoscenze relative all'analisi dei dati multimediali per l’individuazione di tecniche efficaci per rappresentarli e l'uso di tecnologie efficienti per implementare sistemi multimediali.

 

PROGRAMMA-SYLLABUS

INTRODUZIONE ALLA MULTIMEDIA - Media e multimedia, tipi di media, multimedia computing, componenti di applicazioni multimediali, semiotica, gap semantico. NOZIONI DI BASE SUL MULTIMEDIA - Metadati, formati di documenti, linguaggi di marcatura, proprietà del testo, organizzazione di documenti, formati di immagini, formati audio, formati video, preelaborazione di documenti multimediali. RAPPRESENTAZIONE DI IMMAGINI - Bit Plan, dithering, immagini a 1 bit, 8 bit a 24 bit, Tipi di dati grafici/immagine, tabelle di ricerca colore, formati di file popolari. COLORE IN IMMAGINI E VIDEO - Scienza del colore, modelli di colore in immagini, modelli di colore in video. CONCETTI FONDAMENTALI NEL VIDEO - Video Analogico, Video Digitale, Interfacce Video Display, Video 3D e TV. FONDAMENTI DELL'AUDIO DIGITALE - Digitalizzazione del suono, rapporto segnale-rumore (SNR), rapporto segnale-quantizzazione-rumore (SQNR), quantizzazione lineare e non lineare, filtraggio audio, quantizzazione e trasmissione dell'audio, Pulse Code Modulation, Codifica audio differenziale, codifica predittiva senza perdita, DPCM, DM, ADPCM. COMPRESSIONE DEI DATI – Compressione senza perdita, basi della teoria dell'informazione, Run-Length Coding, Variable-Length Coding, codifica basata su dizionario, codifica aritmetica (cenni), compressione con perdita, misure di distorsione, rate-distortion theory, quantizzazione, transform coding, codifica basata su Wavelet, Wavelet packets, Embedded Zerotree dei coefficienti Wavelet, Set Partitioning in Hierarchical Trees (cenni). STANDARD DI COMPRESSIONE DELLE IMMAGINI - Lo standard JPEG, Passaggi principali nella compressione dell'immagine JPEG, modalità JPEG, Bitstream JPEG, lo standard JPEG2000, passaggi principali della compressione dell'immagine JPEG2000, adattamento di EBCOT a JPEG2000, ROI, confronto delle prestazioni di JPEG e JPEG2000. INTRODUZIONE ALLA COMPRESSIONE VIDEO - Compressione video basata sulla compensazione del movimento, ricerca di vettori di movimento (cenni), H.261, H.263 (cenni), MPEG-1, 2, 4, 7 e 21. COMPRESSIONE AUDIO MPEG - Psicoacustica, Mascheratura di frequenze, Mascheratura temporale, Audio MPEG, Livelli MPEG, Strategia audio MPEG, Algoritmo di compressione audio MPEG. DESCRITTORI MULTIMEDIALI - Istogrammi di colore, Layout di colore, Caratteristiche delle Texture, Analisi multirisoluzione (cenni), Caratteristiche della forma, Rappresentazione della forma, SIFT, SURF, Caratteristiche dell’audio, Video (cenni). ARCHITETTURA DEI SISTEMI MULTIMEDIALI - Gestione dei contenuti multimediali, Sistemi di Retrieval delle informazioni multimediali (MIRS), Valutazione dei sistemi, Database multimediali, Indici per dati multimediali.

 

 MATERIALE DIDATTICO

Libri di testo: Ze-Nian Li , Mark S. Drew, e al., Fundamentals of Multimedia, 2ed, Springer, 2014.

Vittorio Castelli and Lawrence D. Bergman, editors. Image Databases. Search and Retrieval of Digital Imagery. Wiley, 2002

Slides del Corso.

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Lezioni frontali, esercitazioni, seminari, software specialistici per l’estrazione di descrittori multimediali ed applicazioni (OPENCV: Open Source Computer Vision Library)

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta  
 Solo orale
 Discussione di elaborato progettuale 
 Altro (prova al calcolatore)  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera  
 Esercizi di programmazione  

  

PROGRAMMAZIONE

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

 

LAUREA TRIENNALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

Docente: VITTORINI VALERIA

Telefono: 081 7683847

Email: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

 

INSEGNAMENTO INTEGRATO (EVENTUALE): 
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): II
SEMESTRE (I, II): II
CFU: 9

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

Fondamenti di Informatica

 

EVENTUALI PREREQUISITI

Nessuno oltre le competenze fornite dal corso di Fondamenti di Informatica

 

OBIETTIVI FORMATIVI

L'insegnamento si propone di fornire agli studenti le competenze metodologiche, teoriche e pratiche di programmazione procedurale e di programmazione orientata agli oggetti necessarie al corretto sviluppo di progetti software di piccole e medie dimensioni.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione

 

Lo studente deve dimostrare di conoscere e saper elaborare i concetti alla base della programmazione modulare e della programmazione orientata agli oggetti.  Il percorso formativo intende fornire le conoscenze e gli strumenti che consentiranno agli studenti di sviluppare capacità autonome di progettazione e sviluppo di semplici applicazioni secondo i paradigmi di programmazione procedurale e orientata agli oggetti.

 

Capacità di applicare conoscenza e comprensione 

 

Lo studente deve dimostrare di saper applicare le competenze acquisite progettando e implementando semplici applicazioni software, utilizzando il linguaggio di programmazione di riferimento (C++) e il linguaggio UML. In particolare deve saper riconoscere e realizzare le relazioni tra classi ed oggetti nel dominio e nel contesto proposto e sapere implementare le strutture dati di base (lista, pila, coda).

 

PROGRAMMA-SYLLABUS

·         Aspetti avanzati di programmazione procedurale: Ricorsione; Allocazione dinamica della memoria; Gestione delle eccezioni; Sovraccarico delle funzioni; Funzioni inline.

·         Programmazione modulare: astrazione sui dati e sul controllo, il concetto di modulo, relazioni tra moduli, accoppiamento, information hiding, tecniche e strumenti per la modularizzazione, compilazione separata, l’utility make.

·         Strutture dati, Tipi di dato astratto: Liste, Pile, Code, Algoritmi di ricerca e ordinamento; ADT: Tipi di dato astratto.

·         Programmazione orientata agli oggetti: Il paradigma OO; Classi e Oggetti; Ereditarietà; Polimorfismo.

·         La programmazione orientata agli oggetti e la programmazione generica in C++: Classi, oggetti, costruttori e distruttori; Operatori e sovraccarico degli operatori; Conversioni di Tipo; Ereditarietà ed ereditarietà multipla; La gerarchia per le operazioni di ’I/O e uso delle librerie standard; Polimorfismo, classi Astratte; altri meccanismi di incapsulamento (namespace).

·         Programmazione generica: Template, funzioni e classi modello, presentazione della Standard Template Library

·         Progettazione e linguaggio UML: Progettazione del software (cenni); Fasi della Progettazione Orientata agli Oggetti; Il linguaggio UML nella progettazione O.O.; da UML a C++.

 

 MATERIALE DIDATTICO

Libro di testo, materiale esercitativo, trasparenze dalle lezioni.

PER ULTERIORI INFORMAZIONI si veda sito web del docente della materia (www.docenti.unina.it)

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Lezioni frontali (50%), esercitazioni (25%) e attività di laboratorio (25%).

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale
 Solo scritta  
 Solo orale  
 Discussione di elaborato progettuale   
 Altro (prova al calcolatore)  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera  
 Esercizi di programmazione

 

b)Modalità di valutazione:

L'esito della prova scritta è vincolante ai fini dell'accesso alla prova orale. Il voto finale è la media tra il voto della prova scritta e quello della prova orale.

 

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.