Computer Science Applied to Sound

A.Y. 2023/2024
12
Max ECTS
96
Overall hours
SSD
INF/01
Language
Italian
Learning objectives
The course is structured into two teaching units. The first unit (6 CFU) aims at providing student with basic notions of digital audio signal processing. The second unit (6 CFU) aims at introducing the main concepts of object oriented programming.
Expected learning outcomes
At the end of the first unit, the student shall be able to master the representations and the transformations of audio signal in the time domain and in the frequency domain, also by means of dedicated programming languages. At the end ot the second unit, the student shall be able to illustrate the main concepts and techniques of object-oriented programming (abstraction, encapsulation, inheritance, polymorphism) and, regardless of the application domain, design and implement a C++ program by applying these concepts and techniques in order to favor maintainability, reuse and extensibility of the code.
Single course

This course can be attended as a single course.

Course syllabus and organization

Single session

Responsible
Lesson period
First semester
Course syllabus
For the first module, the program is focused on the following topics
- Introduction to audio signal processing using MATLAB
- Audio content analysis (signals, sampling, quantization, convolution, Fourier transforms, correlation)
- Audio Features (statistical, spectral, postprocessing, dimensionality)
- Short term audio processing (Signal Transforms and Filtering Essentials)
- Audio classifiers (speech, emotion, urban sounds, etc.)

The second module deals with the main concepts and techniques of object-oriented programming (abstraction, encapsulation, inheritance, polymorphism) through the use of the C++ language. In particular, the program of the second module is focused on the following main topics:

*) Introduction to C++
- Variables and basic types
- string/vector
- Expressions and statements
- Functions
*) Object-oriented programming in C++
- Classes
- Copy, move, and destroy of objects
- Base classes, derived classes, and virtual functions
- Abstract base classes
- Access control to classes' members and inheritance
- Class scope and inheritance
- Construction, copy, and destroy of objects of derived classes
- Exception handling
Prerequisites for admission
Having passed the exam of Programming is a compulsory requirement for this course. Moreover, having passed the exam of Acoustics is strongly recommended.
Teaching methods
The entire course is taught by lectures.
Teaching Resources
For the first module
Web site:
- https://sntalampirasias1.ariel.ctu.unimi.it/
- https://myariel.unimi.it/course/view.php?id=699
Books:
- 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
Additional materials:
- Matlab reference help

For the second module:

Web site:
https://myariel.unimi.it/course/view.php?id=699

Book:
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

Additional complementary material prepared by the instructors is made available through the web sites of the course.
Assessment methods and Criteria
For the first module, the final exam consists of a written test and of the development of a project to be delivered to the teacher, with no oral discussion.
The evaluation is given in 30ths and is based on the following aspects: mastering of the course topics, ability to apply the acquired knowledge to solving actual problems, logical and critical thinking.

For the second module, the final exam consists of two tests.
The first test is written. It consists of closed/open-ended questions, and of assignments concerning the completion/development of code in C++ for the resolution of simple programming exercises. The test aims at evaluating the knowledge acquired by the candidate, with respect to both the concepts and techniques of object-oriented programming, and the C++ programming language.
The second test consists in the design and implementation of a C++ program, based on pre-established specifications, and in an oral interview in which the candidate will discuss the designed and implemented program. The test aims to evaluate the candidate's ability to apply the knowledge acquired in the design and development of a C++ program.
The second test can only be taken after passing the first.
The evaluation is given in 30ths, and it is based on the following aspects: mastering of the course topics, ability to apply the acquired knowledge, logical and critical thinking.

The final evaluation is given in 30ths and is computed as the average between the evaluations obtained in the two modules.
INF/01 - INFORMATICS - University credits: 12
Lessons: 96 hours
Professor(s)
Reception:
By appointment
Room 3021 - Via Celoria, 18