Informatica applicata al suono

A.A. 2023/2024
12
Crediti massimi
96
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
L'insegnamento è articolato in due parti. La prima parte (6 CFU) si propone di fornire agli studenti le nozioni di base sull'elaborazione digitale del suono. La seconda parte (6 CFU) si propone di introdurre gli studenti alla programmazione orientata agli oggetti.
Risultati apprendimento attesi
Al termine della prima parte lo studente sarà in grado di padroneggiare le rappresentazioni e le trasformazioni di segnali audio nei dominii del tempo e della frequenza anche attraverso linguaggi di programmazione dedicati. Al termine della seconda parte lo studente sarà in grado di illustrare i concetti e le tecniche fondamentali della programmazione orientata agli oggetti (astrazione, incapsulamento, ereditarietà, polimorfismo) e, indipendentemente dal dominio applicativo, progettare ed implementare un programma in C++ applicando tali concetti e tecniche al fine di favorire manutenibilità, riuso ed estendibilità del codice.
Corso singolo

Questo insegnamento può essere seguito come corso singolo.

Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Primo semestre

Programma
Per il primo modulo il programma verte sui seguenti argomenti
- Introduzione all'elaborazione del segnale audio in MATLAB
- Analisi di contenuti audio (segnali, campionamento, quantizzazione, convoluzione, trasformate di Fourier, correlazione)
- Feature audio (statistiche, spettrali, post-processing, dimensionalità)
- Elaborazione audio a tempo breve (trasformate del segnale e elementi di filtraggio)
- Classificatori audio (parlato, emozioni, suoni urbani, ecc.)
Il secondo modulo prevede la trattazione dei concetti e delle tecniche fondamentali della programmazione orientata agli oggetti (astrazione, incapsulamento, ereditarietà, polimorfismo) attraverso l'utilizzo del linguaggio C++. In particolare, i principali argomenti trattati sono i seguenti.
*) Introduzione a C++
- Tipi base e variabili
- string/vector
- Espressioni ed istruzioni
- Funzioni
*) Programmazione orientata agli oggetti in C++
- Classi
- Copia, spostamento, e distruzione di oggetti di una classe
- Classi base, classi derivate e funzioni virtual
- Classi base astratte
- Controllo degli accessi ai membri di una classe ed ereditarietà
- scope di classe ed ereditarietà
- Costruzione, copia, e distruzione di oggetti di una classe derivata
- Gestione delle eccezioni
Prerequisiti
Il superamento dell'esame di Programmazione è propedeutico a questo insegnamento. E` inoltre fortemente consigliato il superamento dell'esame di Acustica.
Metodi didattici
L'intero insegnamento viene svolto mediante lezioni frontali.
Materiale di riferimento
Per il primo modulo
Sito web:
- https://sntalampirasias1.ariel.ctu.unimi.it/
- https://myariel.unimi.it/course/view.php?id=699
Libri di riferimento:
- An Introduction to Audio Content Analysis: Applications in Signal Processing and Music Informatics, https://www.audiocontentanalysis.org/ https://dl.acm.org/doi/10.5555/2392638
- Audio and Speech Processing with MATLAB, https://www.routledge.com/Audio-and-Speech-Processing-with-MATLAB/Hill/p/book/9780367656317
- Introduction to Audio Analysis: A MATLAB Approach, https://www.elsevier.com/books/introduction-to-audio-analysis/giannakopoulos/978-0-08-099388-1
Altri materiali:
- Matlab reference help

Per il secondo modulo:

Sito web:
https://myariel.unimi.it/course/view.php?id=699

Libri di riferimento:
C++ Primer
di Stanley B. Lippman, Josee Lajoie, Barbara E. Moo
ASIN: 0321714113
Editore: Addison-Wesley Professional; 5° edizione
Lingua: Inglese
ISBN-10: 9780321714114
ISBN-13: 978-0321714114

Ulteriore materiale integrativo preparato dai docenti viene reso disponibile sui siti web dell'insegnamento.
Modalità di verifica dell’apprendimento e criteri di valutazione
Per il primo modulo l'esame consiste in una prova scritta e nello sviluppo di un progetto da consegnare al docente, senza prova orale.
La valutazione è espressa in trentesimi e tiene conto dei seguenti parametri: grado di conoscenza degli argomenti, capacità di applicare le conoscenze alla risoluzione di problemi concreti, capacità di ragionamento logico e critico.

Per il secondo modulo l'esame consiste di due prove.
La prima prova è una prova scritta. La prova consiste di domande a risposta chiusa/aperta e di consegne relative al completamento/sviluppo di codice in C++ per la risoluzione di semplici esercizi di programmazione. La prova ha l'obiettivo di valutare ad ampio spettro le conoscenze acquisite dal/dalla candidato/a, sia rispetto ai concetti e alle tecniche della programmazione orientata agli oggetti, sia rispetto al linguaggio di programmazione C++.
La seconda prova consiste nella progettazione e implementazione di un programma in C++, in base a delle specifiche prestabilite, ed in un colloquio orale in cui il/la candidato/a discuterà del programma progettato ed implementato. La prova ha l'obiettivo di valutare la capacità del/della candidato/a di applicare le conoscenze acquisite nella progettazione e sviluppo di un programma in C++.
La seconda prova può essere sostenuta solo dopo il superamento della prima.
La valutazione è espressa in trentesimi e tiene conto dei seguenti parametri: grado di conoscenza degli argomenti, capacità di applicare le conoscenze acquisite, capacità di ragionamento logico e critico.

La valutazione finale è espressa in trentesimi ed è calcolata come media aritmetica tra le valutazioni ottenute nei due moduli.
INF/01 - INFORMATICA - CFU: 12
Lezioni: 96 ore
Docente/i
Ricevimento:
Su appuntamento
Stanza 3021 - Via Celoria, 18
Ricevimento:
appuntamento
via Celoria 18