Corso di laurea

music and acoustic engineering

Politecnico di Milano · 96 materie · 7 file condivisi

L'obiettivo principale del Corso di LM in Music and Acoustic Engineering è quello di formare esperti e tecnici progettisti con una profonda preparazione e una forte attitudine alla soluzione di problemi inerenti l'audio (segnali musicali, vocali o sonori in generale), l'acustica (campi acustici e strutture vibranti), e la musica (rappresentazioni e modelli di strutture e contenuti musicali). È dunque necessario che gli studenti in Music and Acoustic Engineering approfondiscano i seguenti temi, qui raccolti per macroaree, sia dal punto di vista concettuale e metodologico, sia dal punto di vista implementativo e applicativo:
- audio: acquisizione/ripresa, elaborazione, analisi, sintesi, resa/restituzione/diffusione, classificazione, archiviazione/organizzazione, rappresentazione e pubblicazione;
- musica: analisi, classificazione, annotazione, trascrizione, organizzazione, modellazione/rappresentazione, visualizzazione, assistenza alla composizione/orchestrazione/arrangiamento/produzione;
- acustica: analisi, controllo, caratterizzazione, miglioramento/ottimizzazione e progettazione di strumenti musicali, di ambienti d'ascolto e di sistemi vibranti in generale.

La Laurea Magistrale in "Music and Acoustic Engineering" ha come scopo la formazione di esperti e progettisti capaci di coniugare in modo sinergico una conoscenza multi-disciplinare che spazia dall'informatica alle telecomunicazioni (in particolare signal processing e reti), dall'acustica computazionale all'analisi numerica, dall'elettroacustica all'acustica vibratoria e ambientale.

I laureati in Music and Acoustic Engineering sono specialisti in grado di proporre soluzioni originali e innovative inerenti la gestione e il trattamento dell'informazione audio, acustica e musicale e di interagire con gruppi multidisciplinari che comprendano artisti nel settore della musica e delle arti performative in generale, ma anche architetti e designer. Gli insegnamenti sono offerti in lingua inglese per rendere il corso internazionale e quindi fruibile anche da studenti stranieri.

La laurea magistrale in Music and Acoustic Engineering nasce da un percorso didattico avviato presso il Politecnico di Milano nell'A.A. 2005-06 nell'ambito della laurea magistrale in Ingegneria Informatica, inizialmente denominato "Sound and Music Engineering" e poi "Musical Acoustics". Questo percorso didattico, ha già laureato oltre 300 esperti di elevato profilo professionale, che hanno trovato facilmente e immediatamente impiego in diversi settori legati all'audio e all'acustica, sia in Italia che all'estero. La laurea magistrale in Music and Acoustic Engineering rappresenta un'espansione e una generalizzazione dell'esperienza pregressa, in quanto ne estende il raggio d'azione con nuovi crediti formativi dedicati all'acustica, all'audio e alla musica.

Ecco tutti i dettagli sul corso di laurea selezionato. Sul UniDocs troverai gli appunti condivisi dagli altri studenti del tuo corso di laurea, ordinati per materia. Ricordati che per poter visualizzare il materiale devi essere registrato al sito e possedere un numero di crediti sufficiente.

Al momento abbiamo 7 files caricati sul nostro portale suddivisi nelle 96 materie appartenenti al tuo corso di laurea.

Sfoglia il materiale didattico

Con UniDocs hai l'opportunità di studiare insieme a tutto il tuo corso di laurea. Guadagna subito dei crediti, carica il materiale del tuo ultimo esame!
Più condividi, più tempo avrai per studiare con tutta la community!

Materie del corso

ADVANCED CODING TOOLS AND METHODOLOGIES 1° anno · 1° semestre · 10 CFU · IINF-05/A · 0 file

Aim of the course, consisting of two modules, is the acquisition of the fundamental conceptual tools of software crafting, coding and testing, with a multifold perspective: 1) to design, develop and test applications and…

Scheda dell'insegnamento

Obiettivi formativi

Aim of the course, consisting of two modules, is the acquisition of the fundamental conceptual tools of software crafting, coding and testing, with a multifold perspective:
1) to design, develop and test applications and user interfaces aimed at music analysis and composition
2) to automate some aspect of the performance and production of musical artifacts, through control of software by scripting languages
3) to experiment with languages that allow to stage live audio/visual performances

At the end of the two modules, the student will be able to design and implement a basic musical application, such as a sequencer or a drum machine, using the correct conceptual and technical software design tools. Moreover, he will be able to code scripts that interact with music software such as digital audio workstation to perform automation tasks and to implement new abstractions. He will also be able to experiment with coding languages to create live audio/visual performances.

Programma

MODULE 1:

  • Basing introduction to programming in Python
  • Using Python for conceptual thinking, exploring solutions, scripting
  • Interfacing and playing with DAW APIs
  • Overview on other languages for live coding
    MODULE 2:
  • Introduction to HTML5 and Javascript
  • Frameworks for the design of applications and user interfaces
  • Using and exploring the possibilities web audio API
  • Node.js and Python to implement the server side of a web application

Modalità d'esame

Progetto/i - Elaborato/i obbligatorio, di gruppo, con revisioni periodiche, con presentazione/discussione finale
Valutazione continua condizionata (a scelta del docente)
The evaluation of each module will be based on the discussion of a project that the students will have to implement and make working. The two projects presented could be the components of a bigger and more ambitious work.

Codice insegnamento P372509753

COMPUTER MUSIC - LANGUAGES AND SYSTEMS 1° anno · 2° semestre · 5 CFU · IINF-05/A · 0 file

Computer Music is a modern discipline that covers a wide range of topics in the area of Music and Acoustic Engineering, from data infrastructures for music, to music representation and languages to music production…

Scheda dell'insegnamento

Obiettivi formativi

Computer Music is a modern discipline that covers a wide range of topics in the area of Music and Acoustic Engineering, from data infrastructures for music, to music representation and languages to music production technologies and human machine interaction design.
"Computer Music Languages and Systems" is the second course on Computer Music and it is focused on the technological aspects related to a computer music system, tackled with a practical approach. The course begins with an analysis on what a computer music system is. It considers SuperCollider as an example of a programming language specifically devoted to control a computer music system. The second part of the course is dedicated to the languages for realizing plugins in digital audio workstations (interface and signal processing aspects). The last part of the course is devoted to the analysis of human machine interaction for computer music systems, related to both communication protocols (languages) and hardware (systems).

Dublin descriptors
Knowledge and understanding
Students will learn how to:

  • design, interpret and edit projects for audio plugins;
  • interpret and write skecthes for creative programming systems;
  • design, interpret and edit projects for music interaction, including the realization of simple devices using open source electronic platforms;
    Applying knowledge and understanding
    Students will be able to create a computer music system consisting in interacting components: synthesizers, effects and computer-human interface. Students will be able to analyze an existing computer music system and modifying its parts.
    Making judgements
    Students will be able to translate the specifications of a relatively complex computer music system into a design, choose the most suitable platforms and languages for realizing the computer music system
    Communication
    Students will learn to:
  • Write a technical report describing a computer music system;
  • Present a computer music system.

Programma

Part 0: introduction to the course and analysis of the needs and requirements of a Computer Music system.
Part 1: SuperCollider
The SuperCollider ecosystem
SuperCollider as a Computer Music Programming Language
Practical sessions
Part 2: Plugins
Computer Music Languages: development of plugins for Digital Audio Workstations (Juce)
Practical sessions
Part 3: interaction design
Machine to machine interaction: MIDI, Open Sound Control, MusicXML
Human to Machine interaction: Arduino and Bela as case studies
Practical sessions

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The exam consists in:

  • a project (implementation of a computer music system), to be delivered by the end of the course and presented to the other students (14 points);
  • a written exam consisting in exercises and theoretical questions (18 points).
    Grades exceeding 31 will be 30 cum laude.

Testi di riferimento

Will Pirkle, Designing Audio Effect Plugins in C++, Editore: Routledge, Anno edizione: 2019, ISBN: 1138591939
Will Pirkle, Designing Software Synthesizer Plug-Ins in C++: For RackAFX, VST3, and Audio Units, Editore: Routledge, Anno edizione: 2015, ISBN: 1138787078
Scott Wilson, David Cottle, Nick Collins, The SuperCollider Book, Editore: The MIT Press, Anno edizione: 2011, ISBN: 0262232693
M. Müller, Fundamentals of Music Processing, Editore: Springer, Anno edizione: 2015, ISBN: 9783319219455

Codice insegnamento P716874878

COMPUTER MUSIC - REPRESENTATIONS AND MODELS 1° anno · 1° semestre · 5 CFU · IINF-05/A · 4 file

Computer Music is a modern discipline that covers a wide range of topics in the area of Music and Acoustic Engineering, including computing platforms for music processing, music representation and languages, music…

Scheda dell'insegnamento

Obiettivi formativi

Computer Music is a modern discipline that covers a wide range of topics in the area of Music and Acoustic Engineering, including computing platforms for music processing, music representation and languages, music information retrieval, and music production technologies. "Computer Music, Representations and Models" is the first of two courses that cover such topics, with specific reference to music perception, cognition, representation and modeling. This course begins with an introduction to sound and music perception, as well as an overview of music cognition. Then it delves deeper into the various components of music: rhythm, harmony, melodic line and patterns, structure, prosody and expression, with the specific purpose of helping the student to build the necessary awareness for developing music-oriented applications. For each one of such components, it discusses the differences across cultures; the related rules that are customarily followed for music composition and performance; and most of all, how such rules can be turned into mathematical models and generative algorithms. It then discusses the tools that can be developed starting from such models, for applications of music composition, performance and production.
In addition to traditional lectures, the course includes presentations, clinics and workshops from music experts.

Students will be able to understand and model the basic concepts that characterize the various conceptual layers of music (rhythmic, harmonic, tonal/melodic, structural and prosodic/expressive) in a quantitative fashion. This knowledge will allow them to develop a deeper awareness of musical content, and develop better applications and algorithms in the area of music composition, performance and production.

Programma

Part 1: Sound and Music perception
Perception of Sound and Acoustics: acoustic phenomena and related physical descriptors; the human auditory system and the perception of sound. Subjective descriptors of individual sounds: loudness and pitch. Perception of simultaneous tones: musical beats, masking phenomena, etc. Perception of space: room acoustic response and its descriptors; role of early reflection in perception of space; perceptual phenomena in spatial sound: spatial masking, cross-modal phenomena; etc.
Perception of Music: psychological functions of music; anticipation; categorization; music, emotion and the reptilian brain; developing expertise in music; music appretiation and the sense of pleasure; the music instinct.
Part 2: Elements of Music Cognition
Music and evolution; musical scales and tonality; finding the m usical key; melodic organization; musical expectancy; t ime, rhythm, and meter; musical performance; musical aesthetics and emotion; n eurological aspects of music perception and performance; neural correlates of music perception; event perception; musical systems.
Part 3: Music Representations and Models
Representations and models: rhythm
Instrumental influences: drumming, percussions, tonal vs. non-tonal percussive instruments.
Representations: beat; periodicity and multiple periodicities; alternation; composite rhythms; tempo, signature and metric structure; poly-rhythms; cross-rhythms; polymetric structures; notation. Rhythmic complexity and complexification principles.
Models: tempo estimator; beat tracker; beat follower; looper (single- and multi-track); influence of rhythmic structure on software and interfaces: structure of timeline; recursion; interfaces; etc.
Representations and models: harmony
Instrumental influences: “ionian” keyboard; translation-invariant (exatonal) keyboard; the Stradella bass system in aerophones; fingerboards in stringed instruments; etc.
Representations: combining simultaneous notes (dyads, triads, quadriads and double triads); colors and tensions; modal scales and chords. Building harmonic progressions (elements of functional harmony): the cycle of fifths; cadence, turnarounds; resolutions and harmonic expectation; principles of harmonic substitution and the complexity tree. Creating harmonic surprise: the deceptive cadence; progressions that do not rely on cadence (e.g. modal jazz). Harmonic complexity and complexification principles.
Models: tonal features and harmonic descriptors; interval estimation; chord estimation; modal scale estimation; harmonizer; harmonic follower. Harmonic progressions in popular music: a machine learning perspective.
Representations and models: patterns, melodic line and counterpoint
Instrumental influences: lead instruments and their role; building patterns with keyboards; building patterns on fretboards; elementary principles of improvisation; tonal and timbral control; interaction techniques and musical conversation;
Representations: from cantus firmus to melody: general rules; ground rules of counterpoint (from first to fifth species); basics of harmonization. Melodic/tonal complexity and complexification principles.
Models: intra-scale tonal distance; pattern generation and intra-scale periodicity; pattern generation (interfaces and pattern-generation software); pattern-to-harmony conversion; virtual improvisation; melodic continuation; etc.
Representations and models: structure and organization
Cultural influences: structures in classical music (symphony, concerto, sonata, etc.); in western music (pop song, ballad, …); structural organization of music in some non-western cultures.
Representations, models, and organization: structural representations in music; structural features; feature-based structural segmentation; structural organization of music in digital audio production software, hierarchical organization of music. Structural complexity and complexification principles.
Representations and models: prosody and expression
Instrumental influences: timbral expression in lead instruments; acoustic expression in lead instruments; instrumental ranges and timbral optimization.
Representations and models: prosodic modulation and trajectories; emotional modulation and trajectories; emotional and prosodic expectancy. Controlling the exchange between evocative/emotional potential and kinetic energy (loading and discharging). Expression control and automation in music production software. Expressive controllers and interfaces. Exploiting the acoustics.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, senza presentazione/discussione finale
The student is required to do two homework assignments (which will count for a total of 40% of the final grade) and a final exam (which will count for 60% of the final grade). Students also have the opportunity (non compulsory) of improving their grade by developing a project. Developing a project is a necessary condition to aspire to a "cum laude".
The project must be preliminarily negotiated with a course instructor and can be either a software application or a research paper. Projects for the two modules can be combined and can be done in collaboration with other students. Projects can also be combined with projects of other courses, upon explicit approval of all involved instructors.

Codice insegnamento P809965401

Dispense Perception Of Sounds — 2021 pillola free This document provides a comprehensive overview of sound perception, acoustic phenomena, and psychoacoustics for Music and Acoustic Engineering students. It covers fundamental concepts like sound and acoustic waves, their parameters (frequency, amplitude, wavelength, period), and propagation effects such as absorption, reflection, diffraction, and interference. Key topics include sound intensity (dB, phon, sones), the structure and function of the auditory system (ear, cochlea), and how the brain processes sound to perceive pitch and timbre. Detailed explanations of first and second-order beats, missing fundamental, consonance, and critical bands are provided. The document also delves into psychoacoustic phenomena like frequency and temporal masking, auditory scene analysis, and grouping principles (proximity, common fate, good continuation, continuity effect), essential for understanding how we localize and differentiate sounds in complex environments, particularly relevant for audio engineering and music production. Dispense Perception of Music — 2020 pillola free Il testo esplora la difficoltà di definire la musica, identificandola come un'arte sonora organizzata nel tempo caratterizzata da elementi fondamentali come altezza, ritmo, timbro e dinamica. Vengono analizzati concetti complessi come metro, chiave, armonia e melodia, spiegando come il cervello percepisca relazioni tonali e attese musicali attraverso schemi cognitivi appresi. Infine, si affronta la distinzione tra mente e cervello, suggerendo che le esperienze musicali emergono da pattern di attivazione neurale piuttosto che da entità separate. Dispense Rhythmic Structures — 2020 pillola free Il testo esplora le strutture ritmiche nella musica, definendo il battito come unità fondamentale di tempo e analizzando la gerarchia metrica tra pulsazione, misura e valore temporale. Vengono presentati concetti chiave come la sincopazione, i diversi tipi di ritmo (divisivo e additivo) e l'evoluzione storica della notazione musicale fino a quella moderna. Infine, si approfondiscono le poliritmie complesse, come l'emiole e le cross-rhythm, che sfidano la regolarità metrica prevalente attraverso sovrapposizioni ritmiche sistemiche. Dispense Tonal Organization — 2020 pillola free Il testo esplora le diverse rappresentazioni della tonalità in musica, confrontando sistemi di tastiera come quello Stradella e il pianoforte uniforme per illustrare come le progressioni armoniche formino una struttura irregolare. Viene analizzato lo scale ionico e i suoi modi derivati tramite traslazioni cromatiche, evidenziando come la scelta delle note determini se un accordo sia maggiore o minore. Infine, si esaminano vari tipi di scale (cromatica, pentatonica, ecc.) e il loro ruolo nel generare accordi attraverso processi di campionamento riduttivo, permettendo a diverse scale di condividere gli stessi progressioni armoniche.
DATA-DRIVEN PROCESSING FOR MUSIC, AUDIO AND ACOUSTIC ENGINEERING 1° anno · 2° semestre · 5 CFU · IINF-05/A · 0 file

The course aims to provide students with the theoretical and practical foundations of data-driven processing for music, audio, and acoustic engineering. It introduces the fundamental concepts of machine learning in the…

Scheda dell'insegnamento

Obiettivi formativi

The course aims to provide students with the theoretical and practical foundations of data-driven processing for music, audio, and acoustic engineering. It introduces the fundamental concepts of machine learning in the context of audio and acoustic signals and presents classical statistical and modern learning-based methods within a unified framework.
The course covers the complete design pipeline of a data-driven system, from signal representation and dataset preparation to model formulation, training, validation, and evaluation. Particular emphasis is placed on source separation, enhancement, audio generation, and multichannel and spatial audio processing. Practical activities complement the theoretical foundations through the implementation and critical evaluation of selected systems.

The student:

  • knows and understands the fundamental principles of machine learning, statistical signal processing, and recent learning-based methods for the processing of audio signals (DdD 1 and 2);
  • is able to formulate, address and implement a data-driven acoustic processing problem by selecting appropriate signal representations, models, learning objectives, training procedures, evaluation metrics, and testing the resulting system(DdD 2 and 3);
    -works in small groups and is able to critically evaluate and communicate the results of a data-driven audio processing system, comparing alternative approaches, identifying limitations and generalisation issues motivating the adopted methodological and implementation choices (DdD 2, 3, and 4).

Programma

The course introduces the main data-driven approaches in audio, music, and acoustic engineering, including regression, classification, detection, source enhancement, dereverberation, and audio generation. We will cover:
-Fundamentals of machine learning for audio signals: supervised and unsupervised learning; regression, classification, detection; training, validation, test, loss functions, gradient-based optimisation, regularisation, generalisation, data augmentation, and evaluation metrics.
-Audio representations and decomposition methods:Time-domain and time-frequency representations (STFT, CQT, MFC), handcrafted vs learned features; Principal Component Analysis, Singular Value Decomposition, Independent Component Analysis, dimensionality reduction and low-rank representations (NMF).

  • Statistical and neural models: linear and kernel regression, multilayer perceptrons, convolutional neural networks, encoder–decoder architectures; sequential and attention-based models.
  • Applications of data-driven audio processing: single and multichannel audio analysis, speech enhancement, neural beamforming and spatial audio processing.
  • Advanced models for data-driven audio processing: generative audio models and physics-informed neural networks
  • Laboratory and project activity: Implementation, training, validation, comparison, and critical evaluation of selected systems on music, audio, speech, and acoustic datasets.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The final grade is based on a written examination, accounting for 75% of the grade, and a compulsory project, accounting for the remaining 25%.
The written examination aims to assess the acquisition of theoretical and methodological knowledge concerning all course topics and the ability to apply such knowledge to the analysis of data-driven audio and acoustic processing problems (DdD 1 and 2).
The project aims to assess the acquisition of practical experience in designing, implementing, and evaluating a data-driven system for a specific problem in music, audio, or acoustic engineering. The project and its final presentation assess the student’s ability to select and apply suitable methods motivating the choices, interpret experimental results and communicate the outcomes (DdD 2, 3, and 4).

Testi di riferimento

M. Müller, Fundamentals of Music Processing, Editore: Springer
Sergios Theodoridis and Konstantinos Koutroumbas, Pattern Recognition, Editore: Elsevier, Anno edizione: 2009
Tuomas Virtanen, Mark D. Plumbley, Dan Ellis, Computational Analysis of Sound Scenes and Events, Editore: Springer Cham, Anno edizione: 2018
Emmanuel Vincent, Tuomas Virtanen, Sharon Gannot, Audio Source Separation and Speech Enhancement, Editore: Wiley, Anno edizione: 2018

Codice insegnamento 064350

ELECTROACOUSTIC COMPOSITION 1° anno · 1° semestre · 5 CFU · IINF-05/A · 0 file

The main objective of the course is to guide students towards an awareness of creative and compositional practices in the various fields of electroacoustic music. This process should take place by putting into practice…

Scheda dell'insegnamento

Obiettivi formativi

The main objective of the course is to guide students towards an awareness of creative and compositional practices in the various fields of electroacoustic music. This process should take place by putting into practice the knowledge acquired during the course in one or more personal musical projects. Musical projects can be carried out both individually and in small instrumental groups (laptop or mixed ensembles).

Dublin descriptors
Knowledge and understanding
Students will learn how to:

  • recognize and understand meanings in music;
  • recognize and interpret the different genres of electroacoustic music;
  • recognize the different expressive potential of the main sound synthesis and processing techniques
    Applying knowledge and understanding
    Students will be able to:
  • design and create compositional projects in the field of electroacoustic music;
  • interpret and write programs for electroacoustic composition systems;
  • design and set up projects for live music performance.
    Making judgements
    Students will be able to relate their expressive needs to the musical forms and languages ​​most suited to their communication.
    Communication
    Students will learn to:
  • design and create an electroacoustic musical composition;
  • prepare the materials necessary for its performance and understanding by performers and the audience.

Programma

Part 1: Introduction to musical and sound languages, electroacoustic musical genres, instruments and tools;
Part 2: Expressive potential of the main sound synthesis and processing techniques and their practical application in the SuperCollider audio engine;
Part 3: Two or more of the following topics, each with practical sessions:

  • Compose for fixed media.
  • Computer music.
  • Live set and laptop ensemble.
  • Mixed music and hyper-instruments.

Modalità d'esame

Progetto/i - Elaborato/i obbligatorio, individuale, con revisioni periodiche, senza presentazione/discussione finale
The exam consist of the creation of a composition for fixed media or a live performance.
The musical genre is at the student's discretion (refer to those presented during the course - Chapter 2 of the pdf file).
Software used during the creation processes are at the candidate's discretion.
The student must send via a WeTransfer link or similar all the materials he/she deems necessary for the evaluation of the project by a date set from time to time.
1. A short paper presentation of:

  • the musical, aesthetic, or extra-musical idea you wish to represent with the composition.
  • technical details necessary for correct performance.
    2. - In the case of a piece on fixed-media, a stereo sound file in.wav format containing the composition.
  • In the case of a live performance, a block diagram of the signal flow and parameter control methods and a video recording of a performance.
    Anyone who wishes may present their work in person (please notify at least one week before the exam).
    The project evaluation criteria will be:
  • clarity and quality of the work's presentation materials (point 1).
  • characteristics of the work (consistency with the genre and the musical and sonic characteristics chosen for its creation):
  • the work'smusical, aesthetic, or extra-musical underlying idea.
  • quality of the audio materials used (not necessarily the best possible);
  • diffusion system (mono, stereo, ambisonic, immersive, 2D, etc.);
  • consistency between the work's underlying idea and the language chosen to convey it;
  • musical form (articulated, static, narrative, etc., always related to the work characteristics)

Testi di riferimento

Scott Wilson, David Cottle, Nick Collins, The SuperCollider Book, Editore: The MIT Press, Anno edizione: 2011, ISBN: 0262232693
Bruno Ruviaro, A gentle introduction to SuperCollider https://ccrma.stanford.edu/~ruviaro/texts/A_Gentle_Introduction_To_SuperCollider.pdf
Eli Fieldsteel- SuperCollider tutorials - video https://www.youtube.com/playlist?list=PLPYzvS8A_rTaNDweXe6PX4CXSGq4iEWYC

Codice insegnamento 063625

ELECTRONICS AND ELECTROACOUSTICS FOR SOUND ENGINEERING 1° anno · 2° semestre · 10 CFU · IINF-01/A · 0 file

Aim of the course is to provide an in-depth knowledge on devices and systems for the acquisition and generation of sound and audio signals, specifically microphones and loudspeakers. The physical-mathematical modeling of…

Scheda dell'insegnamento

Obiettivi formativi

Aim of the course is to provide an in-depth knowledge on devices and systems for the acquisition and generation of sound and audio signals, specifically microphones and loudspeakers. The physical-mathematical modeling of the electroacoustic devices is studied in detail by means of the electro-mechano-acoustical analogies.

Dublin Descriptors
Expected learning outcomes
1) Knowledge and understanding
· know and understand the physical properties of the different electroacoustic devices for sound and audio signals acquisition and generation.
· know the characteristics and properties of the devices and systems for sound and audio signals acquisition and generation
2) Applying knowledge and understanding
· Analysis and application of microphones from their specifications.
· Analysis and application of loudspeakers from their specifications
5) Lifelong learning skills
· Students will learn how to analyze and design devices for sound and audio signals acquisition and generation.

Programma

Introduction on Electroacoustic Devices
Electro-Mechano-Acoustical Analogies
Mechanical and acoustical elements: mass, compliance, resistance, properties and equations. Impedance and admittance analogies. Electro-mechanical and mechano-acoustical transducers: physics and models.
Microphones:
Principle of transduction: moving coil, ribbon, piezoelectric and condenser microphones.
Sound Fields: Pressure, Free, Diffuse fields; Sound Pressure Level (SPL).
Sensitivity: definition, unit, measurement, dependence on microphone characteristics.
Pickup patterns: omnidirectional, bidirectional, cardioid, supercardioid, Hypercardioid; omnidirectionality limit; multiple pattern microphones; interference tube microphones.
Frequency response: diaphragm size dependence, proximity effect and electronic compensation, low‑frequency response control, static pressure equalization vent, wind screens.
Microphone noise: origin, physical-mathematical model, measurement, unit, typical values.
Dynamic range: measurement microphones, sound reinforcement microphones.
Microphone front-end electronics: architecture, preamplifier and output stage, output impedance. Wireless microphones.
Micro-Electro-Mechanical Systems (MEMS) microphones: silicon technology, MEMS process, fabrication steps, specifications. MEMS microphones and processing electronics integrated systems.
Pressure, Pressure-Gradient and Pressure/Pressure-Gradient Microphones: physical mathematical models; polar patterns, proximity effect, directivity factor.
Loudspeakers:
S tructure and principles of operation, modeling by equivalent circuits in electrical, mechanical and acoustical domains. Acoustic radiation impedances. Electrical impedance of a loudspeaker. Resonance frequency. Effect of the voice-coil inductance.
Irradiated acoustic power and SPL, sensitivity and efficiency. Dynamics of a loudspeaker, frequency response.
Response of a loudspeaker in finite and infinite baffles.
Loudspeakers in enclosure: closed box, air suspension, bass reflex.
Horns and compression drivers.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
Type of Assessment
Description
Dublin descriptor
Written test
· Solution of numerical problems on electroacoustic devices
· Critical discussion on the data-sheet of a microphone or a loudspeaker
· Questions on topics in the course’s program
1, 2
1, 2, 5
Oral test
· Discussion on problems of the written test
· Questions on topics in the course’s program
· Analytical solution of problems on electroacoustic devices
1, 2
1
1, 2, 5

Testi di riferimento

G. Bertuccio - Electronics and Electroacoustics for Sound Engineering https://beep.metid.polimi.it/
Note: available as pdf file in the course's website on BeeP
G. Bertuccio - electronic board notes https://beep.metid.polimi.it/
Note: available as pdf files in the course'w website on Beep
Leo L. Beranek, Tim J. Mellow, Acoustics: Sound Fields and Transducers, Editore: Academic Press - Elsevier, Anno edizione: 2012, ISBN: 9780123914217 https://www.elsevier.com/books/acoustics-sound-fields-and-transducers/mellow/978-0-12-391421-7

Codice insegnamento P881889532

FUNDAMENTALS OF ACOUSTICS 1° anno · 1° semestre · 5 CFU · IIND-07/B · 0 file

The propagation of sounds and vibrations in fluids and solids is at the basis of most of the phenomena related to musical instruments, building and environmental acoustics, noise and vibration from machinery and…

Scheda dell'insegnamento

Obiettivi formativi

The propagation of sounds and vibrations in fluids and solids is at the basis of most of the phenomena related to musical instruments, building and environmental acoustics, noise and vibration from machinery and industrial products. In this course, we will cover the fundamentals of acoustics, starting from the basic description of oscillations and wave motion, the normal modes of strings and membranes, to the propagation of sound in gas media and the description of reflection, transmission, absorption, and scattering phenomena during sound propagation.

The course will provide students with:
The knowledge and tools for the analysis of the generation, propagation, reception and perception of sound in various human activities (Dublin Descriptor 1, Knowledge and understanding);
the ability to approach and solve analytically simple problems related to the generation and propagation of sound (Dublin Descriptor 2, Applying knowledge and understanding);
the ability to critically assess (at least qualitatively) the basic acoustic phenomena related to the specific features of certain musical instruments, acoustic environments and vibration dynamics (Dublin Descriptor 2, Applying knowledge and understanding, and Dublin Descriptor 3, Making judgements);
the ability to independently apply the knowledge and tools acquired during the course to a specific advanced problem/topic of choice (Dublin Descriptor 5, Learning skills).

Programma

Introduction and basic tools
Introduction to Sound and Vibrations; Complex numbers, harmonic Functions and Phasors; RMS value of a time dependent quantity; Harmonic Analysis: Fourier series and Fourier Transform; Vector and Tensor Algebra and differential operators; Superficial forces in a continuum medium: stress tensor.
Fundamentals of Oscillations and Wave Motion
Mechanical Simple Oscillator: 1 degree of freedom; Equivalent Electrical Circuit; Impedance and Admittance; Natural frequency and resonance; Inextensible Flexible String Vibration: Waves Equation; Standing Wave and Normal Modes in String; Waves in String Driven from One End.
Wave Equation for Sound Propagation in Gas media
Derivation of Wave Equation: Conservation Principles; Vibration in standing fluids; Thermodynamic constitutive low for an isentropic fluid; Linearized Wave Equation for an Isentropic Fluid; Speed of Sound; Acoustic Energy Quantities: Intensity and Energy density; Plane Waves; Acoustic specific impedance; Spherical wave equation; Intensity and Energy density in near and far field; Acoustic Point Source; Sound Levels; the Doppler effect.
Sound reflection, refraction, diffraction, scattering, and absorption
Fluid-to-fluid Normal Incidence; Fluid-to-fluid Oblique Incidence; Evanescent Waves; Reflection at a Solid Rigid Surface; Reflection at a Solid Flexible Surface: normal specific impedance.; Apparent absorption; Absorption and Attenuation of Sound; Effect of Viscosity; Effect of Heat Conduction; Molecular Thermal Relaxation; Sound Absorbing Materials; elements and qualitative description of sound diffraction and scattering; standing waves and normal modes in closed spaces.
Elements of musical instruments
Sound radiation from a vibrating plate; sound transmission in pipes and horns; qualitative description of turbulent flow phenomena.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
The examination will consist of a written examination with:
standard exercises intended to verify the learning outcomes number 1 and 2;
an applied conceptual exercise in which students are required to analyze and discuss a brief scenario by applying the principles and methods introduced during the course, to verify the learning outcomes number 3 and 4.

Testi di riferimento

The whole content of the course will be covered by the class lectures with slides made available on the BeeP portal beep.metid.polimi.it
H. Kuttruff, Acoustics - An introduction, Editore: Taylor & Francis

Codice insegnamento P554240772

Insegnamenti a scelta dal Gruppo ALC (CR) 1° anno · 0 file
Insegnamenti a scelta dal Gruppo FUND-CS (MI) 1° anno · 0 file
Insegnamenti a scelta dal Gruppo UNIPV (CR) 1° anno · 0 file
MULTIMEDIA SIGNAL PROCESSING 1° anno · 1° semestre · 10 CFU · IINF-03/A · 0 file

The goal of the course is to provide students with advanced knowledge and skills on multimedia signal processing applications, with a specific focus on coding of multimedia objects. This course covers relevant…

Scheda dell'insegnamento

Obiettivi formativi

The goal of the course is to provide students with advanced knowledge and skills on multimedia signal processing applications, with a specific focus on coding of multimedia objects. This course covers relevant applications of digital signal processing with specific reference to multimedia communication, e.g. audio, image and video coding. Furthermore, the course gives an insight on widely-adopted international coding standards such as MPEG Audio, JPEG and MPEG Video, among others.

Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn how to:
· Apply advanced processing techniques to 1D and 2D digital data
· Encode and decode multimedia objects with well-known coding schemes
· Evaluate distortion introduced on multimedia objects by typical processing techniques
Applying knowledge and understanding
Given specific project cases, students will be able to:
· Develop an end-to-end encoding and decoding architecture tailored to a specific media type
· Implement advanced 1D and 2D signal processing techniques
Lifelong learning skills
· Students will learn how to design and develop a realistic project related to multimedia digital data processing.
· Students will learn how to analyze the performance of multimedia coding schemes.

Programma

Source coding:
Discrete memoryless sources, discrete sources with memory, entropy of a source, uniquely decodable and prefix codes, Shannon’s source coding theorem, Huffman coding, arithmetic coding, run length coding.
Quantization:
Uniform scalar quantization, Lloyd-Max scalar quantization, entropy constrained scalar quantization, rate-distortion theory, vector quantization.
Predictive coding:
Linear predictive coding, DPCM, delta modulation, predictive coding gain.
Transform coding:
Linear transforms, unitary transforms, linear approximation, non-linear approximation, KLT, DCT, transform coding gain, bit allocation, sub-band coding, wavelet transform, 2D transforms.
A review of Waveform Coding of audio signals:
PCM, DPCM, Delta Modulation, ADPCM. Lossless compression techniques.
Speech coding:
Vocal tract modeling, LPC, pitch extraction, voiced/unvoiced detection, analysis by synthesis.
Audio coding:
Fundamentals of psychoacoustics, frequency masking, temporal masking, filter banks (PQMF, MDCT), bit allocation and entropy coding. Coding standards: MPEG-Audio, Advanced Audio Coding (AAC), AC3.
Image coding:
Human visual system, visual redundancy and irrelevancy, lossless and lossy image coding, transform coding and quantization. Coding standards: JPEG.
Video coding:
DPCM, motion estimation, coding of prediction residuals, coding of motion vectors, rate-distortion optimization. Coding standards: MPEG-x, H.264/AVC.
Other multimedia applications:
Multimodal analysis, image intensity pointwise operations, color handling, histogram equalization, morphological processing, feature analysis, matching, registration, forensics.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
The assessment will be based on a written exam at the end of the course. The written exam consists of two parts. The first part contains numerical exercises and theoretical questions. This will assign up to 23 points. The second part consists in a programming test. This will assign up to 10 points. 30 cum laude will be assigned when the total score is higher than 31.
Type of assessment
Description
Dublin descriptor
Written test
Solution of numerical problems
· Source entropy computation
· Computing distortion introduced by lossy coding techniques
· Multimedia signals filtering
Exercises focusing on design aspects
· Development of lossless and lossy coding schemes
· Parameters selection for multimedia processing algorithms
Theoretical questions on all course topics with open answer
· Information theory
· Digital signal processing applied to multimedia objects
· Coding standards
1, 2
1, 2, 5
1, 5

Testi di riferimento

M. Bosi, Introduction to Digital Audio Coding and Standards, Anno edizione: 2002
T. Spanias and T. Painter, Audio signal processing and coding, Anno edizione: 2006
R. C. Gonzalez and R. E. Woods, Digital Image Processing, Anno edizione: 2007
D. Taubman and M. Marcellin, Image Compression Fundamentals, Standards and Practice, Anno edizione: 2001
M. Tekalp, Digital Video Processing, Anno edizione: 1995
I. Richardson, Video Codec Design: Developing Image and Video Compression Systems, Anno edizione: 2002
I. Richardson, Video Codec Design: H.264 and MPEG-4 Video Compression, Anno edizione: 2003

Codice insegnamento P042450734

SELECTED TOPICS IN MUSIC AND ACOUSTIC ENGINEERING 1° anno · 2° semestre · 5 CFU · IINF-05/A · 0 file

Selected Topics in Music and Acoustic Engineering aims to cover specialized and timely areas of activity and research in acoustic engineering. In this context, the data science revolution of the last decade has…

Scheda dell'insegnamento

Obiettivi formativi

Selected Topics in Music and Acoustic Engineering aims to cover specialized and timely areas of activity and research in acoustic engineering. In this context, the data science revolution of the last decade has increasingly oriented audio and acoustic signal processing towards machine learning methods and algorithms. As a result, Machine Learning for Audio and Acoustic Engineering is now a topic of high interest both in academia and in professional practice.
The course is structured into five parts. The first part provides an overview of the role that signal processing and machine learning play in modern audio and acoustic engineering applications, also discussing the main current challenges in the field. The second part focuses on audio analysis and preprocessing methods, including time-frequency transforms, feature extraction, feature learning, and dimensionality reduction techniques. The third part introduces both classical machine learning methods, such as logistic regression, support vector machines, k-nearest neighbours, and related models, and deep learning architectures, including fully connected, convolutional, and recurrent neural networks. The fourth part discusses key issues related to dataset annotation, data augmentation, model validation, evaluation metrics, and performance analysis. Finally, the fifth part focuses on Music Information Retrieval, covering representative tasks such as pitch detection, instrument recognition, source separation, music tagging, music similarity, and tempo detection.
The course combines theoretical principles with practical case studies in Python, using real-world datasets and widely used libraries such as librosa, scikit-learn, TensorFlow, and PyTorch.

By the end of the course, students will be able to understand and apply fundamental techniques used in modern machine learning applications for audio, music, and acoustic signals. They will be able to represent audio data through meaningful time-domain, time-frequency, perceptual, and learned features; design preprocessing and annotation workflows; develop classical machine learning and deep learning models for classification, regression, retrieval, and source separation tasks; and evaluate their performance using appropriate validation protocols and metrics. Students will also gain practical experience in Python with real-world datasets and will be able to critically interpret the capabilities and limitations of machine learning systems for audio and acoustic engineering applications.

Programma

Part 1: Introduction
Course structure
Goals of the course
Overview of signal processing and machine learning in audio and acoustic engineering
Historical perspective on machine learning for audio
Challenges in machine learning for audio signal processing
Main application areas, with emphasis on music and acoustic applications
Development process of smart audio systems
Part 2: Audio Analysis and Preprocessing
Data acquisition and annotation
Time-frequency transforms
Feature engineering
Feature learning
Dimensionality reduction
Part 3: Machine Learning and Deep Learning Methods
Supervised and unsupervised learning
Discriminative models
Generative models
Deep learning models
Part 4: Data Preparation and Performance Analysis
Dataset design and annotation
Data augmentation for audio
Model validation
Performance evaluation
Error analysis and recommendations for reproducible audio machine learning experiments
Part 5: Music Information Retrieval
Introduction to Music Information Retrieval
Pitch detection and pitch-related representations
Instrument recognition
Sound source separation
Music tagging and multi-label classification
Music similarity and retrieval
Tempo detection and rhythm-related analysis

Modalità d'esame

Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
Valutazione continua obbligatoria
Altro
The final grade is based on the assessment of the following items:
a) Quiz tests after each part of the course - 35% of the final grade
b) Four lab reports — 35% of the final grade
c) One final project — 30% of the final grade
The quiz tests assess the students’ understanding of the main theoretical concepts, methods, and algorithms covered in each part of the course. The lab reports evaluate the students’ ability to apply audio analysis and machine learning techniques in Python using real-world datasets. The final project assesses the capacity to integrate the knowledge acquired during the course in the development, evaluation, and critical analysis of a complete machine learning system for an audio or acoustic engineering task.
Some students, due to personal or professional reasons, may not be able to attend all the quizzes at the scheduled times during the course. Therefore, a new set of five quizzes will take place consecutively on the same day as the final assessment, giving students the opportunity either to recover missed quizzes or to improve their grades.

Testi di riferimento

M. Müller, Fundamentals of Music Processing, Editore: Springer, Anno edizione: 2015
A. Lerch, An Introduction to Audio Content Analysis, Editore: John Wiley & Sons, Anno edizione: 2012
Ian Goodfellow and Yoshua Bengio and Aaron Courville, Deep Learning, Editore: MIT Press, Anno edizione: 2016
Aurélien Géron, Hands-on Machine Learning with Scikit-Learn, Keras & Tensorflow, Editore: O'Reilly, Anno edizione: 2020
E. Stevens, L. Antiga, T. Viehmann, Deep Learning with PyTorch, Editore: Manning, Anno edizione: 2020

Codice insegnamento 055670

SIGNALS AND SYSTEMS 1° anno · 2° semestre · 10 CFU · IINF-03/A · 0 file

This course focuses on the analysis of signals (sound, acoustic pressure, voltage, images, etc.) and the systems that act on them (acoustic resonators and environments, circuits, mechanical devices, etc.). We concentrate…

Scheda dell'insegnamento

Obiettivi formativi

This course focuses on the analysis of signals (sound, acoustic pressure, voltage, images, etc.) and the systems that act on them (acoustic resonators and environments, circuits, mechanical devices, etc.). We concentrate on the Fourier Transform and Linear-Time Invariant Systems, providing the fundamental mathematical tools for sampling, manipulating, preserving, and interpreting information signals.
This second module of the course is dedicated to discrete-time signals and systems.

Dublin descriptors
Knowledge and understanding Students will learn how to:

  • represent and analyze discrete-time signals in time and frequency domains;
  • interpret and apply the Discrete-Time Fourier Transform (DTFT), the Discrete Fourier Transform (DFT), and the Z-transform;
  • model discrete-time linear time-invariant systems using difference equations and impulse response;
  • interpret the relationships between continuous-time and discrete-time analysis tools;
  • understand the theoretical principles of digital filter design and spectral estimation.
    Applying knowledge and understanding Students will be able to:
  • analyze discrete-time signals and systems using appropriate mathematical tools;
  • design and evaluate digital filters according to given specifications;
  • compute and interpret frequency-domain representations using DFT/FFT techniques and apply spectral estimation methods to random signals.
    Making judgements Students will be able to:
  • translate the specifications of a discrete-time signal processing problem into an appropriate mathematical model;
  • choose the most suitable analysis method (time-domain, DTFT, DFT, or Z-transform);
  • evaluate trade-offs in filter design and spectral estimation.
    Communication Students will learn to:
  • write clear and structured solutions to theoretical and applied signal processing problems;
  • present and discuss the analysis and design of discrete-time systems using appropriate technical language and notation.

Programma

Discrete-Time Signals and Systems – Some useful Discrete-Time signal models; sampling Continuous-Time sinusoids and aliasing; useful signal operations; examples of Discrete-Time systems.
Time-Domain Analysis of Discrete-Time Systems – Discrete-Time system equations; system response to internal conditions: Zero-Input Response; Unit Impulse Response h[k]; System Response to External Input: Zero-State Response; classical solution of linear difference equations; system stability; determining Impulse Response.
Fourier Analysis of Discrete-Time Signals – Periodic signal representation by Discrete-Time Fourier Series; aperiodic signal representation by Fourier integral; properties of DTFT; DTFT connection with the Continuous-Time Fourier Transform; Discrete-Time linear system analysis by DTFT;
The Discrete Fourier Transform (DFT): numerical computation of Fourier Transform: the Discrete Fourier Transform (DFT); the Fast Fourier Transform (FFT); signal processing using DFT and FFT; convolution in the frequency domain; convolution via overlap-and-add; the short-time Fourier Transform (STFT); windowing: spectral leakage, spectral resolution, zero-padding.
Discrete-Time system analysis using the Z-transform – generalization of DTFT to the Z-transform; The Z-Transform; some properties of the Z-transform; Z-transform solution of linear difference equations system realization; connection between the Laplace and the Z-Transform; the bilateral Z-transform.
Frequency Response and Digital Filters – Frequency response of discrete-time systems; frequency response from pole-zero location; digital filters; filter design criteria; recursive filter design: the impulse invariance method; recursive filter design: the bilinear transformation method; nonrecursive filters; nonrecursive filter design.
Introduction to multirate systems – Downsampling and upsampling; decimation and interpolation; resampling.
Fundamentals of statistical signal processing – Random sequences: expectation, i.i.d sequences, jointly distributed random sequences; correlation and covariance sequences; time averages and ergodicity.
Introduction to spectral estimation: power spectral density, bias and variance of an estimator, periodogram, correlogram

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
The exam consists of a written test based on the topics taught in the course, including a mixture of theoretical questions (~55%) and exercises (~45%).

Codice insegnamento P973098452

SOUND ANALYSIS, SYNTHESIS AND PROCESSING 1° anno · 2° semestre · 10 CFU · IINF-03/A · 0 file

This module is part of a course that offers a comprehensive collection of fundamentals tools for for audio and acoustic signal analysis and processing, as well as synthesis and rendering. This module focuses on tools for…

Scheda dell'insegnamento

Obiettivi formativi

This module is part of a course that offers a comprehensive collection of fundamentals tools for for audio and acoustic signal analysis and processing, as well as synthesis and rendering. This module focuses on tools for audio and acoustic signal synthesis and rendering.
A wide range of applications will be covered, including musical sound synthesis, sound effects, sound reverberation, 3D audio capturing and rendering, etc.

The student will acquire the fundamental tools of audio and acoustic signal processing and will acquire the ability to use such tools for applications of audio and acoustic signal analysis, synthesis, processing, improvement and restoration.

Programma

Sound synthesis and spatial processing
In this second part we introduce techniques for sound synthesis and spatialization/reverberation; and for a high-end rendering of audio signals. Using numerical methods and signal processing tools, we discuss traditional techniques for musical sound synthesis such as wavetable, additive, subtractive, granular and nonlinear synthesis techniques; more advanced sound synthesis solutions such as modal synthesis and sound synthesis through physical modelling with particular reference to finite elements, digital waveguide networks, wave digital filters, etc.
We also introduce techniques for digital audio enhancement/improvement such as sound effects, reverberation and spatialization. Finally, we discuss advanced sound rendering techniques based on multi-channel processing and spatial (array) processing such as ambisonics, acoustic beamforming/projection and wavefield synthesis.
Sound synthesis: additive and subtractive synthesis, granular synthesis, wavetable synthesis, nonlinear distortion (ring modulation, phase/frequency modulation), fractal synthesis.
Physical sound modelling for timbral synthesis: modal synthesis and functional transformation method, finite elements, Cordis-Anima, digital waveguides, wave digital structures, object-based modelling.
High-end sound effects and sound processing: modulated digital delay lines, sound effects, reverberation and spatialization algorithms (DSP solutions, geometric methods, physical modelling methods, perceptual techniques), binauralization, head-related transfer function, multi-channel processing, ambisonics.
Space-time processing, clusters or arrays of loudspeakers, 3D audio: vector-based amplitude panning, uniform and non-uniform speaker arrays, beamforming and acoustic projection, polar emission shaping, wavefield synthesis, ambisonics rendering, higher-order loudspeakers.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, senza presentazione/discussione finale
The student is required to do two homework assignments (which will count for 40% of the final grade) and a final exam (which will count for 60% of the final grade). Students also have the opportunity to improve their grade by developing a (non compulsory) project (necessary condition to aspire to a "cum laude"), which will grant them a grade increment.
The project must be preliminarily negotiated with a course instructor and can be either a software application or a research paper. Projects can be combined for the two modules, and can be done in collaboration with other students. Projects can also be combined with projects of other courses, upon explicit approval of all involved instructors.

Testi di riferimento

Mark Kahrs, Karlheinz Brandenburg, Applications of Digital Signal Processing to Audio and Acoustics, Editore: SpringerVerlag, Anno edizione: 1998, ISBN: 9781475783865

Codice insegnamento P220773430

VIBRATION ANALYSIS AND VIBROACOUSTICS 1° anno · 2° semestre · 10 CFU · IIND-02/A · 0 file

The aim of the course is to introduce students to engineering methods for vibration and sound radiation analysis of continuous structures. Both analytical/numerical models and experimental techniques are covered and…

Scheda dell'insegnamento

Obiettivi formativi

The aim of the course is to introduce students to engineering methods for vibration and sound radiation analysis of continuous structures. Both analytical/numerical models and experimental techniques are covered and particular attention is given to examples and applications, especially in the field of string musical instruments. Each topic is treated theoretically and practically, through traditional lectures and experimental/computer labs.

By the end of the course, students will acquire knowledge (DD1) regarding:
the modelling approaches to vibration analysis of continuous systems;
the basic physical principles of sound radiation from a vibrating structure.
Concerning the ability to apply the acquired knowledge and understanding (DD2, DD3), students will be able to:
the handling of complex vibroacoustic problems in real structures;
perform standard vibration and sound measurements and to critically apply data processing techniques for modal parameters extraction or sound analysis.
The development of group assessments will allow students to develop skills in summarizing and presenting the results achieved during the lab activities (DD4).

Programma

Vibration and waves in one-dimensional continuous systems
The partial differential equation governing transverse vibration of stretched strings and axial vibration of bars (one-dimensional wave equation). Traveling waves and standing waves. Wave propagation speed, wavenumber, mechanical impedance. Transmission and reflection at an impedance change. Natural frequencies and vibration modes for different boundary conditions. The partial differential equation governing bending vibration of slender beams (Euler-Bernoulli beam). Dispersion and evanescent waves. Vibration modes, principal coordinates and modal superposition approach.
Vibration and waves in two-dimensional continuous systems
The partial differential equation governing bending vibration of thin plates (Kirchhoff plate). Bending waves propagation, the wavenumber vector, point mobility. Bending vibration of finite plates. Vibration modes of plates with different geometry and boundary conditions. Theoretical soundboard models for stringed instruments. Introduction to finite element method and examples of application to musical instruments.
Sound radiation from vibrating structures
General formulation of the problem. Sound radiation from an infinite plate. Wave/boundary matching. Critical frequency. Sound radiation from finite plates. Radiation efficiency. Introduction to the boundary element method and examples of application to the simulation of the vibroacoustic behaviour of musical instruments.
Experimental techniques
Fundamentals of experimental modal analysis: test equipment and test procedure, data processing and identification algorithms. Sound intensity and sound power measurement techniques. Practical examples relevant to stringed musical instruments.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale obbligatoria
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
In addition to traditional lectures, the course includes experimental and computer labs, focused on specific methodologies, case studies or practical applications. Students are requested to prepare short reports on the assignments given during the labs, to be delivered at the final exam. The exam consists of an oral test, which includes a discussion on lab reports.
With reference to the expected learning outcomes: the oral exam is intended to verify items 1, 2 and 3, while item 4 will be checked during the discussion on lab reports.

Testi di riferimento

Course handouts available on BeeP https://beep.metid.polimi.it/
F. Cheli, G. Diana, Advanced Dynamics of Mechanical Systems, Editore: Springer-Verlag, Anno edizione: 2015
L. Meirovitch, Fundamentals of Vibrations, Editore: Waveland Press Inc., Anno edizione: 2001
M. P. Norton, Fundamentals of Noise and Vibration Analysis for Engineers, Editore: Cambridge University Press, Anno edizione: 2010
T. D. Rossing, The Science of String Instruments, Editore: Springer-Verlag, Anno edizione: 2010

Codice insegnamento 055673

CREATIVE PROGRAMMING AND COMPUTING 2° anno · 1° semestre · 10 CFU · IINF-05/A · 0 file

This course is aimed at providing the necessary background and expertise for developing software applications supporting and enhancing artistic and creative performances, installations, etc. The course covers multi-modal…

Scheda dell'insegnamento

Obiettivi formativi

This course is aimed at providing the necessary background and expertise for developing software applications supporting and enhancing artistic and creative performances, installations, etc. The course covers multi-modal applications, with particular emphasis on music production and performance.
The second part of the course (Module 2) will focus on Generative Artificial Intelligence for art:
Generative Artificial Intelligence
AI for automating or supporting artistic generation (visual art, music composition algorithms, automatic storytelling, etc.)
Data/Signal-Driven reactive/interactive artistic generation
Applications (projects and use-cases)

Knowledge and understanding: Students will acquire theoretical and methodological knowledge related to Artificial Intelligence and its application to artistic and creative processes. They will understand the fundamental principles of deep learning and generative neural networks, including Multi-Layer Perceptrons, Convolutional Neural Networks, Recurrent Neural Networks, Autoencoders, Variational Autoencoders, Generative Adversarial Networks and Diffusion Models. Students will also become familiar with evolutionary approaches, such as Genetic Algorithms, and their application to generative art.
Applying knowledge and understanding: Students will be able to apply Artificial Intelligence methods to the development of generative artistic systems. They will use deep learning, generative models and evolutionary approaches to address creative tasks involving music, images, video and other forms of artistic content, selecting and applying appropriate computational models according to specific creative goals.
Making judgements: Students will develop the ability to critically analyse and compare AI-based generative approaches, evaluating their suitability for different artistic applications. They will be able to assess the relationship between computational models, input data, generated outputs and artistic objectives, considering the limitations and expressive potential of different approaches.
Communication: Students will be able to clearly communicate the concepts, methods and results of AI-based creative projects using appropriate technical and artistic language. They will present and document their projects, explaining the selected AI approach, the creative process, implementation choices and generated outcomes, and critically discuss their work with peers and instructors.
Learning skills: Students will develop the ability to independently explore emerging Artificial Intelligence techniques and their applications to creative practices. They will be able to consult technical and scientific resources, experiment with different generative approaches and transfer acquired knowledge to new artistic and technological contexts.

Programma

Module 2: Generative Artificial Intelligence for art
Deep learning for automating or supporting artistic generation (visual art, music composition algorithms, automatic storytelling, etc.)
Multi-layer perceptron
Convolutional Neural Networks
Recurrent Neural Networks
Generative Neural Networks
Autoencoder and Variation al autoencoder
Generative Adversarial Network
Diffusion Models
Some use-cases:
Automatic music composition
Generative images; Deepdream and style transfer
Video transfer style
Evolutionary systems for generative arts: Genetic Algorithms
Applications (projects and use-cases)
Generative art: automatic music composition, automatic graphic generation, automatic image generation
Interactive Installations: artistic installation able to react to environmental or human stimuli
Interactive Performance and new instruments for interactive performances

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The assessment consists of two parts: a written test and a group project. The written test consists of open-ended questions aimed at assessing the students’ knowledge of the course topics and their ability to apply the acquired concepts to concrete cases. The group project requires students to design and develop a Creative Computing project and present it to the class. The final grade is calculated as the average of the grades obtained in the two parts.
Type of assessment
Description
Dublin descriptor
Written test
Open-ended questions assessing knowledge and understanding of deep learning, generative neural networks, evolutionary approaches and their applications to artistic generation.
1
Application of concepts to concrete cases, requiring students to identify, compare and discuss appropriate AI models for specific creative tasks.
1, 2, 3
Group project
Design and development of a Generative AI project using one or more approaches introduced in Module 2 and applying them to an artistic or creative task.
2, 3, 5
Critical discussion of the selected AI approach, implementation choices, generated results and their relationship with the artistic objectives of the project.
2, 3
Presentation of the project to the class, explaining the creative concept, AI methodology, development process and results.
3, 4

Codice insegnamento P820999664

CREATIVE PROGRAMMING AND COMPUTING - MODULE 1: LANGUAGES AND ENVIRONMENTS 2° anno · 1° semestre · 5 CFU · IINF-05/A · 0 file

This course is aimed at providing the necessary background and expertise for developing software applications supporting and enhancing artistic and creative performances, installations, etc. The course covers multi-modal…

Scheda dell'insegnamento

Obiettivi formativi

This course is aimed at providing the necessary background and expertise for developing software applications supporting and enhancing artistic and creative performances, installations, etc. The course covers multi-modal applications, with particular emphasis on music production and performance.
The first part of the course (Module 1) will be devoted to Media Art and Interaction Design, and will focus methodologies for developing software devoted to multimodal interactive applications, involving various platforms of interest (e.g., Supercollider, Processing, …) based on a wide range of multimodal sensors (cameras, bio-sensors, motion sensors, etc.):
Media Art Language and Expression
Interaction Design (Human-machine interaction and machine-machine interaction)
Multimodal signal capturing (perception): capturing and analysing multimodal signals (audio, images/video, motion, biofeedback, etc.);
Multi-modal and cross-modal signal generation;
Autonomous agents and multi-agent systems (swarm intelligence)
Grammar-based generative systems
Classic Machine Learning approaches

Knowledge and understanding: Students will acquire theoretical and methodological knowledge related to Media Art, Interaction Design and Creative Computing. They will understand the historical, aesthetic and conceptual foundations of Media Art, the principles of human-machine and machine-machine interaction, and the role of multimodal data and signals in interactive systems. Students will become familiar with creative coding paradigms, reactive and multi-agent systems, rule-based and grammar-based generative systems, Markov models, swarm intelligence, and basic Machine Learning approaches for artistic applications.
Applying knowledge and understanding: Students will be able to apply acquired knowledge to the design and development of generative, reactive and interactive artistic systems. They will use creative coding tools (e.g. Python, Processing, Wekinator), communication protocols (e.g. OSC, SMPTE, DMX, Art-Net), multimodal data and signals, and computational models such as reactive agents, rule-based systems, grammars and multi-agent systems to develop interactive installations, generative artworks and interactive performances.
Making judgements: Students will develop the ability to critically analyse artistic and computational systems, evaluating their aesthetic, technical and conceptual dimensions. They will be able to select appropriate interaction strategies, computational models and creative coding approaches according to specific artistic goals, considering their limitations, expressive potential and implications for the design of interactive experiences.
Communication: Students will be able to clearly communicate concepts, design choices, creative processes and project outcomes using appropriate artistic, technical and academic language. They will present and document Creative Computing projects through oral presentations, visual and audiovisual materials, interactive prototypes and written documentation, and critically discuss their work with peers and instructors.
Learning skills: Students will develop the ability to independently explore creative coding tools, interaction techniques and computational approaches relevant to Media Art and Creative Computing. Through project-based experimentation, they will learn to consult technical and artistic resources, explore alternative solutions and transfer acquired knowledge to new creative and technological contexts.

Programma

Module 1: Media Art and Interaction Design
Media Art Language and Expression
Understanding the notions of art, creativity and aesthetics
Introduction to Media Art, Interaction Design, Creative computing
A brief history of Media Art
Artistic Installation vs. Artistic Performance
Tools and protocols for creative computing
Different paradigms of coding: Definitions, rational and applications
Tools for Creative coding (Python, Processing, Wekinator)
Transmission protocols: SMTPE, OSC, DMX, Art-net
Agents and the Perception
Agents (environment, perception, know-how, reasoning, task)
Perception, an interaction design-based approach (interaction design models, interaction design and creativity, interfaces and sensors)
The world described thought data and signals: an interactive perspective (Audio descriptors, Image and video descriptors, Motion and gesture descriptors)
Reactive agents and multi-agent systems
Rule-based systems
Interactive audio and rule-based automatic music composition
Autonomous computer graphics reactive agent
Swarm intelligence and social behaviour design
Particle systems
Boids, flocks and swarms
Cellular Automata
Grammar-based generative systems
Modelling the creativity through a computational model
Grammars: definition and application in generative art
L-Systems
Markov Models for generative processes
Markov Models for generative processes
Classic Machine Learning approach for automating or supporting artistic generation (supervised and unsupervised learning)

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The assessment consists of two parts: a written test and a group project. The written test consists of open-ended questions aimed at assessing the students’ knowledge of the course topics and their ability to apply the acquired concepts to concrete cases. The group project requires students to design and develop a Creative Computing project and present it to the class. The final grade is calculated as the average of the grades obtained in the two parts.
Type of assessment
Description
Dublin descriptor
Written test
Open-ended questions assessing knowledge and understanding of Media Art, Interaction Design, creative coding, multimodal interaction and computational approaches covered in Module 1.
1
Application of concepts to concrete cases, requiring students to identify and discuss appropriate interaction strategies, computational models and creative coding approaches.
1, 2, 3
Group project
Design and development of a Creative Computing project using methods and technologies introduced in Module 1, such as creative coding, multimodal interaction, reactive or generative systems.
2, 3, 5
Critical discussion of the artistic concept, interaction design, computational approach and implementation choices.
2, 3
Presentation of the project to the class, explaining the concept, design process, implementation and results.
3, 4

Codice insegnamento 055282

ELECTRONICS AND ELECTROACOUSTICS FOR SOUND ENGINEERING - MODULE 1: ELECTRONICS FOR SOUND ENGINEERING 2° anno · 2° semestre · 5 CFU · IINF-01/A · 0 file

The aim of the course-module 1-electronics is to provide an in-depth knowledge on electronic devices, electronic circuits and systems used for the acquisition, processing, recording, Analog-Digital Conversion of audio…

Scheda dell'insegnamento

Obiettivi formativi

The aim of the course-module 1-electronics is to provide an in-depth knowledge on electronic devices, electronic circuits and systems used for the acquisition, processing, recording, Analog-Digital Conversion of audio signals.

Dublin Descriptors
Expected learning outcomes
1) Knowledge and understanding
· know and understand the physical properties of the different amplifying devices used for audio signals.
· know the advanced circuits and systems for audio signal processing.
· know and understand the origin of the electronic noise and signal distortion in the electron devices and amplifiers.
· know how to enhance the signal to noise ratio in a circuit and in complex electronic system.
2) Applying knowledge and understanding
· Analize specifications of electron devices.
· Analize specifications of audio electronics.
· Design systems for analog signal processing.
5) Lifelong learning skills
· Students will learn how to analyze and design multi-stage electronic circuits for audio signal.

Programma

Solid state electron devices for audio systems: BJT, JFET and MOSFET transistors: static and dynamic characteristics and parameters.
Thermionic valves for audio systems: diode, triode, tetrode and pentode: physics, static and dynamic characteristics and parameters.
Electronics for audio signal analog processing: single and multi stage transistor and valve amplifiers, signal transformers, preamplifiers, differential and instrumentation amplifiers, balanced input and output stages, phantom power supply, gain control, summing amplifiers, active filters, Baxandall tone control, resonant filters, graphic and parametric equalizers, voltage control amplifiers (VCA), gate amplifiers, compressors.
Mixing consoles: Analog and digital console architecture, preamplification, equalization, aux and group sections, pan pot, VCA section, mixing matrix, insert, buses, output modules.
Noise in electron devices and circuits: electronic noise: physics and models, noise power spectral densities, r.m.s. values; thermal, shot, 1/f noises. Noise characteristics of resistors, diodes, BJTs, JFETs, MOSFETs, Thermionic Valves. Noise model of amplifiers. Noise in multi-stage amplifiers.
Signal distortion in electronic circuits: distortion in BJT and FET amplifiers. Distortion analysis and measurement.
Power amplifiers: Class A, AB, C, D output stages; efficiency, distortion, output impedance. Specifications of Professional high power amplifiers.

Modalità d'esame

Type of Assessment
Description
Dublin descriptor
Written test
· Solution of numerical problems on audio analog circuits
· Critical di scussion of a circuit
· Critical discussion on the data-sheet of a device, circuit or system for audio signal processing
· Questions on topics of the course’s program
1, 2
1, 2, 5
Oral test
· Discussion on problems of the written test
· Questions on topics of the course’s program
· Analytical solution of problems on circuit or system for audio signal processing

  • Analysis of an audio signal processor chosen by the student (mandatory for students of Master in Electronics Engineering)
    1, 2
    1
    1, 2, 5

Testi di riferimento

G. Bertuccio - Electronics and Electroacoustics for Sound Engineering https://beep.metid.polimi.it/
Note: available as pdf file in the course's website on BeeP
Giuseppe Bertuccio, Lecture slides and notes
Note: see EEASE course on Beep web site
Glen Ballou, HANDBOOK FOR SOUND ENGINEERS, Editore: Elsevier, Anno edizione: 2008, ISBN: 978-0-240-80758-4 https://www.sciencedirect.com/book/9780240809694/handbook-for-sound-engineers
John Linsley Hood, Audio Electronics, Editore: NEWNES - ELSEVIER, Anno edizione: 1998, ISBN: 978-0-7506-4332 https://www.sciencedirect.com/book/9780750643320/audio-electronics

Codice insegnamento P218874653

ELECTRONICS AND ELECTROACOUSTICS FOR SOUND ENGINEERING - MODULE 2: ELECTROACOUSTICS FOR SOUND ENGINEERING 2° anno · 2° semestre · 5 CFU · IINF-01/A · 0 file

Aim of the course is to provide an in-depth knowledge on devices and systems for the acquisition and generation of sound and audio signals, specifically microphones and loudspeakers. The physical-mathematical modeling of…

Scheda dell'insegnamento

Obiettivi formativi

Aim of the course is to provide an in-depth knowledge on devices and systems for the acquisition and generation of sound and audio signals, specifically microphones and loudspeakers. The physical-mathematical modeling of the electroacoustic devices is studied in detail by means of the electro-mechano-acoustical analogies.

Dublin Descriptors
Expected learning outcomes
1) Knowledge and understanding
· know and understand the physical properties of the different electroacoustic devices for sound and audio signals acquisition and generation.
· know the characteristics and properties of the devices and systems for sound and audio signals acquisition and generation
2) Applying knowledge and understanding
· Analysis and application of microphones from their specifications.
· Analysis and application of loudspeakers from their specifications
5) Lifelong learning skills
· Students will learn how to analyze and design devices for sound and audio signals acquisition and generation.

Programma

Introduction on Electroacoustic Devices
Electro-Mechano-Acoustical Analogies
Mechanical and acoustical elements: mass, compliance, resistance, properties and equations. Impedance and admittance analogies. Electro-mechanical and mechano-acoustical transducers: physics and models.
Microphones:
Principle of transduction: moving coil, ribbon, piezoelectric and condenser microphones.
Sound Fields: Pressure, Free, Diffuse fields; Sound Pressure Level (SPL).
Sensitivity: definition, unit, measurement, dependence on microphone characteristics.
Pickup patterns: omnidirectional, bidirectional, cardioid, supercardioid, Hypercardioid; omnidirectionality limit; multiple pattern microphones; interference tube microphones.
Frequency response: diaphragm size dependence, proximity effect and electronic compensation, low‑frequency response control, static pressure equalization vent, wind screens.
Microphone noise: origin, physical-mathematical model, measurement, unit, typical values.
Dynamic range: measurement microphones, sound reinforcement microphones.
Microphone front-end electronics: architecture, preamplifier and output stage, output impedance. Wireless microphones.
Micro-Electro-Mechanical Systems (MEMS) microphones: silicon technology, MEMS process, fabrication steps, specifications. MEMS microphones and processing electronics integrated systems.
Pressure, Pressure-Gradient and Pressure/Pressure-Gradient Microphones: physical mathematical models; polar patterns, proximity effect, directivity factor.
Loudspeakers:
S tructure and principles of operation, modeling by equivalent circuits in electrical, mechanical and acoustical domains. Acoustic radiation impedances. Electrical impedance of a loudspeaker. Resonance frequency. Effect of the voice-coil inductance.
Irradiated acoustic power and SPL, sensitivity and efficiency. Dynamics of a loudspeaker, frequency response.
Response of a loudspeaker in finite and infinite baffles.
Loudspeakers in enclosure: closed box, air suspension, bass reflex.
Horns and compression drivers.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
Type of Assessment
Description
Dublin descriptor
Written test
· Solution of numerical problems on electroacoustic devices
· Critical discussion on the data-sheet of a microphone or a loudspeaker
· Questions on topics in the course’s program
1, 2
1, 2, 5
Oral test
· Discussion on problems of the written test
· Questions on topics in the course’s program
· Analytical solution of problems on electroacoustic devices
1, 2
1
1, 2, 5

Testi di riferimento

G. Bertuccio - Electronics and Electroacoustics for Sound Engineering https://beep.metid.polimi.it/
Note: available as pdf file in the course's website on BeeP
G. Bertuccio - electronic board notes https://beep.metid.polimi.it/
Note: available as pdf files in the course'w website on Beep
Leo L. Beranek, Tim J. Mellow, Acoustics: Sound Fields and Transducers, Editore: Academic Press - Elsevier, Anno edizione: 2012, ISBN: 9780123914217 https://www.elsevier.com/books/acoustics-sound-fields-and-transducers/mellow/978-0-12-391421-7

Codice insegnamento P828815389

FINAL EXAMINATION 2° anno · 1° semestre · 20 CFU · 0 file
Insegnamenti a scelta dal Gruppo DI (MI) 2° anno · 0 file
Insegnamenti a scelta dal Gruppo INF (MI) 2° anno · 0 file
Insegnamenti a scelta dal Gruppo INT (MI) 2° anno · 0 file
Insegnamenti a scelta dal Gruppo TLC (MI) 2° anno · 0 file
MUSIC AND ACOUSTIC ENGINEERING CAPSTONE 2° anno · 2° semestre · 5 CFU · IINF-05/A · 0 file

This course is meant to give the students the opportunity not only to focus on the development of a specific research/development project, but also to develop skills in project organization, management, documentation and…

Scheda dell'insegnamento

Obiettivi formativi

This course is meant to give the students the opportunity not only to focus on the development of a specific research/development project, but also to develop skills in project organization, management, documentation and presentation.
Students will be asked to opt for one of the following two options:
Lab Experience: students can opt to do their project in one of the labs that collaborate with the course (whose list will be made available at the beginning of the course), under the supervision of an appointed researcher. The project will be developed as a short-term research problem, and will represent a first compact experience of thesis development
Challenge: students may choose to establish a workgroup that will participate to one of the challenges that are available in the scientific community at the time of the course, if suitable; or that will participate to a well-established national or international Hackatons.
Upon completion of their work, students will be required to carefully document their project work through a scientific report in the form of a “4-page + bibliography” double-column paper, which they will present at a final workshop through a presentation and a possible demo (depending on the project).
Students will receive some training on how to prepare and present a report/paper according to widely accepted standards of the scientific community and will participate to the peer reviewing process of such reports.

Dublin descriptors
Knowledge and understanding Students will learn how to:
organize and structure a scientific research-oriented project;
define objectives, methodologies and validation strategies for a research/development activity;
understand the standards and conventions for writing a scientific conference paper in double-column format;
understand how to frame and communicate the most relevant results of a project for the scientific community;
understand the principles of peer review and scientific evaluation;
interpret and critically analyze research problems in areas such as audio and acoustic signal processing, computational acoustics, electronics and related fields.
Applying knowledge and understanding Students will be able to:
plan and carry out a research or development project in collaboration with peers;
apply appropriate theoretical and technical tools to address a scientific problem, validate results, and document the work in the form of a structured conference-style scientific paper;
identify and clearly highlight the most relevant and novel contributions of their work for the scientific community;
prepare and deliver a professional presentation and demonstrate a working prototype or system.
Making judgements Students will be able to:
translate a research idea or challenge into a structured project plan;
select appropriate methodologies and tools;
evaluate the quality and validity of results;
assess the relevance and impact of their findings with respect to the scientific community;
critically assess both their own work and the work of others through a peer-review process.
Communication Students will learn to:
write a concise and well-structured scientific conference paper according to widely accepted academic standards;
present and discuss their project results in a workshop setting using appropriate scientific language;
effectively communicate the most significant contributions of their work to a scientific audience;
provide constructive and rigorous peer reviews of other students’ work.

Programma

The scientific project that the students will be able to choose among will concern a wide variety of topics ranging from Audio and Acoustic Signal Processing, Multi-Media Signal Processing, Computational Acoustics, Room Acoustics, Vibro-Acoustics, Bio-Acoustics, Electronics and Electroacoustics, etc.

Modalità d'esame

Prova orale obbligatoria
Progetto/i - Elaborato/i obbligatorio, di gruppo, con revisioni periodiche, con presentazione/discussione finale
The final evaluation of the student’s work will be based on a number of parameters, including the following:
Quality and organization of the written report;
Quality of the presentation;
Content (thoroughness, soundness, originality, validation, etc.);
Participation and support;
Proactivity and independence;
Reviews coming from a panel of researchers;
Quality of their peer review.
Depending on the project, students will be able to work in small teams of 2, maximum 3 people. Some exceptions to this rule will be granted depending on the type of project.

Codice insegnamento 057871

MUSIC PRODUCTION TECHNOLOGIES 2° anno · 1° semestre · 10 CFU · IINF-05/A · 0 file

Music production technologies are in constant evolution, but they all share common features of data organization, visualization, responsivity, etc. In past few years, technology innovation has had a great impact on music…

Scheda dell'insegnamento

Obiettivi formativi

Music production technologies are in constant evolution, but they all share common features of data organization, visualization, responsivity, etc. In past few years, technology innovation has had a great impact on music production. For this reason, in order to be able to research and implement technological solutions for the music industry, it is important to develop a solid knowledge on the music production process.
This Module will offer a practical overview of the music production process with specific focus on its technical implementation, with reference to three specific case studies: Record Productions; Soundtrack Production; and Production of Functional Music.

Knowledge and understanding: Students will acquire theoretical and technical knowledge of the music production process and its main technological components. They will understand the principles of recording studio design, audio systems and signal flow, monitoring, synchronization, Digital Audio Workstations, microphones and recording chains, as well as the fundamental techniques and workflows of recording, mixing and mastering.
Applying knowledge and understanding: Students will be able to apply the acquired knowledge to the design and implementation of music production workflows. They will be able to select and configure appropriate recording technologies, microphones, signal chains, monitoring systems and Digital Audio Workstations, and to apply recording, editing, mixing and mastering techniques according to specific production requirements.
Making judgements: Students will develop the ability to critically evaluate technical and production choices in relation to specific musical and production goals. They will be able to compare alternative equipment, recording techniques, signal-processing strategies and production workflows, selecting appropriate solutions according to technical requirements, sonic characteristics and the intended final result.
Communication: Students will be able to clearly communicate technical and production choices using appropriate terminology. They will present and discuss music production projects, explaining the adopted workflow, recording and processing techniques, technical decisions and final results, and will be able to engage in critical discussion with peers and instructors.
Learning skills: Students will develop the ability to independently explore music production technologies, tools and workflows. Through practical and project-based activities, they will learn to analyse technical requirements, experiment with alternative production solutions and transfer acquired knowledge to different music production contexts.

Programma

This module discusses the music production techniques with specific reference to the above three case studies. For each one of them, it covers:
Recording Studio Design
Audio systems fundamentals: analog vs. digital, multitrack recording, signal processing, large-format digital consoles, console vs. controller, recording platform, I/O and DSP comparison, audio cabling (signal types and cable runs, signal flow)
Recording studios: types, layouts
Monitoring: overview, types ( in-wall, mid-field, subwoofer, nearfield), amplification
Engines, clock/synchronization, etc.
Digital Audio Workstation - overview, structure and organization, workflow
The recording chain
Microphones: specifications; types ( inside, condenser, moving coil, ribbon, etc.); signal transmission; preamplifiers; setup; placement
Recording techniques: stereo pair; X/Y and spaced pair; drum set, piano, voice, stringed instrument, etc. recording;
Mixing - setup (organization, ergonomics, and phase relationships); equalization; reverb and delays; automation; dynamics processing; vocal, drums, and instrumental mixing.
Mastering - monitoring; audio file editing and noise reduction; equalization; dynamics processing; serial, parallel and multiband processing; compression techniques; control and balance of stereo image; stereo L-R vs M-S processing; use of reverb and harmonic enhancers; limiters and levels for CD and streaming platforms; loudness, LUFS and dBs; dithering.

Modalità d'esame

Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The assessment consists of a group project focused on the production of a soundtrack and sound design for visual content. Students are required to develop the complete audio production and present the project to the class, explaining the adopted workflow, technical and creative choices, and final results. The project and its presentation determine the final grade.
Type of assessment: Group Project
Description and relative Dublin descriptor:
Production of a soundtrack and sound design for visual content, applying proje the technologies, techniques and workflows introduced during the course. 1,2,5
Design and implementation of the audio production workflow, including recording and/or sound acquisition, editing, synchronization, signal processing, mixing and mastering according to the requirements of the audiovisual project. 2,3
Critical evaluation of technical and creative choices, considering their effectiveness in relation to the visual content, the intended sonic result and the overall audiovisual experience. 2,3
Presentation of the project to the class, explaining the production objectives, workflow, technical and creative choices, and final results. 3,4

Codice insegnamento P011275600

MUSICAL ACOUSTICS 2° anno · 1° semestre · 10 CFU · IINF-03/A · 0 file

In this second module we introduce a number of tools for the analysis and the characterization of musical instruments. Three main categories of instruments will be analyzed, i.e. string instruments, wind instruments,…

Scheda dell'insegnamento

Obiettivi formativi

In this second module we introduce a number of tools for the analysis and the characterization of musical instruments. Three main categories of instruments will be analyzed, i.e. string instruments, wind instruments, drums and percussions. They will be described in terms of assembly and coupling of the elements described in the first module.
Moreover, starting from the mathematical models introduced and discussed in Module 1, we will show how to measure the parameters of such models and describe how to use them in applications of behavioral prediction, instrument characterization, and optimization.

After attending the lectures and practice sessions, the students will know how to:

  • characterize the main classes of musical instruments (string, wind and percussion);
  • derive and analyze in detail the equivalent circuit of these musical instruments;
  • describe the excitation mechanism of the main classes of instruments.
    After attending the laboratory sessions, the students will know how to:
  • measure the frequency response function of a resonant structure;
  • measure the eigenfrequencies of a resonant structure;
  • measure the acoustic directivity pattern of an acoustic source;
  • setup a COMSOL study for characterizing a musical instrument.

Programma

Theory:
String instruments: guitar, piano and violin;
Reed and lip excitation;
Lip-driven brass instruments;
Woodwinds;
Flutes and pipes;
Drums and percussions.
Seminars
Vibrational Analysis
Measurement instruments and their function
Measuring the bridge admittance
Descriptors: moments of the impulse response, Energy Decay Relief, modal frequencies, etc.
Vibrational characterization of a musical instrument
Acoustic radiative analysis
Measuring the radiance pattern
Acoustic characterization of a musical instrument
Timbral analysis
Normalized timbral capture
Timbral descriptors and their interpretation

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, senza presentazione/discussione finale
The exam consists of a written exam and a project on which the students can work during the semester.

Testi di riferimento

N.H. Fletcher and T.D. Rossing, The physics of Musical Instruments, Editore: Springer
A. Chaigne and J. Kergomard, Acoustics of Musical Instruments, Editore: Springer - ASA Press

Codice insegnamento P889626465

NUMERICAL MODELING AND SIMULATION IN ACOUSTICS 2° anno · 1° semestre · 5 CFU · IIND-02/A · 0 file

Noise levels have become an issue for urban communities for many years due to the rapid growth of air and ground traffic densities. Additionally to these noise sources, many other machines producing significant noise…

Scheda dell'insegnamento

Obiettivi formativi

Noise levels have become an issue for urban communities for many years due to the rapid growth of air and ground traffic densities. Additionally to these noise sources, many other machines producing significant noise levels surround our daily activities and contribute to deterioration of quality of life. A quite large part of this noise is generated by vibrating structures and manufactures have considered the noise level of their products as a relevant design parameter. Therefore, the demand towards reliable and computational efficient numerical simulation programs is strongly growing, so that these tools can be used within a virtual prototyping development cycle.
In this course we present the state-of-the-art overview of numerical schemes to efficiently solve the acoustic conservation equations (unknowns are acoustic pressure and particle velocity) and the acoustic wave equation (pressure or acoustic potential formulation). Thereby, the different equations model both vibrational and or induced sound generation and its propagation. The course will contain both the physical / mathematical modelling, advanced numerical schemes, such as higher order and spectral finite elements elements as well as discontinuous Galerkin methods to solve the underlying partial differential equations together with their implementation focusing on relevant practical applications.

Knowledge and understanding
The lectures and the computer labs will allow the student to develop:

  • a wide knowledge of numerical methods for hyperbolic differential equations;
  • the theoretical properties of numerical methods and the algorithms for solving various mathematical problems arising in acoustics;
    Applying knowledge and understanding
    The final project will allow the students to:
  • critically apply advanced numerical models to mathematical problems stemming from real-world engineering applications independently of their field of specialization;
    Making judgements
    The final project will allow the students to:
  • motivate the choice of the adopted methods and tools;
    Communication
    The final project will allow the students to:
  • critical reasoning, interpretation, and communication of the results obtained in the light of the theory through the implementation and the use of the algorithms;
    It is expected to have critical knowledge and understanding, and a fully comprehensive ability to distinguish the different situations, make reasoned choices, and justify the procedures followed. It also expected correctness and a rigorous exposition of the theory.

Programma

1. Mathematical models for acoustics. Review of mathematical modeling with partial (hyperbolic) differential equations. General Properties of Waves. One Dimensional Waves on a String. Waves in Elastic Solids. Waves in Ideal Fluids. Second-order differential models. Waves in thin Rods and Plates. Helmholtz’s equation. Elasto-acoustic coupling.
2. Finite elements for hyperbolic equations. Review of finite element formulation for the stationary case. Low-order finite element s (FE) and high-order spectral elements (SE) discretization. Analysis of the proposed method: stability, accuracy, dispersion, and dissipation properties.
3. M ultidimensional hyperbolic problems. S emidiscretization with finite element s of some relevant models in Section 1. S trong and weak treatment of the boundary conditions. Radiation conditions for problems in unbounded domains. Numerical treatment of boundary conditions for hyperbolic systems. Temporal discretization: t he forward and backward Euler schemes, t he upwind, L ax-Friedrichs, and Lax-Wendroff schemes. Newmark and Runge-Kutta methods.
4. Nonlinear hyperbolic problems. Scalar equations and hyperbolic systems (Burgers and Euler equations). Approximation by finite difference and finite volume methods. Choice of the numerical fluxes and t emporal discretizatio n.
Labs sessions. All methods discussed in the lectures will undergo numerical investigation during the laboratory sessions, utilizing computer codes.

Modalità d'esame

Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
Evaluation
The course will include lectures and computer labs. The computer labs will concentrate on specific methodologies, case studies, or practical applications covered in the lectures. Attendance is strongly recommended. The exam will consist of an oral discussion of homework exercises (project) assigned during the course, and will cover the main topics of the program.

Testi di riferimento

Alfio Quarteroni, Numerical Models for Differential Problems, Editore: Springer, Anno edizione: 2017, ISBN: 978-88-470-1070-3
David R. Bergman, Computational Acoustics - Theory and Implementation, Editore: Wiley, Anno edizione: 2018, ISBN: 978-1-119-27728-6
Stefan Bilbao, Numerical Sound Synthesis, Editore: Wiley, ISBN: 978-0-470-51046-9

Codice insegnamento P302896184

ROOM ACOUSTICS 2° anno · 1° semestre · 10 CFU · IIND-07/B · 0 file

Obiettivo del corso è quello di insegnare i fondamenti necessari per una corretta progettazione acustica degli spazi confinati all'interno di un involucro edilizio. La prima parte del corso (modulo 1) si focalizza sui…

Scheda dell'insegnamento

Obiettivi formativi

Obiettivo del corso è quello di insegnare i fondamenti necessari per una corretta progettazione acustica degli spazi confinati all'interno di un involucro edilizio.
La prima parte del corso (modulo 1) si focalizza sui parametri acustici che caratterizzano l'involucro dell'edificio. Partendo dal modello fisico, si definiscono i modelli semplificati di calcolo e si approfondisce la loro applicazione in casi studio.
La seconda parte del corso (modulo 2) si dedica allo studio del campo sonoro di uno spazio confinato all'interno dell'involucro edilizio. Partendo dal modello fisico, si definiscono i modelli semplificati di calcolo e si approfondisce la loro applicazione in casi studio, in particolare nelle aule scolastiche, nei teatri, negli spazi polifunzionali e nelle sale da concerto.
Il corso si conclude con la visita allo spazio polifunzionale Roberto de Silva, Milano, progettato dalla docente del corso stesso.

Gli studenti sono in grado di applicare i modelli di calcolo semplificati per la valutazione dei principali parametri acustici definiti durante il corso, ad un generico caso studio che riguarda sia l'involucro sia lo spazio confinato al suo interno.

Programma

Seguono gli argimenti trattati nle modulo 1:

  • Sound reduction index
  • Weighted normalized impact sound pressure level
  • Equivalent sound pressure level
  • absorption materials, coefficients and classficiation
  • Standards of refenece
  • sound abosrption measurements in revereberation chamber
    Seguono gli argomenti trattati nel modulo 2:
  • geometrical acoustics
    -room acoustic indexes
    -room acoustic design for classrooms
    -room acoustic design for theatres, auditoria, multipurpose room
  • The multipurpose Auditorium Roberto de Silva, Rho

Modalità d'esame

Written exam in which it is requested to apply the different indexes to a now case study and to describe an already studied one during the course.

Codice insegnamento P856630760

SOUND ANALYSIS, SYNTHESIS AND PROCESSING MODULE 1: DIGITAL AUDIO ANALYSIS AND PROCESSING 2° anno · 2° semestre · 5 CFU · IINF-03/A · 1 file

This module is part of a course that offers a comprehensive collection of fundamentals tools for for audio and acoustic signal analysis and processing, as well as synthesis and rendering. This specific module focuses…

Scheda dell'insegnamento

Obiettivi formativi

This module is part of a course that offers a comprehensive collection of fundamentals tools for for audio and acoustic signal analysis and processing, as well as synthesis and rendering. This specific module focuses on tools for audio analysis and processing.
A wide range of applications will be covered, including time and pitch scaling, sound restoration and improvement, music information retrieval, sound classification, acoustic source localization and tracking, adaptive processing, etc.

The student:

  • knows the fundamentals of audio and acoustic processing required for designing and implementing audio processing chains.
  • knows the fundamentals of audio signal modeling, psycoacoustics and audio restoration
  • knows the basics of statistical audio processing and adaptive linear filtering with applications of Wiener filtering and Linear Predicting Coding.
  • implements algorithms for single and multichannel audio processing using MATLAB; knows the main algorithms for sound source localization and separation
  • works in small groups and is able to deliver information about algorithm design and the obtained results

Programma

Module 1 - Digital audio analysis and processing
In this first part we cover relevan applications of digital audio signal processing for various applications, ranging from audio restoration to adaptive audio processing and array processing. After an introduction to acoustics and psycho-acoustics, we will cover:
Sinusoidal modeling - resolution of periodic signals and windowing, spectral interpolation, sinusoidal peak tracking and continuation. Speech modeling (synthesis through analysis). Channel and phase vocoder design.
Statistical audio processing - Wiener filtering: problem statement, orthogonality principle, Wiener-Hopf eqs., error performance surface. Typical applications of Wiener filtering: echo cancellation, noise cancellation, etc. Linear Prediction Coding: problem statement and application. Kalman filtering: problem statement, Bayesian model. Equalization: typical DSP structures for equalization.
Audio restoration - noise modeling, removal of typical audio artifacts: clicks, crackles, background noise, hissing noise, wow and flutter, nonlinear distortions. Statistical filtering and equalization
Fundamentals of microphone array signal processing - data model, non parametric methods (Delay-and-sum beamforming). Parametric methods (MUSIC, ESPRIT). Multichannel Blind Sound Source Separation (BSS)

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, senza presentazione/discussione finale
The student is required to do two homework assignments (which will count for 40% of the final grade) and a final exam (which will count for 60% of the final grade). Students also have the opportunity to improve their grade by developing a (non compulsory) project (necessary condition to aspire to a "cum laude"), which will grant them a grade increment.
The project must be preliminarily negotiated with a course instructor and can be either a software application or a research paper. Projects can be combined for the two modules, and can be done in collaboration with other students. Projects can also be combined with projects of other courses, upon explicit approval of all involved instructors.

Testi di riferimento

Mark Kahrs, Karlheinz Brandenburg, Applications of Digital Signal Processing to Audio and Acoustics, Editore: Springer-Verlag, Anno edizione: 1998, ISBN: 9781475783865
Simon Haykin, ADAPTIVE FILTER THEORY, Editore: Pearson, Anno edizione: 2014, ISBN: 9780273764083
Simon J. Godsill, Peter J. W. Rayner, Digital Audio Restoration: A Statistical Model Based Approach, Editore: Springer-Verlag, Anno edizione: 1998, ISBN: 9783540762225
Petre Stoica, Randolph Moses, Introduction to Spectral Analysis, Editore: Prentice Hall, Anno edizione: 1997, ISBN: 9780132584197

Codice insegnamento P437812826

SOUND ANALYSIS, SYNTHESIS AND PROCESSING MODULE 2: SOUND SYNTHESIS AND SPATIAL PROCESSING 2° anno · 2° semestre · 5 CFU · IINF-05/A · 0 file

This module is part of a course that offers a comprehensive collection of fundamentals tools for for audio and acoustic signal analysis and processing, as well as synthesis and rendering. This module focuses on tools for…

Scheda dell'insegnamento

Obiettivi formativi

This module is part of a course that offers a comprehensive collection of fundamentals tools for for audio and acoustic signal analysis and processing, as well as synthesis and rendering. This module focuses on tools for audio and acoustic signal synthesis and rendering.
A wide range of applications will be covered, including musical sound synthesis, sound effects, sound reverberation, 3D audio capturing and rendering, etc.

The student will acquire the fundamental tools of audio and acoustic signal processing and will acquire the ability to use such tools for applications of audio and acoustic signal analysis, synthesis, processing, improvement and restoration.

Programma

Sound synthesis and spatial processing
In this second part we introduce techniques for sound synthesis and spatialization/reverberation; and for a high-end rendering of audio signals. Using numerical methods and signal processing tools, we discuss traditional techniques for musical sound synthesis such as wavetable, additive, subtractive, granular and nonlinear synthesis techniques; more advanced sound synthesis solutions such as modal synthesis and sound synthesis through physical modelling with particular reference to finite elements, digital waveguide networks, wave digital filters, etc.
We also introduce techniques for digital audio enhancement/improvement such as sound effects, reverberation and spatialization. Finally, we discuss advanced sound rendering techniques based on multi-channel processing and spatial (array) processing such as ambisonics, acoustic beamforming/projection and wavefield synthesis.
Sound synthesis: additive and subtractive synthesis, granular synthesis, wavetable synthesis, nonlinear distortion (ring modulation, phase/frequency modulation), fractal synthesis.
Physical sound modelling for timbral synthesis: modal synthesis and functional transformation method, finite elements, Cordis-Anima, digital waveguides, wave digital structures, object-based modelling.
High-end sound effects and sound processing: modulated digital delay lines, sound effects, reverberation and spatialization algorithms (DSP solutions, geometric methods, physical modelling methods, perceptual techniques), binauralization, head-related transfer function, multi-channel processing, ambisonics.
Space-time processing, clusters or arrays of loudspeakers, 3D audio: vector-based amplitude panning, uniform and non-uniform speaker arrays, beamforming and acoustic projection, polar emission shaping, wavefield synthesis, ambisonics rendering, higher-order loudspeakers.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, senza presentazione/discussione finale
The student is required to do two homework assignments (which will count for 40% of the final grade) and a final exam (which will count for 60% of the final grade). Students also have the opportunity to improve their grade by developing a (non compulsory) project (necessary condition to aspire to a "cum laude"), which will grant them a grade increment.
The project must be preliminarily negotiated with a course instructor and can be either a software application or a research paper. Projects can be combined for the two modules, and can be done in collaboration with other students. Projects can also be combined with projects of other courses, upon explicit approval of all involved instructors.

Testi di riferimento

Mark Kahrs, Karlheinz Brandenburg, Applications of Digital Signal Processing to Audio and Acoustics, Editore: SpringerVerlag, Anno edizione: 1998, ISBN: 9781475783865

Codice insegnamento P307809425

VEHICLE ACOUSTICS 2° anno · 1° semestre · 5 CFU · IIND-02/A · 0 file

The goal of the course is to introduce students to advanced knowledge related to acoustic and vibrational phenomena taking place in road and rail vehicles. The course covers both interior noise in passenger…

Scheda dell'insegnamento

Obiettivi formativi

The goal of the course is to introduce students to advanced knowledge related to acoustic and vibrational phenomena taking place in road and rail vehicles. The course covers both interior noise in passenger compartments and vehicle exterior noise, with its related environmental impact. It presents analytical/numerical models and experimental techniques to investigate the main sound sources and vibroacoustic paths influencing the acoustic performance of ground vehicles, in terms of both exterior noise pollution and interior NVH comfort. Each topic is treated both theoretically and practically, through traditional lectures, experimental/computer labs, and dedicated seminars.

By the end of the course, students will acquire knowledge regarding:
the physics of generation mechanisms responsible of noise radiation in road and rail vehicles (in both exterior and interior problems);
state-of-the-art analytical and numerical modelling approaches for noise and vibration transmission;
application of international standards for to the assessment of acoustic performance of ground vehicles
passive and active mitigation measures proposed to deal with specific noise phenomena;
up-to-date methodologies applied to industrial cases (seminar lessons).
Concerning the ability to apply the acquired knowledge and understanding, students will be able to:
identify the main causes of undesired noise phenomena and consequently apply adequate mitigation solutions;
assess the overall acoustic performance of a ground vehicle applying or taking inspiration from international standards.
The development of group assessments will allow students to:
enhance their ability of discussing technical results and solutions with a critical point of view;
test and improve their teamwork capabilities by coordinating the solution of laboratory activities.

Programma

The course topics are discussed through lectures, laboratory activities (experimental and numerical), and seminars, held by experts in the field of applied vibroacoustics.
The course is intended to discuss all the main topics related to the noise phenomena taking place in ground vehicles, considering both road and rail vehicles:
Noise in road vehicles:
analysis of the main source mechanisms (powertrain, tyre, aerodynamics,…)
modelling of the exterior noise radiation and Standard approaches for the assessment of the pass-by noise
study of the sound in the road vehicle compartment in terms of Structure Borne Noise (SBN) and Air Borne Interior Noise (ABIN)
Noise in rail vehicles:
study of the noise sources (rolling noise, curve squeal, aerodynamic noise,…)
experimental techniques and Standards methodologies for pass-by noise assessment
interior noise and vibroacoustic comfort in rail vehicles
Passive and active solutions to improve noise radiation and NVH performance of vehicles.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale obbligatoria
Progetto/i - Elaborato/i obbligatorio, individuale, senza revisioni periodiche, con presentazione/discussione finale
Students will face an oral exam organized in two parts:
questions on the topics covered during the lectures;
discussion on the reports of group assignments. Regarding this second part, students are requested to prepare technical reports on the assignments given during the experimental and computer labs, to be delivered before the final exam.
Final Grading: students will receive a single grade for the entire oral exam (consisting of the two parts illustrated above).

Testi di riferimento

David Thompson, Railway Noise and Vibration - Mechanisms, Modelling and Means of Control, Editore: Elsevier, Anno edizione: 2010, ISBN: 978-0-08-045147-3
Gang Sheng (Gang Sheng Chen), Vehicle Noise, Vibration, and Sound Quality, Editore: SAE International, Anno edizione: 2012, ISBN: 978-0-7680-3484-4
Xu Wang, Vehicle Noise and Vibration Refinement, Editore: CRC Press, Anno edizione: 2010, ISBN: 978-1439831335
Ulf Sandberg; Jerzy A. Ejsmont, Tyre/Road Noise Reference Book, Editore: Informex, Anno edizione: 2002, ISBN: 978-1439831335

Codice insegnamento 062074

ADVANCED ALGORITHMS AND PARALLEL PROGRAMMING 1° semestre · 5 CFU · IINF-05/A · 0 file

This course deals with advanced topics in algorithm design and parallel programming. The course is structured in two parts. The first part focuses on general methods and algorithms that are not usually covered by the…

Scheda dell'insegnamento

Obiettivi formativi

This course deals with advanced topics in algorithm design and parallel programming.
The course is structured in two parts. The first part focuses on general methods and algorithms that are not usually covered by the course “Algoritmi e Principi dell’Informatica”, such as randomization, amortization, approximation algorithms, string searching/matching, etc.
The second part deals with parallel programming: Automatic vs. Manual Parallelization, Parallelizing Compilers, Parallel Patterns (map, reduce, scan, etc.), Partitioning (domain vs. functional decomposition), Communication (cost, latency, bandwidth, visibility, synchronization, etc.), Data Dependencies and Tools/languages such as OpenMP and MPI.
An innovative teaching activity (1 CFU), Blended Learning & Flipped Classroom, is planned for some of the topics covered by the course.

The expected learning outcomes of the course are expressed according to the Dublin Descriptors, as detailed below.
Knowledge and understanding (DdD1)
Students will learn how to:

  • develop advanced algorithms by analyzing their complexity and by exploiting randomized approaches, randomized based data structures, dynamic programming, amortized analysis, competitive analysis, and approximate programming;
  • design and analyze a parallel algorithm by exploiting parallel patterns, tools, and languages for parallel programming.
    Applying knowledge and understanding (DdD2)
    Given specific problems, students will be able to:
  • understand complex problem descriptions;
  • design algorithms and analyze their complexity;
  • design and implement parallel algorithms;
  • profile and fine-tune the performance of complex programs.
  • understand where the pitfall and issues may come in (parallel) programming.
    Making judgments (DdD3)
    Given a relatively complex problem, students will be able to:
  • define the relevant data sets required to judge the quality of the proposed solution;
  • understand if the obtained performance is in line with the expected complexity;
  • understand if the proposed solution scales well or not;
  • understand where previous approaches are relevant or not for a given problem.
    Communication skills (DdD4)
    Students will learn to:
  • present their work discussing the pros and cons of the proposed solution.
  • present the existing state of the art by showing where it could be improved or where it is inconsistent;
    Learning skills (DdD5)
    Students will understand how a complex algorithm, possibly parallel, has to be analyzed, designed, and assessed.
    They will play with real problems, understanding where pitfalls may come when you move from a theoretical formulation down to an actual implementation considering existing tools and architectures.

Programma

Part I
Course Objectives and Introduction
Randomized algorithms: Las Vegas and Monte Carlo algorithms. Analyzing Randomized algorithms.
Hiring Problem and Generating Random Permutations.
Randomized Quicksort. Worst-case analysis. Average-case analysis.
Karger’s Min-Cut Algorithm. Faster version by Karger and Stein.
Randomized data structures: Skip Lists, Treaps.
Dynamic Programming: Memoization. Examples of Dynamic Programming: String Matching, BDDs, etc.
Amortized Analysis: Dynamic tables, Aggregate method, Accounting method and Potential method.
Approximate programming.
Competitive Analysis Self-organizing lists Move-to-front heuristic.
Part II
Design of Parallel Algorithms - Parallel Algorithms and Parallel Programming.
Parallel patterns: Map, Reduce, Scan, Mapreduce, Kernel Fusion, etc.
Tools and languages for parallel programming: Posix Threads, OpenMP, Message Passing Interface.
Comparison of Parallel Programing Technologies.
Optimizing and analyzing parallel performance.
Examples of Parallel Algorithms.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
Valutazione continua facoltativa (a scelta dello studente)
The assessment of the students is organized according to the schedule provided by the School's Academic Calendar.
The evaluation is based on a written exam focused on:

  • The solution of some problems based on the practical application of the course concepts and techniques;
  • Open answers to some questions on the course concepts and techniques.
    After each written test, the teacher can complement the assessment procedure with an oral examination.
    Continuous assessment will be implemented through two intermediate tests: one as a mid-term test and one at the end of the semester. All students are admitted to the second test, regardless of the outcome of the first one. The achieved results will be valid till the end of the academic year or till a student ask to repeat the given part. Each intermediate test contributed to the final grade with 16 points. The exam is considered passed if, in both parts, the students get a grade of at least 7, and the sum of the two grades is greater than or equal to 18. 30 cum laude is assigned if students get a sum of grades greater than 30.
    If either the first or the second test has a grade less than 7 or the total is less than 18, the student has to take the written test on one of the following dates according to the schedule provided by the School's Academic Calendar. The student may use one of the valid partial results on the next exam dates. In this case, a customized written exam version will be provided to the student for the parts not yet valid.
    Participation in innovative learning classroom activities will be assessed and will contribute to the final evaluation grade. In particular, in the case of valid grades, some questions of the written exam could be skipped.
    The written examination assesses knowledge and understanding of the course foundations (DdD1), the ability to apply advanced algorithms, randomized and approximation techniques, and parallel programming methods and performance-analysis methods to specific problems (DdD2), and the ability to compare alternative solutions and judge their correctness, efficiency and scalability (DdD3). Open-answer questions, the oral examination when applicable, and the presentation and discussion of active-learning activities assess communication skills (DdD4). Exercises involving unfamiliar problems and the independent transfer of methods to new algorithms and architectures assess learning skills (DdD5).

Testi di riferimento

T. Cormen, C. Leiserson, R. Rivest and C. Stein, Introduction to Algorithms, Editore: MIT Press, Cambridge; 3rd edition, Anno edizione: 2009, ISBN: 978-0262533058
Rajeev Motwani, Prabhakar Raghavan, Randomized Algorithms, Editore: Cambridge University Press, Anno edizione: 1995, ISBN: 978-0521474658
Michael McCool, James Reinders, Arch Robison, Structured Parallel Programming: Patterns for Efficient Computation, Editore: Morgan Kaufmann, Anno edizione: 2012, ISBN: 0124159931 http://parallelbook.com/
Peter Pacheco, An Introduction to Parallel Programming, Editore: Publisher: Morgan Kaufmann; 1 edition, Anno edizione: 2011, ISBN: 978-0123742605
parallel programming online material https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial
Additional material is available on the WeBeep platform of Politecnico di Milano https://webeep.polimi.it/login/index.php
Note: access restricted to course participants

Codice insegnamento P104308050

ADVANCED COMPUTER ARCHITECTURES 2° semestre · 5 CFU · IINF-05/A · 0 file

Main goal of the course is that the student understands all the major concepts used in modern microprocessors by the end of the semester. The course will cover the different forms of parallelism found in applications…

Scheda dell'insegnamento

Obiettivi formativi

Main goal of the course is that the student understands all the major concepts used in modern microprocessors by the end of the semester.
The course will cover the different forms of parallelism found in applications (instruction-level, data-level, thread-level, gate-level) and how these can be exploited with various architectural features. It will cover pipelining, superscalar, speculative and out-of-order execution, vector machines, VLIW machines, multithreading, graphics processing units, multicore and parallel homogeneous and heterogeneous architectures. Final goal is to show how the software interacts with the hardware to provide performance and how trends in technology, application and economics have driven and drive continuing changes in the field.

Expected learning outcomes
DdD 1 (Knowledge and understanding): Students will learn how to:
Understand and analyze the most advanced microprocessors and computer architectures
Evaluate and compare the performance of computer architectures
Understand the most advanced techniques to optimize the memory hierarchy
Manage the parallelism at instruction-level, thread-level, multi-processor level
Understand the mechanisms of streaming and vector processing widely used in modern GP-GPUs.
DdD 2 (Applying knowledge and understanding): Given specific problems and project cases, students will be capable to:
Analyze and compare specific architectural choices of a computer system
Evaluate the performance of computer architectures by applying appropriate metrics
Exploit the parallelism at several levels from instructions to threads to cores to vectors
DdD 3 (Making judgments): Given specific problems and project cases, students will be capable to analyze the performance goals and compare autonomously different computer architecture choices in terms of performance metrics
DdD4 (Communication skills): Students will learn how to present in a technical text and how to discuss in front of their colleagues the benefits and drawbacks of advanced computer architecture techniques.
DdD 5 (Learning skills): Students will be capable to learn autonomously the most advanced research techniques related to state-of-the-art microprocessor and parallel computer architectures

Programma

Main lectures topics:
Review of basic computer architecture: the RISC approach and pipelining, the memory hierarchy
Basic performance evaluation metrics of computer architectures
Techniques for performance optimization: processor and memory
Instruction level parallelism: static and dynamic scheduling; superscalar architectures: principles and problems; VLIW (Very Long Instruction Word) architectures, examples of architecture families
Thread-level parallelism
Multiprocessors and multicore systems: taxonomy, topologies, communication management, memory management, cache coherency protocols, example of architectures
Stream processors and vector processors; Graphic Processors, GP-GPUs, heterogeneous architectures

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale facoltativa (a scelta dello studente) o condizionata (a scelta del docente)
Progetto/i - Elaborato/i facoltativo (a scelta dello studente), di gruppo, senza revisioni periodiche, con presentazione/discussione finale
NOTE: The course IS in ENGLISH, which means that the exam HAS TO BE PASSED in English, e.g. you HAVE to WRITE IN ENGLISH during the written test.
The final examination may be taken in one of the following ways:
Way 1. WRITTEN EXAM (closed book, no notes or usage of laptop/mobile, etc. allowed) consisting of:
1.1 The solution of some design problems based on the practical application of the course concepts and techniques -- Expected learning outcomes 1, 2, 3, 4, 5, 6 and 7.
1.2 Questions on the course concepts and techniques - Expected learning outcomes 1, 2, 3, 4, 5, 6 and 7.
WAY 2. PROJECT-BASED EVALUATION (valid only for the 1st session after the course):
2.1 (1/3 of the final grade) Evaluated through the course via short written tests - Expected learning outcomes 1, 2, 3, 4
2.2 (2/3 of the final grade) Evaluated, via a project assignment, done in team up to 2 members, demonstrating the mastering of the course concepts and techniques. During the final project presentation, each team will be asked to answer some questions on ACA topics, not only related to the project. - Expected learning outcomes 1, 2, 3, 4, 5, 6 and 7.

Testi di riferimento

John Hennessy, David Patterson, Computer Architecture, A Quantitative Approach, Editore: Morgan Kaufmann, Fifth or Sixth Edition
Note: Additional information in slides and papers available through the course website.

Codice insegnamento P511863588

ADVANCED OPERATING SYSTEMS 1° semestre · 5 CFU · IINF-05/A · 0 file

The course has two goals; the first is to foster a deeper understanding of fundamental operating systems topics by exposing students to modern operating systems’ internals, both general purpose and embedded*. The…

Scheda dell'insegnamento

Obiettivi formativi

The course has two goals; the first is to foster a deeper understanding of fundamental operating systems topics by exposing students to modern operating systems’ internals, both general purpose and embedded*. The second but equally important goal is to provide practical experience with the design and development of OS components and/or system-level programs by means of a practical project proposed by the instructors. Depending on availability, some of the advanced course topics will be covered in seminars from industry experts.
[Note*: To build a broader knowledge and understanding of embedded systems it is suggested to follow also the Embedded Systems course]

Expected Learning Outcomes (ELO)
Upon successful course completion students will:
1. Knowledge and understanding
Know the mechanisms, policies and interfaces used by modern OSes to control and share, among running programs, resources such as processor, memory and other IO devices (through the device drivers).
Be aware of the main issues associated with concurrency that might arise in multi-process and multi-threaded system-level programs.
Know mechanisms, policies and interfaces adopted by modern OSes to manage modern storage peripherals ensuring proper access control to the data.
Know mechanisms and policies adopted by modern OSes to boot up, manage power consumption, virtualize resources, ensure security.
2. Application of knowledge and understanding
Be able to write multi-process, multi-threaded concurrent software for both embedded and general purpose multi-core systems.
Be able to write device driver software to interface with hardware peripherals.
Be able, depending on the choice of the project work, to design software using market-available technologies, possibly constrained by energy and performance requirements.
3. Making judgements
Be able to determine optimal policies for resource management given the requirements of real-world applications.
Be able to select the most suitable platform, operating system (or bare-metal programming) and development tools based on the application requirements and by adopting best industrial practices.
4. Lifelong learning skills
Be able to be follow and adopt future OSes technologies by adapting his/her knowledge with minimal effort in an ever-changing scenario.
Be able to undertake career paths in OS/embedded systems development.

Programma

The topics covered by the course will be addressed both theoretically and practically. For some of the course topics (related to the implementation of OS internals) we will mainly make references to the latest versions of the Linux source code although we will touch upon other Unix systems as well (e.g., MacOS’s XNU) and embedded OSes (FreeRTOS, Miosix). Part of the course will show practical examples on industrial boards (e.g., STM32/ARM) and, depending on availability, these boards can be borrowed by the students to finalise the course development project (which is optional). Besides, the course will cover practical use cases, tutorials and short introductions to the Linux Kernel Module APIs, POSIX C API, modern C++ threading API, GIT, GCC/CLANG, GNU Make etc. Concerning processor ISAs, the course will touch mainly Intel x86, ARM and RISCV. Depending on the availability of time, other modern system level languages (e.g., Rust) will also be touched upon.
The topics covered are the following:
Introduction and background
Main goals of an Operating System and its design patterns. Mechanisms and policies for mediating and regulating the access to system resources. Taxonomies of operating systems (monolithic, microkernel, hybrid, uni-kernels) with examples.
Resource Management and concurrency
Support for multi-process and multi-threaded execution. CPU scheduling for general purpose single and multiprocessors. Modern techniques for load-balancing processes on NUMA multiprocessors. Memory consistency basics and multi-threaded synchronization. Advanced locking techniques and lockless programming. Primitives for inter-process communication (IPC). Asynchronous programming. Deadlock and starvation. Virtual memory management. Basics of software and hardware virtualization, containers.
Peripheral and persistence management
Low-level access to peripherals (memory mapped vs port-based), communication buses (e.g. PCI), modern programmable interrupt controllers and interrupt management. Deferring interrupt work. Character based and block based IO. Development of modern device drivers. Overview of modern storage devices (HD, SSD) and file systems. The filesystem-centric view of peripherals.
Run-time support
Boot loaders and kernel initialization. Kernel device discovery (ACPI and device trees). The C runtime support, structure of dynamic libraries and linking. Overview of tools for development, analysis and profiling of embedded code.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i facoltativo (a scelta dello studente), di gruppo, senza revisioni periodiche, senza presentazione/discussione finale
The evaluation of the expected learning outcomes will be carried out through a written exam during the official "appello," which will include open-ended and closed questions, as well as exercises (ELOs 1, 2, 3, 4).
Students will have the option, should they so choose, to supplement the exam evaluation with a development project on topics proposed by the instructors.

Testi di riferimento

Slides, notes and other material available on the course's site https://www.vittoriozaccaria.net/#/r/aos
Remzi H Arpaci-Dusseau, Andrea C Arpaci-Dusseau, Operating Systems: Three Easy Pieces, Editore: CreateSpace Independent Publishing Platform; 1.00 edition, Anno edizione: 2018, ISBN: 198508659X https://pages.cs.wisc.edu/~remzi/OSTEP/
Note: Freely available on the web
Robert Love, Linux Kernel Development, Editore: Addison-Wesley Professional; 3rd edition, Anno edizione: 2010, ISBN: 0672329468
Daniel P. Bovet and Marco Cesati, Understanding the Linux kernel, Editore: O'Reilly, Anno edizione: 2006

Codice insegnamento P258649756

ADVANCED USER INTERFACES 1° semestre · 5 CFU · IINF-05/A · 0 file

Building advanced user interfaces that effectively meet the users' needs is a complex task. It is necessary to master design and evaluation processes that are far more complex than in more conventional interfaces. This…

Scheda dell'insegnamento

Programma

Building advanced user interfaces that effectively meet the users' needs is a complex task. It is necessary to master design and evaluation processes that are far more complex than in more conventional interfaces.
This module provides the needed background on Human Computer Interaction general methodologies.
Students will learn how to design, develop, and evaluate advanced user interfaces from a user experiences perspective.

Codice insegnamento P730964272

ARCHITETTURA DEI CALCOLATORI E SISTEMI OPERATIVI 2° semestre · 10 CFU · IINF-05/A · 0 file

Modelli di programmazione parallela e concorrente: processi e thread. Struttura interna del Sistema Operativo: gestione dei processi, memoria virtuale, File system e gestione delle periferiche. Introduzione ai circuiti…

Scheda dell'insegnamento

Programma

Modelli di programmazione parallela e concorrente: processi e thread.
Struttura interna del Sistema Operativo: gestione dei processi, memoria virtuale, File system e gestione delle periferiche.
Introduzione ai circuiti logici:algebra di Boole e porte logiche, funzioni combinatorie e blocchi funzionali combinatori, funzionamento dei bistabili, funzionamento della memoria.
Sottosistemi funzionali: bus e interfacciamento con memoria e periferiche.
Microarchitettura del processore: struttura e realizzazione cablata e microprogrammata.
Prestazioni del processore: memoria cache e pipelining.
Processore e istruzioni macchina (con un processore di riferimento), assemblaggio e collegamento.

Codice insegnamento P463807054

BASI DI DATI 1 1° semestre · 5 CFU · IINF-05/A · 1 file

Obiettivo della prima parte del corso è introdurre gli aspetti teorici delle basi di dati ed i linguaggi per la gestione e l’interrogazione dei dati in esse contenuti. La seconda parte del corso verte invece sui…

Scheda dell'insegnamento

Obiettivi formativi

Obiettivo della prima parte del corso è introdurre gli aspetti teorici delle basi di dati ed i linguaggi per la gestione e l’interrogazione dei dati in esse contenuti. La seconda parte del corso verte invece sui modelli concettuali, sulle metodologie e sulle tecniche per la progettazione di una base di dati a partire dai suoi requisiti. Superato il corso, lo studente sarà in grado di progettare e realizzare basi di dati di media complessità, e sviluppare applicazione che le utilizzino.

Descrittori di Dublino
Expected learning outcomes
Conoscenza e comprensione
Conoscere gli elementi basilari di un sistema per la gestione dei dati
Comprendere gli elementi sintattici e la semantica di un linguaggio di interrogazione
Conoscere i principali costrutti usati nel linguaggio SQL per definire e interrogare una base di sti relazionale
Comprendere i meccanismi di astrazione tipici della progettazione concettuale e logica dei dati
Capacità di applicare conoscenza e comprensione
Confrontare metodi formali di natura diversa e confrontare il loro potere espressivo
Comporre interrogazioni complesse a partire da interrogazioni semplici
Progettare gli schemi dei dati allo scopo di rappresentare efficacemente uno specifico problema
Autonomia di giudizio
Valutare la correttezza di una interrogazione relativamente ai fabbisogni informativi di un utente
Valutare le qualità di uno schema di dati
Confrontare i benefici e gli svantaggi di diversi progetti concettuali e logici
Capacità di apprendimento
Essere in grado di comprendere e apprendere nuovi paradigmi di accesso alle basi di dati
Essere in grado di confrontare e coniugare le conoscenze e competenze apprese nel contesto della progettazione dei dati con quelle dell’ingegneria del software

Programma

INTRODUZIONE AL CORSO
Il sistema informativo nell'azienda
Caratteristiche dei DBMS (Relazionali e NoSQL)
TEORIA RELAZIONALE
Il modello relazionale dei dati, sua definizione (informale e formale) e concetti fondamentali
Algebra relazionale: operazioni unarie e binarie
Interrogazioni in algebra relazionale e loro ottimizzazione
Datalog: definizione, interrogazioni ricorsive, specifica di vincoli di integrità,
LINGUAGGI PER BASI DI DATI
Introduzione a SQL: standardizzazione di SQL, domini SQL, vincoli e semplice definizione di tabelle
SQL come DDL: integrità referenziale, definizione di schemi e loro modifica, cataloghi relazionali
Interrogazioni SQL semplici, interrogazioni con ordinamenti e raggruppamenti, i nterrogazioni SQL complesse
Comandi di modifica e viste in SQL
Aspetti evoluti del DDL (cenni): indici, controllo dell'accesso, viste e controllo dell'accesso, trigger, procedure, transazioni
Elementi dei linguaggi delle basi di dati NoSQL
PROGETTAZIONE DI BASI DI DATI
Fasi della progettazione
Le astrazioni nella progettazione dei dati
Il modello Entità-Relazioni: definizione, associazioni, identificatori e gerarchie, proprietà delle gerarchie
Il ciclo di progettazione: fasi di progettazione, strategie, qualità di un progetto concettuale
Progettazione logica: fasi del progetto logico, eliminazione delle gerarchie, gestione degli identificatori, gestione degli attributi, gestione delle associazioni. Normalizzazione (cenni).
Progettazione fisica (cenni)
Uso di un database commerciale (MySQL)
Cenni di progettazione di basi di dati NoSQL

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
L'esame prevede una verifica scritta su tutti gli argomenti dell’insegnamento.
Modalità di verifica
Descrizione
Risultato di apprendimento perseguito
Prova scritta ed eventuale prova orale se richiesta dal docente
Esercizi di tipo progettuale:
· Formulazione di interrogazioni usando i linguaggi formali
· Formulazione di interrogazioni e vincoli di integrità usando SQL
· Progettazione concettuale e logica di una base di dati usando il modello relazionale dei dati
· Domande di carattere teorico sugli argomenti del corso
1,2,3,5
Le modalità e gli appelli di esame saranno comunque in accordo con quanto previsto dalla Scuola di Ingegneria Industriale e dell'Informazione, e riportato sul relativo sito Web.

Testi di riferimento

Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone, Basi di dati: Modelli e Linguaggi di Interrogazione 3/ed, Editore: McGraw-Hill Libri Italia, Anno edizione: 2009, ISBN: 9788838666001 http://www.ateneonline.it/atzeni3e/homeA.asp
Note: English edition: Database systems, McGraww-Hill
Daniele Braga, Marco Brambilla, Alessandro Campi, Eserciziario di Basi di dati, Editore: Esculapio, Bologna, Anno edizione: 2009, ISBN: 978-88-7488-228-1 http://www.editrice-esculapio.it/shop/product/129/Braga-Brambilla-Campi-Eserciziario-di-basi-di-dati.asp

Codice insegnamento P021849682

BIOLOGIA APPLICATA AL RESTAURO 1° semestre · 5 CFU · BIOS-01/C · 0 file

Il corso si propone di fornire conoscenze di base sulle problematiche relative al riconoscimento, agli effetti correlati all'alterazione di materiali organici e inorganici da parte di organismi autotrofi ed eterotrofi…

Scheda dell'insegnamento

Programma

Il corso si propone di fornire conoscenze di base sulle problematiche relative al riconoscimento, agli effetti correlati all'alterazione di materiali organici e inorganici da parte di organismi autotrofi ed eterotrofi e alle modalità d'intervento. Inoltre, il corso intende fornire criteri metodologici per affrontare le problematiche relative agli interventi di rimozione e/o contenimento degli organismi deteriogeni con particolare attenzione a quelli vegetali e fungini. Attraverso la comprensione dei meccanismi di contenimento del degrado il corso contribuirà all'acquisizione del goal #12: Consumo e produzione responsabili dell'Agenda 2030 per lo Sviluppo Sostenibile.
Contenuti:
Meccanismi generali dei processi di biodeterioramento. Ecologia del biodeterioramento. Caratteristiche strutturali, funzionali ed ecologiche dei principali biodeteriogeni. I processi di biodeterioramento in relazione ai materiali dei beni culturali, con particolare riferimento a quelli vegetali. Prevenzione, controllo e tecniche di indagine del biodeterioramento.

Codice insegnamento 054927

CODE TRANSFORMATION AND OPTIMIZATION 2° semestre · 5 CFU · IINF-05/A · 0 file

Code Transformation and Optimization In modern computer science and engineering, code transformation techniques are critical to achieve the combined goals of combining programmer productivity and program execution…

Scheda dell'insegnamento

Obiettivi formativi

Code Transformation and Optimization
In modern computer science and engineering, code transformation techniques are critical to achieve the combined goals of combining programmer productivity and program execution efficiency in terms of time and energy. Yet, it is a skill mastered by few – there are less than 1.5 compiler construction expert for every 1000 software engineers, but almost 2 jobs in compilers for every 100 in software engineering!
The course is designed to provide an overview of code transformation, analysis and optimization techniques needed to effectively produce optimized code.
To compiler and EDA tool engineers, the course provides the basic tools to design and implement compilers and other code transformation and analysis tools, as well as an introduction to the most popular modern compiler framework, LLVM.
To software engineers, the course provides a grounding in system software design and development, as well as insights on the benefits and limitations of automation in software engineering. Moreover, as a compiler is a paramount of complex software systems, it provides a hands-on introduction to the design and implementation process for such systems. Finally, many advanced software engineering techniques such as program slicing are implemented on top of algorithms used in compiler construction.
To computer architects and embedded software engineers, the course provides crucial insights on the power and limits of compiler optimization, as well as to the need any processor architecture has of appropriate compilers.
To all computer science students, the course provides a “behind the scenes” view of the operation of software, and its automated manipulation – understanding compilers means being able to write better, more efficient code.

Dublin Descriptors
Expected Learning Outcomes
Knowledge and understanding
Understand the internal structure of a real-world compiler as a pipeline of passes, including its main components (front-end: parser, lexer; mid-end: optimizers; back-end: code generator, register allocator, instruction scheduler).
Understand the effectiveness and limitations of code analysis and optimization techniques (focusing in particular on loop transformation and data flow analysis)
Understand the main issues related to the linking phase
Applying knowledge and understanding
Be able to construct a full compiler for a toy language, generating assembly code for a RISC architecture.
Get familiarity with the LLVM compiler framework (an industry-grade, open source compiler).
Making judgements
Analyse and understand the effectiveness of specific code analysis and transformation techniques.
Define the architecture of a compiler framework and/or of specific compiler passes within a give infrastructure.
Understand the pitfalls and tradeoffs of compiler development (e.g., ease of debugging vs global performance optimization).
Communication
Develop the ability to communicate complex algorithmic concepts within a short timeframe.
Lifelong learning skills
Learn how to develop in practice a large scale project, understanding the importance of early assessing pitfalls and tradeoffs in development.

Programma

Introduction to Compiler Construction
Why compiling? Compilers vs interpreters
When to compile? JIT, AOT and static compilers
What to compile? Compilation units
Where to compile? Cross-compilation and split compilation
Overview of a compiler framework
Lexical analysis & parsing (review)
Statement and Data Structure Lowering
Optimization: machine independent and machine-dependent
Code Generation
Reading: Compiler Construction
Intermediate Representations
The Abstract Syntax Tree
Basic Blocks and branches
The Control Flow Graph
The Static Single Assignment Form
Reading: Program Dependence Graph
Reading: The LLVM Compiler Framework
Semantic Analysis & Type Checking
Symbol Tables
Type Checking
Runtime Organization
Data Memory layout
Activation Records
Dynamic Memory allocation
Reading: Garbage Collection
Code Generation
Code generation techniques: CISC and RISC processors
Low-level optimization techniques
Reading: Low-level Optimization
Dataflow Optimization
Principles and Fixed Point Computation
Applications
Reaching Definitions
Liveness Analysis
Constant Propagation
Reading: Dataflow Optimizations
Register Allocation
When to allocate registers
Graph Coloring
Linear scanning
Reading: Linear Scan Register Allocation
Parallelization and other optimization techniques
Instruction Scheduling
Loop Optimization (Software Pipelining, Loop Unrolling)
Limits to optimization: the aliasing problem
Reading: Program Optimization
Reading: Alias Analysis
Reading: Cache Optimization
Advanced Topics
Advanced Optimization Techniques: Polyhedral Transformations
The LLVM Compiler Framework
Laboratory
The sessions will be organized as follows:
Recursive descent language parsing
Transforming the Abstract Syntax Tree into a Control Flow Graph
Design and implementation of the symbol table
Function call translation
Liveness analysis
Register allocation (linear scan)
ARM code generation (table-based)
Readings
The papers presented in this bibliography are mostly for those who wish to get deeper insight on a specific topic.
Compiler Construction
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation, by C. Lattner and V. Adve.
Intermediate Representations
The Program Dependence Graph and Its Use in Optimization, by J. Ferrante et al.
The Basic SUIF Programming Guide, by G. Aigner et al.
Alias Analyis
Interprocedural pointer alias analysis, by M. Hind et. al.
Register Allocation
Linear Scan Register Allocation, by M. Poletto and V. Sarkar.
Optimization
Compiler Transformations for High-Performance Computing, by D. Bacon et al.
Cache Optimization
A Retrospective: A Data Locality Optimizing Algorithm, by M. S. Lam.
Garbage Collection
Uniprocessor Garbage Collection Techniques: a complete survey of Garbage Collection by P. Wilson.

Modalità d'esame

Prova orale facoltativa (a scelta dello studente)
Progetto/i - Elaborato/i facoltativo (a scelta dello studente), di gruppo, con revisioni periodiche, con presentazione/discussione finale
Valutazione continua facoltativa (a scelta dello studente)
Assessment
Evaluation is performed through a combination of oral exam and project work.
Type of Assessment
Description
Dublin descriptors
Oral Exam
The oral exam consists of a discussion of the topics covered in the course, including theoretical questions and questions aimed at assessing the ability of the student to connect different topics within the course syllabus.
1,2,3,4,5.
Assessment of laboratorial artefacts
The project work can be taken in groups of one to three students, and in the following two modes:
An independent project activity, consisting in the implementation of an optimization or analysis pass in the LLVM compiler framework (suggested only for students with previous experience in C/C++ programming);
A supervised project activity, consisting in the implementation of a compiler for a toy language targeting the ARM assembly language.
2,3,4,5.

Testi di riferimento

Andrew Appel with Jens Palsberg, Modern compiler implementation in Java, Editore: Cambridge University Press, Anno edizione: 2002
Note: The similar, but earlier, book "Modern compiler implementation in C" by Appel is available online for free download.
Aho, Lam, Sethi, and Ullman, Compilers: principles, techniques and tools, Editore: Prentice-Hall, Anno edizione: 2006
Note: We use only Chapter 11

Codice insegnamento P141170160

COMMUNICATION NETWORK DESIGN 1° semestre · 5 CFU · IINF-03/A · 0 file

The course is intended to provide students with the knowledge and tools necessary to design communication networks. In the first part of the course the different segments of networks (access, metro and core), with the…

Scheda dell'insegnamento

Obiettivi formativi

The course is intended to provide students with the knowledge and tools necessary to design communication networks. In the first part of the course the different segments of networks (access, metro and core), with the role of optical-network technologies. Practical network design problems will be solved thorugh mathematical formulations (integer linear programming) and heuristic approaches, also with the help of a laboratory activity based on the open-source software Net2Plan. Various techniques to ensure network survivability against failures will be described. In the second part of the course, fundamental concepts of queuing theory will be introduced to solve capacity planning an network dimensioning problems (based on, e.g., Erlang and Engset formulas) considering different users' behavior.

Knowledge and Understanding (DD1)

  • Students will learn how to:
    -- Use Integer Linear Programming to solve routing and capacity assignment problems
    -- Identify the right protection technique given the network characteristics
    -- Master fundamental tele-traffic formulas as Erlang B, C and Engset
    Applying Knowledge and Understanding (DD2)
    Given specific network characteristics, students will be able to:
    -- Model and implement network routing and capacity assignment problems
    -- apply fundamental tele-traffic formulas in realistic case-studies
    Making judgements (DD3)
    Students will be able to:
    -- understand the fundamental principles that govern the design of communication networks
    -- identify which protection strategy shall be appied based on service and network characteristics
    -- identify which tele-traffic fundamental formula shall be applied in practical capacity planning cases
    Communication (DD4)
  • Students will learn how to present to a network engineer, in written and oral form, the actual design and operation problem that is facing in a communication network

Programma

1 – Introduction on Optical Networks
Optical networking principles and challenges: telecom network overview, business models, traffic engineering vs network engineering vs network design. Enabling Technologies: optical fiber, optical transmitters, optical receivers, optical amplifiers, switching elements, Wavelength Division Multiplexing (WDM).
2 – Exact and Heuristic (Optical Core) Network design methodologies
Network design based on mathematical modelling: flow formulation, route formulation. Modelling of network protection: dedicated protection, shared protection. Network design by heuristic approaches: greedy, local search. Lab activity with Net2Plan: a free and open-source Java tool for the design of communication networks
3 – Protection techniques
Network survivability: objectives and protection techniques. Single-layer and multi-layer protection techniques: protection at IP layer, protection at physical layer. Protection techniques in SONET/SDH: line and section protection, point-to-point and ring structures, dedicated and shared protection. Protection in the optical layer: solutions for ring networks and for mesh network, dedicated-vs-shared protection, ring cover and p-cycle techniques.
5 – Queueing theory primer
Markov, birth death and Poisson process.
6 – Capacity dimensioning in communication networks
Introduction on traffic modeling: single and multiple source model. Analysis of multiple-server systems with assumption BCC, BCH, BCD. Evaluation of congestion and statistics of carried/lost traffic (Erlang B and C, Engset). Capacity dimensioning with Wilkinson, Fredericks and Lindberger approaches.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale facoltativa (a scelta dello studente)
Progetto/i - Elaborato/i facoltativo (a scelta dello studente), di gruppo, con revisioni periodiche, con presentazione/discussione finale
The verification of knowledge for the course content consists in a test at the end of the course that comprises a written test and, if required, an oral examination on the subjects covered in the course (DD1). Projects, to be defined with the professor, can be used to substitute the oral examination.
The written exam (DD2, DD3) is based on numerical exercises (up to 5) and/or open question (1 or 2) on the topics such as protection, network design thorugh Integer Linear Programming and capacity dimensioning using queueing theory formulas. the written exam is used to assess the capability of the students to manage theoretical and technological tools to design communication networks. The laboratory activity using the software Net2Plan and NetworkX Python Libraries can be used to complement the final written score.
The oral exam (DD4) will be used by the instructor to verify student' understading of the fundamental concepts such as enabling technologies for networking, queuing theory behind formulas for capcity dimensioning, protection at different network layers.
In case of negative evaluation the student is admitted to the following tests of the academic year.

Testi di riferimento

Materiale corso https://webeep.polimi.it/course/view.php?id=21359

Codice insegnamento P497655757

COMPUTER GRAPHICS 2° semestre · 5 CFU · IINF-05/A · 0 file

The course explains the basic theory of Computer Graphics, using several programming examples with the OpenGL API. The goal is to show how to design, engineer and develop computer graphics software for various…

Scheda dell'insegnamento

Programma

The course explains the basic theory of Computer Graphics, using several programming examples with the OpenGL API. The goal is to show how to design, engineer and develop computer graphics software for various applications (scientific visualisation, simulation, gaming)

Codice insegnamento P124039848

COMPUTER SECURITY - UIC 587 2° semestre · 5 CFU · IINF-05/A · 0 file

Modern computer systems routinely process high-value information, including financial and personal data, economic transactions, and intellectual property. At the same time, they are increasingly pervasive, continuously…

Scheda dell'insegnamento

Obiettivi formativi

Modern computer systems routinely process high-value information, including financial and personal data, economic transactions, and intellectual property. At the same time, they are increasingly pervasive, continuously available, and interconnected, making information security a major engineering challenge.
Security engineering is the discipline of designing and building secure systems. It is inherently interdisciplinary, combining cryptography, software engineering, network security, and political and social considerations.
This course provides a broad introduction to cybersecurity and to the methods used to design, validate, and ethically test security mechanisms. Lectures examine the main components of computer and information systems, with particular attention to their security subsystems. Students will analyze vulnerabilities, understand how they can be exploited, and learn how to prevent similar design and implementation errors.

Expected learning outcomes
Knowledge and understanding
Students will acquire broad knowledge of fundamental security technologies, their limitations, and common vulnerabilities and exploitation techniques.
Applying knowledge and understanding
Students will be able to identify and assess basic security issues in systems, networks, and applications; evaluate and improve proposed solutions; design high-level solutions to security problems; exploit simple application vulnerabilities in controlled environments; and develop basic patches.
Making judgements
Students will be able to comparatively evaluate security threats, vulnerabilities, mitigation mechanisms, and alternative solutions; reason about trade-offs; and assess risks in realistic scenarios.
Communication
Students will use appropriate terminology to explain security issues and justify security choices clearly.
Lifelong learning skills
Students will be able to update their knowledge independently and apply risk and security assessment principles to complex systems, including non-digital contexts.

Programma

1. Introduction to Information System Security

  • Security properties (confidentiality, integrity, and availability), threats, attacker models, and security-engineering methodology.
    2. Fundamentals of cryptography
  • Overview of cryptographic primitives (symmetric and asymmetric ciphers, signature schemes, message authentication codes, cryptographic hashes) and summary of their functionality
    3. Authentication, authorization, and access control
  • Authentication and authorization mechanisms; discretionary (DAC), mandatory (MAC), and role-based (RBAC) access-control models.
    4. Application and web security
  • Software exploitation: buffer overflows (in-depth) and other memory-corruption vulnerabilities (concepts, e.g. format string bugs, Return-Oriented Programming, Return to Lib C), stack protections, and mitigations (*)
  • Web application security: major OWASP vulnerability classes, including injection and broken access control, with their exploitation and mitigation (*)
    5. Network security
  • Stateful and stateless packet filtering
  • Software-Defined Networking (SDN) and its security implications
    6. Malware
  • The evolution of malware
  • Botnets and the underground economy (essential concepts)
  • Malware analysis
  • Anti-analysis techniques
  • Rootkits
  • Mobile malware (essential concepts only)
    The course follows a strong hands-on approach. Practical exercises are provided for all topics marked with (*) in the syllabus. A virtual hacking lab allows students to practise exploiting and securing computer applications in a controlled environment.
    The course complements, rather than replaces, dedicated cryptography courses such as “095947 - CRYPTOGRAPHY AND ARCHITECTURES FOR COMPUTER SECURITY”. The overlap with these courses is minimal.
    The course also provides the foundation for the more advanced security courses “056896 - OFFENSIVE AND DEFENSIVE CYBERSECURITY” and “062113 - HUMAN AND PHYSICAL ASPECTS OF SECURITY”.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
The assessment consists of a mandatory written test, graded out of 34 points, and, at the instructor’s discretion, a confirmatory oral test.
The written test consists of open questions and exercises that require students to apply theory and reasoning to use cases, code samples, network diagrams, and similar material. Students may answer in English or Italian. A large collection of past exams, many with solutions, is available on WeBeep.
The written test is graded on a 34-point scale. A score below 12 points is a failing grade («riprovato») under the exam regulations, and the student is not admitted to the following exam call. When required, the oral test is confirmatory and is used to verify the written-test result.
Optional homework and challenges, including activities in the virtual hacking lab, are intended solely for practice and self-assessment. They do not contribute additional points to the final grade. The maximum grade, including cum laude, can be obtained from the written test alone.
The written test is closed-book. Students may not consult course materials, notes, or other aids, and electronic devices are prohibited. Using or accessing unauthorized materials or devices, or communicating with other students, results in immediate removal from the exam and exclusion from the following exam call.
Type of assessment
Description
Dublin descriptor
Written test
Exercises requiring the analysis or design of security solutions for proposed use cases, including the exploitation of specific vulnerabilities. Graded out of 34 points; a score below 12 is a failing grade («riprovato») under the exam regulations.
1, 2, 3, 4, 5
Oral test (confirmatory)
Held at the instructor’s discretion to verify and confirm the result of the written test.
1, 2, 3, 4, 5

Testi di riferimento

Dieter Gollmann, Computer Security - 3rd edition, Editore: Wiley, Anno edizione: 2011, ISBN: 978-0-470-74115-3
Note: It is vital that you get the 3rd edition if you choose this book!
William Stallings, Lawrie Brown, Computer Security: Principles and Practice, Editore: Pearson
Ross Anderson, Security Engineering, Editore: Wiley, ISBN: 0-471-38922-6 http://www.cl.cam.ac.uk/~rja14/book.html
The Joy of Cryptography by Mike Rosulek https://joyofcryptography.com/
Note: An introductory cryptography textbook (freely available)
C. Anley, J. Heasman, F. Linder, G. Richarte, The Shellcoder's Handbook, Editore: Wiley
M. Howard, D. LeBlanc, Writing Secure Code, Editore: Microsoft Press
M. Mitchell, J. Oldham, A. Samuel, Advanced Linux Programming
Note: Chapter 10

Codice insegnamento 055633

COMPUTING INFRASTRUCTURES 2° semestre · 5 CFU · IINF-05/A · 0 file

Modern large-scale datacenters require the seamless integration of different components - applications, computation nodes, storage devices, and networks - into one computing infrastructure. The course covers the basics…

Scheda dell'insegnamento

Obiettivi formativi

Modern large-scale datacenters require the seamless integration of different components - applications, computation nodes, storage devices, and networks - into one computing infrastructure. The course covers the basics of current datacenters architectures, ranging from the analysis of the single components to the global infrastructure. The focus is on the foundations required to understand the design of computing infrastructures that are scalable, available, secure and flexible at the same time. Virtualization, container-based technology, cloud computing and storage systems are analyzed in depth to show how they can be used to support challenging tasks such as machine-learning applications and high-performance computing.

Knowledge and understanding (DD1):

  • The student will acquire knowledge about the Computing Infrastructure field. In particular, the students will learn the essential elements that are part of a scalable data center and the basic concepts of reliability, performance evaluations, virtualization, and cloud computing.
    Applying knowledge and understanding (DD2):
  • The student will be able to understand the design choices done within a large-scale computing infrastructure.
  • The student will be able to design both computational and storage components of a data center, to satisfy specific service-level requirements
  • The student will be able to apply performance and reliability analysis to the data center and to other complex systems, even outside the computer engineering domain
    Making judgements (DD3):
  • The student will be able to explore alternative solutions within a data center, in terms of computing architectures and service models.
  • The student will be able to analyze and discuss the trade-offs between reliability, performance, and costs of different hardware and software technologies within a data center.
    Communication skills (DD4):
  • The student will be able to use the data center terminology appropriately.
  • The student will be able to illustrate the characteristics and functionality of a data center infrastructure and related service models.
    Learning skills (DD5):
  • The student will develop learning skills necessary to autonomously extend performance and reliability analysis to other types of components in a data center, and to autonomously understand novel technologies within computing infrastructures together with their impact.

Programma

Hardware infrastructure of datacenters:

  • Basic components, Rack structure, Cooling
  • Hard Disk Drive and Solid State Disks
  • RAID architectures
  • Hardware Accelerators
    Software infrastructure of datacenters:
  • Virtualization: basic concepts, technologies, hypervisors and containers
  • Computing Architecture: Cloud, Edge and Fog Computing
  • Infrastructure-, platform- and software-as-a-service
    Methods:
  • Scalability and performance of datacenters: definitions, fundamental laws, queuing network theory basics
  • Reliability and availability of datacenters: definitions, fundamental laws, reliability block diagrams
    Exercises to apply the knowledge in simple examples or to more complicated scenarios will be used especially considering the parts related to reliability, storage system design, and performance analysis.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
The evaluation consists of a written exam on the topics covered in the course. The exam will include both theoretical questions and numerical problems.
More in detail the written exam includes:

  • Close-ended questions on course topics to verify the capacity to recognize the basic concept behind the design of a large-scale computing infrastructure; (DD1, DD2)
  • Open-ended theoretical questions on course topics to verify the capacity to describe the key concepts related to the design of a large-scale computing infrastructure; (DD1, DD2, DD3, DD4, DD5)
  • Numerical problem resolutions regarding analysis and design of data center and data center components, virtualization, storage systems, dependability, and performance modeling. (DD1, DD2, DD3)
    An oral test could be requested by the lecturer to deepen specific questions of the written test and further verify the capacity of the student to describe the key concepts related to the design of a large-scale computing infrastructure and develop links between the various topics of the course (DD1, DD2, DD3, DD4, DD5)

Testi di riferimento

Course Web Site webeep.polimi.it
Luiz André Barroso and Urs Hölzle, The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines
Edward D. Lazowska, John Zahorjan,G. Scott Graham, Kenneth C. Sevcik, Quantitative System Performance: Computer System Analysis Using Queueing Network Models
Note: (Open Access Book) (chapters 1-4)
James Smith and Ravi Nair, "Virtual Machines" Versatile Platforms for Systems and Processes
Caesar Wu and Rajkumar Buyya, Cloud Data Centers and Cost Modeling

Codice insegnamento P935368749

CRITICAL THINKING (a) 2° semestre · 5 CFU · PHIL-02/A · 0 file

The Critical Thinking course aims to provide, in an innovative manner, the methodological tools necessary to reason and argue soundly under conditions of risk and uncertainty in science and technology. The tools used…

Scheda dell'insegnamento

Obiettivi formativi

The Critical Thinking course aims to provide, in an innovative manner, the methodological tools necessary to reason and argue soundly under conditions of risk and uncertainty in science and technology. The tools used will be those belonging to logic, philosophy, argumentation, and the psychology of thought, as applied to uncertain reasoning. The course content will be presented and discussed interactively with students. The course is intended to give students the opportunity to reflect critically on the cultural, social, and ethical impacts of science and technology

( Knowledge and understanding )
Students will:

  • be acquainted with different forms of scientific reasoning
  • acquire methodological skills in order to deal with risk and uncertainty
    ( Applying knowledge and understanding )
    Students will:
  • foster their ability to solve problems and cope with uncertainty
  • apply critical thinking to complex problems
  • integrate their technical knowledge with humanistic, cognitive and ethical perspectives on science and technology
    ( Making judgements )
    Students will be able to:
  • use methods and imagine scenarios in order to deal with (severe) uncertainty
  • enhance creativity in thinking and reasoning
    ( Communication )
    Students will learn how to
  • improve their skills in a writing an academic paper
  • make academic presentations
  • evaluate different forms of (risk) communication
    ( Lifelong learning skills )
    Students will
  • be ready to evaluate and take decisions under conditions of uncertainty
  • be better prepared to their future professional life in a socially responsible way
  • be able to propose innovation solutions to complex and uncertain problems.

Programma

The course will cover different topics both from a theoretical and a more practical point of view.
The list of topics includes:

  • scientific reasoning: deduction, induction, and abduction
  • elements of logic and argumentation
  • probabilistic reasoning: biases and paradoxes
  • risk theory
  • risk perception
  • risk communication
  • risk and moral argumentation
  • decision making under severe uncertainty
  • technological innovation and uncertainty
  • scenario planning
  • sustainability and scientific values

Modalità d'esame

Progetto/i - Elaborato/i obbligatorio, individuale, senza revisioni periodiche, con presentazione/discussione finale
An individual final essay
Students are required to develop an argumentative thesis in an individual essay in which the specific claims are justified by the use of critical thinking and the relevant literature.
Students are required to read and carefully study the suggested bibliography and to apply it to case-studies.
Collective presentations
Students are encouraged to give collective presentations in order to reduce the length of the individual final essay (this option is available only for some study programs). All detailed information and the pdfs of the scientific papers that we will be used will be made available.
The individual final essay will be evaluated considering the following criteria:
1) originality of the main thesis
2) knowledge of the scientific and technological background
3) argumentative skills
4) ability to integrate technical knowledge with critical reflection
5) compliance with academic standards

Testi di riferimento

Damiano Canale, Roberto Ciuni, Aldo Frigerio, Giovanni Tuzet, Critical Thinking. An Introduction, Editore: Bocconi University Press - Egea, Anno edizione: 2021, ISBN: 9788899902858
Daniele Chiffi, Stefano Moroni, Uncertainty, Innovation and the City, Editore: Edward Elgar, Anno edizione: 2025, ISBN: 9781035342662 https://www.e-elgar.com/shop/gbp/uncertainty-innovation-and-the-city-9781035342662.html?srsltid=AfmBOoooZkaZdrxskmSY2ckahsDBQ2HOVkhHF7S-AU-24J5_HcpovGK-
Mattia Andreoletti, Daniele Chiffi, Philosophy of Risk, Editore: Cambridge University Press, Anno edizione: 2027
Note: If not yet published, an advanced draft of the book will be made available to students.

Codice insegnamento 055806

CRITICAL THINKING(a) 2° semestre · 5 CFU · PHIL-02/A · 0 file
CRYPTOGRAPHY AND ARCHITECTURES FOR COMPUTER SECURITY 2° semestre · 5 CFU · IINF-05/A · 0 file

Il corso fornisce una formazione sistematica sui moderni meccanismi crittografici utilizzati per le comunicazioni e la memorizzazione dei dati. Il corso si focalizza sugli algoritmi e le relative implementazioni…

Scheda dell'insegnamento

Programma

Il corso fornisce una formazione sistematica sui moderni meccanismi crittografici utilizzati per le comunicazioni e la memorizzazione dei dati. Il corso si focalizza sugli algoritmi e le relative implementazioni efficienti in Software e Hardware, non trascurando l'indicazione di nuovi approcci e critto-sistemi innovativi. Saranno presentati gli aspetti matematici della crittografia moderna, preceduti dalle nozioni essenziali della teoria dei campi di Galois. La sicurezza dei più importanti critto-sistemi sarà analizzata anche dal punto di vista della loro realizzazione, presentando le vulnerabilità a cui i dispositivi Hardware e Software possono essere soggetti. Infine, verranno presentati i protocolli di comunicazione sicura più comuni (SSL/TLS, SSH, PGP, Kerberos, Onion Routing) e i protocolli per la memorizzazione di dati cifrati.

Codice insegnamento P025205917

DATA ACQUISITION SYSTEMS 1° semestre · 5 CFU · IMIS-01/B · 0 file

The course, held substantially in presence in the laboratory-classroom, aims to provide students the basic skills to learn using modern instrumentation for data acquisition by programmable and reconfigurable virtual…

Scheda dell'insegnamento

Obiettivi formativi

The course, held substantially in presence in the laboratory-classroom, aims to provide students the basic skills to learn using modern instrumentation for data acquisition by programmable and reconfigurable virtual systems, according to user requirements for different applications. Methods to process and analyze statistically large data sets, and transmit and save them, will also be discussed.
The course includes, in addition to the traditional classroom lectures, tutorials and project workshops (not mandatory) where students will study in deep specific topics, addressing different issues. The verification of the knowledge acquired is based on written tests during the course and on the evidence of recovery. The final evaluation will be based on a final exam where the students need to develop a custom application.

Knowledge and understanding (DdD1)
Students will learn how to:
what is the modern instrumention and the "measurement chain" used to acquire data from environment;
which are the fundamentals rules used to acquire date without losing informations;
the basic structures of a data acquisition programming language;
how to manage data set: elaborate, manipulate and save it in different kind of format.
Applying knowledge and understanding (DdD2)
Given specific project cases, students will be able to:
Detail the corresponding requirements;
To understand the requirements and to design the correct structure to manage the data;
Analize and comment on specific architectural choices;
Develop and test code fulfilling the design specifications.
Lifelong learning skills (DdD3 - DdD5)
Students will learn how to develop a real project collaborating with other students in the development of the project;
Students choosing to work on the research project, will learn how to conduct a research activity on some specific aspect engineering, developing some innovative solution and some empirical experiment.

Programma

Introduction to measurement instrumentation. The analog-to-digital conversion; resolution and accuracy limits for numeric values; effective number of bits of the A/D converter and the dithering techniques to increase resolution. Description of the Data AcQuisition systems (DAQ) performances and limits; mode of installation and use of PCI cards for the acquisition channel and the generation of control signals. Introduction to the concepts of data interpolation and fitting. How to count something: the counters.
Virtual instrumentation. The measurement instruments available on the market. The LabVIEW graphical environment. The front panel. The block diagram. Control palette and function palette, constants, indicators, and controls. How to display data. Nodes and lines. Loop structures, case, sequence. Array and cluster. SubVI. Logic functions. Development of example programs. Debugging. Waveform Data. File management. Storing and recalling data into/from a file. Development of an algorithm for the measurement of the signal frequency.
Elements of hardware and software. Data acquisition cards. Specifications. Acquisitions with buffering. Local and global variables. Built-in elements. Practical examples and their implementation.
Design and implementation of Virtual Instruments (VIs). Design and testing of a “digital voltmeter”. The acquisition section. The digital processing section. Indirect measures based on signal processing. Multichannel acquisition. Practical aspects of the multiplexer. Signal Conditioning. Development of some practical applications. Processing of multi-channel data. Testing and calibration of a virtual instrument.
Applications. Output functions. Arbitrary signal generator. AD and DA converters total error evaluation. Use of the counters. Control gate. Acquisitions for long times. Use of virtual instruments through the Internet. Queues and semaphores to administrate data.
Instrumentation programming. Communication interfaces (RS232, GPIB). The driver for stand-alone instrumentation: VISA. Communication with oscilloscopes and function generators via various communication interfaces.
Laboratory activities
Creation of virtual instruments for the acquisition from the field of experimental data: processing, graphical representation, data logging and statistical analysis (average, moving average, variance) of numerical data. Realization of programs for the measurement of analog and digital signals. Generation of analog and digital signals. Development of specific projects for students. Every student of Data Acquisition Systems held 32 hours of laboratory divided into 8 sessions during each session will be carried out individually but always under the guidance of the professor, the implementation of programs progressively more advanced. The details of the evaluation process of the workshop will be presented during the first hours of lesson of the course.

Modalità d'esame

Prova scritta obbligatoria, con prove in itinere
Prova orale condizionata (a scelta del docente)
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, senza presentazione/discussione finale
Exams assign a score of thirty, from 0 up to the maximum grade of 30 cum laude, extracting it from the results achieved with the work in the classroom and with the project/exam in the presence, and the outcome of a short theory written test. For anyone who wants to further improve the rating will be possible to perform an oral or develop an optional data acquisition project.
In any case, examination procedures will be consistent with the rules adopted by the Politecnico di Milano and the School of Eng. Industrial and Information and the dates of each exam will be communicated well in advance.
Type of assessment
Description
Dublin descriptor
Written test
Theory of acquisition:
· Knowledge of the fundamentals of the theory of acquisition;
· Knowledge of the state of the art of measurement instrumentation;

  • Knowledge of fundamentals of interpolation and fitting.
    Solution of acquisition problems
    · Development of the right structure of acquisition;
    · Estimation of the computational costs;
    · Managing data and how to elaborate them;
    · Software testing debugging and analysis exercises.
    Exercises focusing on design aspects
    · Definition of the architecture for a distributed measurement system
    · Organisation of different parallel tasks inside a project.
    1,2
    1, 2, 3, 4, 5
    Assessment of laboratory artifacts (optional)
    Assessment of the design and experimental work of acquisition developed by students individually
    2, 3, 4, 5

Testi di riferimento

C. Svelto, R. Ottoboni, M. Norgia, A. Pesatori, Misure. Dai fondamenti alla strumentazione, Editore: Società Editrice Esculapio - Bologna, Anno edizione: 2022, ISBN: 8893853043
Note: Costo circa 19 Euro. Disponibile presso la Biblioteca di PoliMI.
M. Norgia, A. Pesatori, C. Svelto, "Esercizi di Misure", Editore: Società Editrice Esculapio - Bologna, Anno edizione: 2006, ISBN: 88-7488-150-9
Note: Costo circa 15 Euro. Disponibile presso la Biblioteca di PoliMI.

Codice insegnamento 097678

DATA BASES 2 1° semestre · 5 CFU · IINF-05/A · 0 file

The goal of the course is to enable students to deepen the knowledge of the architecture and functionalities of relational database management systems (internal structure, modularity, capabilities,...); to achieve a…

Scheda dell'insegnamento

Obiettivi formativi

The goal of the course is
to enable students to deepen the knowledge of the architecture and functionalities of relational database management systems (internal structure, modularity, capabilities,...);
to achieve a well-established awareness of the implications of the transactional ACID properties on concurrency and reliability;
to show to the students how relational data are stored within a DBMS and how the availability of suitable indexing structures and data statistics profoundly affect query execution;
to learn how a rule-based computational paradigm can help to incrementally build additional features for a DBMS such as business rules, checking of general constraints, view maintenance of derived data, etc. via the concept of trigger;
to learn how to bridge the gap between relational and object models with the help of Object/Relational Mapping systems;
to understand how data can be ranked and restricted to a representative subset that reveals the most promising part of a dataset, thus enabling subsequent analysis tasks.
The main purpose of the course is to build on consolidated data management technologies to provide the learners with the ability to understand the opportunities and limitations of the plethora of new emerging technologies for data management.

Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn:
The internal structure of the "black-box" that implements the SQL language
New language paradigms (data-driven rule-based programming)
How abstract ACID transactional properties translate into system requirements
How object-oriented data models can be mapped onto relational systems declaratively
The geometrical interpretation of data attributes and its importance for ranking data
Applying knowledge and understanding
Given practical scenarios, students will be able to:
Undertake strategical suitable actions to improve the performances of a database management system w.r.t. a specific goal (e.g., speed-up of a specific family of queries)
Tune relational database system requirements to the actual needs of a data-centric application
Bridge the gap between the relational and the object model
Extract the potentially most interesting objects from a dataset
Making judgements
Students will be able to:
Evaluate whether a specific application or scenario requires the power and complexity of a full-fledged relational DBMS or can instead benefit of simpler, light-weighted alternative solutions
Analyse and understand the probable causes of inefficiency in a complex multi-layered application built on a relational system (identifying bottlenecks and critical configurations)
Compare and balance pros and cons of different solutions for the same problem
Lifelong learning skills
The course:
Provides a solid, time-tested theoretical foundations that capture the essentials of many technological solutions given over time to classical data management problems
Develops the ability to understand the opportunities and limitations of the plethora of new emerging technologies for data management
Contributes to broaden the mental agility and flexibility that is required by a data engineer to envision and design alternative solutions to a given problem based on the constraints of the environment in which the system is expected to be deployed

Programma

Transactional Systems. Why transactional systems are relevant. Notion of transaction. ACID properties: atomicity, consistency, isolation, durability.
Concurrency control theory. Histories (or schedules), serializability, various notions of equivalence, complexity of testing. View-serializability, conflict-serializability. Two-phase locking. Hierarchical locking. Deadlock analysis and resolution. Timestamp-based concurrency control. Multi-version concurrency control. Implementation of locking in commercial systems. Concurrency control in distributed databases.
Reliability control theory. Notion of: stable storage, logging, checkpointing, write-ahead log rule, commit rule. Recovery protocols: warm restart, cold restart. Implementation of reliability control in commercial systems. Commit protocols, theory of two-phase-commit, presumed-abort and read-only optimisations, non-blocking protocols (3 and 4 phase commit protocols). Implementation of commit protocols with heterogeneous DB servers in the X-open standard.
Internal structure of a database server. Buffer Management. Page management. Data organisations according to the sequential, direct, and indexed data structures. B and B+ trees. Hashing functions. Access methods: scans, ordering, joins. Join methods. Query optimisation fundamentals. Cost models and optimal query plan selection (branch and bound method for execution plan selection). Database administration in commercial systems. Hints to physical database design (index selection, primary storage method selection).
Active databases: The ECA Paradigm (event/condition/action) and data management. Execution methods for active databases. Trigger languages and systems. Formal properties of active rule sets. Termination, confluence, observable determinism. Rule analysis. Design of active rules for integrity maintenance, automatic data derivation, application business rules, etc.
The concept of Object Relational Mapping: mapping entities, relationships and hierarchies; lifecycle of managed objects, transactional support in the business tier. Example of ORM data connector: Java Persistence API
Ranking: geometrical interpretation of data attributes, scoring functions, access modes, the middleware scenario, algorithmic approaches to ranking, optimality and instance optimality, the notion of dominance, skylines, k-skybands.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
The assessment will be based on a written exam to be taken in the exam sessions defined by the school and covering all aspects in the syllabus. The exam is closed book. It will assign up to 32 points. 30 cum laude will be assigned when the total score is equal to or higher than 31.
The following table provides a detailed overview of the elements that will be considered in the various assessment activities.
Type of assessment
Description
Dublin descriptor
Written test
Exercises focusing on comprehension
Estimation of query execution costs
Concurrency control techniques
Theoretical open question
Exercises focusing on design aspects
Design of trigger-based systems
Formulation of ORM data mapping
Design of ranking strategies
1,2,3
1, 2, 3, 5

Testi di riferimento

P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, Basi di dati. 6th edition, Editore: McGraw-Hill Italia, Anno edizione: 2023, ISBN: 978-8838656545
Note: Students may use also previous editions of the book.
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Database systems, Editore: McGraw Hill, Anno edizione: 1999, ISBN: 978-0077095000
Note: English version of an older edition of the Italian textbook.
PDF available at http://dbbook.dia.uniroma3.it/
R. Elmasri, S. Navathe, Database systems, Editore: Pearson, Anno edizione: 2010, ISBN: 978-0132144988
Note: General database textbook, for students who are not able to read the textbook in Italian. Many other textbooks can be used.
Mike Keith Merrick Schincariol, Pro JPA 2 in Java EE 8: An In-Depth Guide to Java Persistence APIs, Editore: Apress, Anno edizione: 2018, ISBN: 1484234197 https://www.apress.com/gp/book/9781484234198
Note: Code available

Codice insegnamento P551667896

DESIGN AND IMPLEMENTATION OF MOBILE APPLICATIONS 1° semestre · 5 CFU · IINF-05/A · 0 file

Given the always increasing diffusion of mobile and wearable devices (e.g., smartphones, tables, and watches), the course aims to present the main techniques and technologies to design and implement applications for…

Scheda dell'insegnamento

Obiettivi formativi

Given the always increasing diffusion of mobile and wearable devices (e.g., smartphones, tables, and watches), the course aims to present the main techniques and technologies to design and implement applications for these devices. More specifically, the course will address the design of "mobile" applications by considering both the problem of designing the user experience, that is, the screens used to interact with the user, and the problem of understanding the actual distribution of the components that constitute the application and their interactions.
As for technologies, the course will present the main solutions that are available today. It will cover both iOS-based (iPhone/iPad) and Android-based applications. It will also present cross-platform options as the emerging solution for the realization of cross-platform "mobile" applications.

DdD1: Knowledge and understanding
Students will learn how to:

  • Identify the key elements of a modern mobile application
  • Design appropriate GUIs
  • Design and implement complete mobile applications using different technologies
  • Select among different architectural and technological options
    DdD2: Applying knowledge and understanding
    Given specific applications, students will be able to:
  • Detail concrete and efficient GUIs
  • Identify and select among different architectural and technological choices
  • Apply theory to assess designed solutions and available technological alternatives
  • Design, document, develop and test complex mobile applications.
    DdD3: Making judgements
    Given relatively complex mobile applications, students will be able to:
  • Analyze and understand the requirements associated with the mobile applications and the devices of interest
  • Define the architecture of the corresponding mobile application using proper styles and patterns
  • Identify and define the needed external elements, libraries, and services
    DdD4: Communication
    Students will learn to:
  • Write a design document
  • Conceive a technical presentation
  • Present their work in front of the professor and their colleagues
    DdD5: Lifelong learning skills
    Students will learn how to
  • Develop mobile applications
  • Identify alternatives and select the proper technologies
  • Frame and evaluate new, future technologies.

Programma

The course is roughly divided in five parts:

  • The first part frames the problem and the new/many opportunities these devices offer. It also gives a brief survey of the different alternatives and "competing" solutions.
  • The second part is about the design of mobile applications. It tries to identify some guidelines and recurring patterns to "ease" the design of these applications and also to help obtain quality solutions.
  • The third part introduces the main novelties and characteristics of some key solutions (Flutter and React Native) for the development of cross-platform applications.
  • The fourth part is is about Android and about the development of applications for this operating system, and for the family of devices (phones, tablets, watches, TVs) that use it, by means of Kotlin and Jetpack compose.
  • The fifth part introduces the development of applications for iOS-based devices by using Swift and SwiftUI.

Modalità d'esame

Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The exam consists of a project that must be developed by a group of up to 3 students (max). The project must be documented, presented, demoed, and discussed with the professor.
Type of assessment
Description
Dublin descriptor
Assessment of project artifacts
Assessment of the design and experimental work developed by students, either individually or in groups, as part of the project
1, 2, 3, 4, 5
Oral presentation
Assessment of the project presentation
2, 3, 4, 5

Testi di riferimento

Flutter official documentation https://reactnative.dev
React Native official documentation https://reactnative.dev
Android official documentation https://www.android.com
iOS official documentation https://developer.apple.com/ios/planning/

Codice insegnamento P625535951

EMBEDDED SYSTEMS 1° semestre · 5 CFU · IINF-05/A · 0 file

The goal of the course is to provide specific competencies and design methodologies needed to realize embedded applications including the choice of the technologies, the management of the design flow and the selection of…

Scheda dell'insegnamento

Obiettivi formativi

The goal of the course is to provide specific competencies and design methodologies needed to realize embedded applications including the choice of the technologies, the management of the design flow and the selection of the toolchain.
Such applications range from Cyber Physical Systems for consumer electronics to industrial and medical devices. In general, any consumer electronics product is an embedded system. Their design requires the coordination of cross competencies to identify the optimal solution under a number of aspects including flexibility, standardization, cost, size, energy and power, performance, etc.
The course aims at creating a valuable bridge to the best industrial practices, providing the competencies on: architectures for component-off-the-shelf and SoC based embedded systems exploiting sensors; communication and interfacing standards popular in the embedded system market, energy aware design of software and hardware including run-time management of the resources.
Hands-on lab sessions will be suggested to the students (participation is optional) to show how to use development boards to interface external sensors and peripherals. Case studies related to real products will be presented to make students aware on the real trade-offs to be considered.
To enhance the knowledge related to the development of software for embedded applications it is suggested to follow also the course Advanced Operating Systems.

At the end of the course, the students will be capable of analyzing an embedded application and moving from the requirements to the realization.
The goal is to become capable of coordinating the use of different skills and technologies in order to identify the best solution under a large variety of aspects such as flexibility, standardization, cost, size, power dissipation and performance, the methodological aspects related to the flow of the design, and so on.
It is expected that, especially during the development of the project, a significant skill in programming embedded systems will be acquired.
Knowledge and understanding (DdD 1)
The student will be able to analyze and understand the main requirements of an embedded application.
The student has a wide knowledge of the main technologies to design an embedded system.
The student has a clear view of the steps needed to realize an embedded application, from several standpoint including project management, cost analysis, selection of the toolset and of the platform for prototyping.
Apply knowledge and understanding ( DdD 2)
The student will be capable of analyzing a Hw/Sw embedded designs considering several performance metrics.
The student is capable to design the Hw/Sw architecture of an embedded systems interfaced with the real world, moving from the requirements to the realization.
The student has the capability to design energy aware systems submitted to cost and timing constraints.
The student, depending on the choice of a project work, will be capable of designing embedded software and/or hardware using market-available technologies.
The student can read technical documentation regarding microcontrollers and sensors used for embedded applications.
Making Judgements ( DdD 3)
Student will be asked to analyze a project work to improve the ability to analyze the functional and extra-functional characteristics of an embedded application, while autonomously looking for the best tradeoff in terms of selection of the Hw/Sw architecture and use of the development tools.
Communication (DdD 4)
Students will learn how to organize a research report, including the search and critical analysis of the state of the art, description of an innovative research idea with its positioning in the gernal scenerario of the pertaining scientific field, and final presentation through the support of slides of the investigation carried out.
Lifelong learning skills ( DdD 5)
The student will become capable of coordinating the use of different skills and technologies in order to identify the best solution under a large variety of aspects such as flexibility, standardization, cost, size, power dissipation and performance, the methodological aspects related to the flow of the design, and so on.
The student will be capable of navigating autonomously in the state of the art and market ready technologies suitable for the design of embedded applications.

Programma

The content of the course starts by systematizing the skills on hardware architectures, communication and basic software used for the realization of embedded systems, with reference to existing standards and to the peculiarities of the system to be designed. It is then shown how to run a design flow leading to an "optimal" solution both in terms of the constraints of traditional project (such as dissipated power or performance), and considering the impact that technological solutions have under the profile of the design flow (e.g., cost or development time).
Introduction and background
General characteristics of an embedded system.
Requirements and constraints for the different application fields.
Trends of the market and of the best design practices.
Development flow for Hw-Sw architectures.
Energy and power optimization.
Hardware platforms for Embedded Systems
Software executors: general purpose, dedicated processors, DSP, Network processors, Microcontrollers, Multi-Many cores and clusters.
Communication architectures: standard buses, Network-on-Chip (NoC), field buses, wireless interfaces, examples.
Hardware executors: characteristics of the application specific IC and related design flow, systems for fast prototyping, reconfigurable and updatable systems, examples of off-the-shelf (PCB-based) designs and wireless sensor networks.
Software architectures for Embedded Systems
Abstraction layers: assembler, library, system software, middleware.
Software development environment and toolchains for the realization of the embedded software
Introduction to the real-time operating systems: general features, scheduler, configuration, dynamic management of the resources, soft real time features, energy optimization and resource management.
Analysis of the embedded software: formalisms and tools for analysis/profiling of the code, energy optimization.
Examples: RT extension of Linux, Android, RTX, operating systems for wireless sensor networks, frameworks for run-time management of resources, Linux Device Drivers model.
Analysis and optimization of Hw/Sw Systems
Analysis of the project constraints and selection of the best implementing architecture with particular emphasis on realization time and cost.
Problems related to the estimation of Power/Thermal/Performance at the different abstraction levels
Optimization of power and performance at the different abstraction levels.
Analysis and modeling of thermal problems with particular attention to the multi-core architectures with NoC-based communication.
Management and planning of embedded systems: models for the development flow, design for resuse and estimation of hw and sw development time and cost, project management.
Case studies
Example of the analysis to be performed during a feasibility study.
Example of real designs at different granularities, from the wireless sensor networks to embedded application exploiting multiprocessor cores, systems with MEMS, software for white goods and automotive, certification.
In each of the use case the set of trade-offs to be considered will be highlighted.
Laboratory
Hands-on lab sessions will be proposed to the students (participation is optional) to show how to use development boards to interface external sensors and peripherals, as well as the development of desk researches on specific topics

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, con revisioni periodiche, con presentazione/discussione finale
Altro
The examination follows the official rules of the Politecnico di Milano and more information can be found on the web site of the lecturer.
In general, it is foreseen a mandatory written test with open theoretical questions and possibly some exercises (70% of the total score). In addition to this step, during the course it will be presented a set of possible topics for projects/desk-based researches, whose evaluation will be part of the final score (30%).
The goal is to check the skill of the student to organize the concepts presented during the course and to cooperate with other students to the development of representative case studies, mimicking real-life problems popular in embedded applications.
The written test is linked to the Dublin Descriptors: 1,2,5
The project/desk research is linked to the Dublin Descriptors: 2,3,4,5
Reporting and presentation is linked to the Dublin Descriptors: 1,3,4,5

Testi di riferimento

Slide & Papers
Note: see web site of the lecturer
Fornaciari, William, Soudris, Dimitrios (Eds.), Harnessing Performance Variability in Embedded and High-performance Many/Multi-core Platforms, Editore: Springer, Anno edizione: 2019, ISBN: 978-3-319-91962-1 https://www.springer.com/gp/book/9783319919614
Note: Only some chapter will be considered
Marwedel, Peter, Embedded System DEsign, Editore: Springer, Anno edizione: 2006, ISBN: 978-0-387-30087-0 https://www.springer.com/gp/book/9780387300870
Carlo Brandolese, William Fornaciari, Sistemi embedded -, Editore: Pearson, Anno edizione: 2007, ISBN: 9788871923420
Note: There exists alternative books in english
F.Vahid, T.Givaris, Embedded System Design - A unified Hardware/Software Introduction, Editore: Wiley, Anno edizione: 2002, ISBN: 978-0471386780

Codice insegnamento 056899

EMERGING TECHNOLOGIES AND SOCIETAL CHALLENGES (b) 2° semestre · 5 CFU · GSPS-05/A · 0 file

Il corso affronta le principali questioni teoriche relative all'innovazione socio-tecnica (quali i concetti di base dell'innovazione tecnologica, le dinamiche di diffusione delle innovazioni, i limiti del determinismo…

Scheda dell'insegnamento

Programma

Il corso affronta le principali questioni teoriche relative all'innovazione socio-tecnica (quali i concetti di base dell'innovazione tecnologica, le dinamiche di diffusione delle innovazioni, i limiti del determinismo tecnologico, l'agency degli oggetti tecnologici, la flessibilità interpretativa della tecnologia, genere e tecnologia) e analizza esempi rilevanti di tecnologie d'avanguardia che hanno un impatto sulla società e sulla vita umana, come l'Internet delle cose, la fabbricazione digitale, la realtà aumentata e l'intelligenza artificiale. Anziché focalizzarsi sul loro funzionamento, le prestazioni e i problemi tecnici, il corso affronterà le questioni etiche che esse sollevano e gli impatti sociali che producono.

Codice insegnamento 055807

EMERGING TECHNOLOGIES AND SOCIETAL CHALLENGES(b) 2° semestre · 5 CFU · GSPS-05/A · 0 file
ETHICS FOR TECHNOLOGY (c) 2° semestre · 5 CFU · PHIL-02/A · 0 file

This course deals with the application of ethical theories to problems created, aggravated or transformed by technology. This course aims at showing how the decision to develop a technology (meant at large), the…

Scheda dell'insegnamento

Obiettivi formativi

This course deals with the application of ethical theories to problems created, aggravated or transformed by technology. This course aims at showing how the decision to develop a technology (meant at large), the processes of its design, development, management, control, and production are inherently moral. It is intended to give students a chance to reflect on the ethical, social, and cultural impact of technological applications (in particular AI).
The course includes lectures by the instructor and invited lecturers; class participation will be expected, and students should apply what they learn through reading, lectures, and class discussions by looking at current events through an ethical lens.

Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will:
Acquire a broad perspective on the ethical and social impacts and implications of science and technology;
Be acquainted with normative ethics and normative argumentation;
Learn how to recognize and analyze ethical and social aspects and issues inherent in some technological applications;
Be able to understand how technical problems are inherently connected to a social dimension within a socio-technical perspective.
Applying knowledge and understanding
Students will:
Be able to use critical skills in clarifying and ethically analyzing case-studies involving technology;
Be able to apply ethical theories to problems created, aggravated or transformed by current technologies;
Be able to explore and assess possibilities for solving or diminishing existing and emerging ethical and social problems.
Making judgements
Students will be able:
To autonomously analyze the ethical issues of a technology and to develop a critical analysis on that;
To evaluate and select the appropriate knowledge in the effort of elaborating and justifying a philosophical argument on a topic autonomously selected.
Communication
Students will learn to:
Exercise and improve their skills in a critical writing;
Present in an effective way the results of their research, being able to justify their choices.
Lifelong learning skills
Students will:
Be better prepared to their future professional life in an ethically and socially responsible way;
Be able to analyze problems through an ethical lens.

Programma

The course will cover different topics both from a theoretical and a more practical point of view. We will start with a broad analysis of the concept of responsibility, in particular in an engineering perspective, and of normative ethics and its tools. We will discuss ethical questions in the design of technology with a focus on Design Ethics and its Social Ethics paradigm. Then ethics in IT-configured societies will be discussed and technology as the instrumentation of human action will be presented. Topics will include, for instance, the novel framework of Responsible Research and Innovation, Value-Sensitive design, the ethical aspects of technicolgical risks, the relationship among sustainability, ethics and technology, information flow, privacy, and values and uncertainty
Students will be supervised in class sessions in the development of the individual final essay in order to meet the standards required by scientific publications.

Modalità d'esame

Progetto/i - Elaborato/i obbligatorio, individuale, senza revisioni periodiche, con presentazione/discussione finale
Type of assessment
Description
Dublin descriptor
Collective presentations
Students are encouraged to:
Develop an argument in which the presented claims are justified by the use of ethical argumentation and the relevant literature;
To present this argument in an oral presentation in class in front of the instructor and their student colleagues.
1, 3
4, 5
Individual written essay
The individual final essay must show that the student has the capacity to read and carefully study the suggested bibliography and the ability to apply it to case-studies;
The individual final essay will be about the ethical issues associated to technologies that require to have developed critical skills in analyzing technical problems with the tools provided by ethical theories and argumentation.
1, 2
3, 4, 5

Testi di riferimento

Ibo van de Poel, Lambèr Royakkers, Ethics, Technology, and Engineering: An Introduction (second edition), Editore: Wiley-Blackwell, Anno edizione: 2023, ISBN: 978-1-119-87943-5
Mattia Andreoletti, Daniele Chiffi, Philosophy of Risk, Editore: Cambridge University Press, Anno edizione: 2027
Note: If not yet published, an advanced draft of the book will be made available to students.
Behnam Taebi, Ethics and Engineering. An Introduction, Editore: Cambridge University Press, Anno edizione: 2021, ISBN: 9781316628409

Codice insegnamento 052581

ETHICS FOR TECHNOLOGY(c) 2° semestre · 5 CFU · PHIL-02/A · 0 file
ETNOMUSICOLOGIA 1° semestre · 5 CFU · PEMM-01/D · 0 file

Il corso Introduce alle tematiche di base dell'etnomusicologia (definizione del campo di studio, metodi e tecniche di ricerca e analisi), seguendo l'evolversi della disciplina dalla musicologia comparata all'antropologia…

Scheda dell'insegnamento

Programma

Il corso Introduce alle tematiche di base dell'etnomusicologia (definizione del campo di studio, metodi e tecniche di ricerca e analisi), seguendo l'evolversi della disciplina dalla musicologia comparata all'antropologia del suono e le trasformazioni del campo di indagine. Propone un approccio etnografico all'evento musicale attraverso l'approfondimento delle molteplici relazioni tra la musica e altri aspetti della cultura. Avvalendosi di materiali sonori e audiovisivi, fornisce la conoscenza di forme sonore e strumenti musicali di diversa provenienza geografica e culturale e veicola concezioni, teorie e valori estetici della musica nelle diverse società.

Codice insegnamento 054933

FONDAMENTI DI BIBLIOGRAFIA 1° semestre · 5 CFU · HIST-04/C · 0 file

Comprendere scopo, funzioni, tecniche e problemi della Bibliografia e delle discipline bibliografiche in relazione al lavoro scientifico. Conoscere contenuti e le modalità di creazione, disseminazione, ricerca,…

Scheda dell'insegnamento

Programma

Comprendere scopo, funzioni, tecniche e problemi della Bibliografia e delle discipline bibliografiche in relazione al lavoro scientifico. Conoscere contenuti e le modalità di creazione, disseminazione, ricerca, rappresentazione e valutazione delle risorse dell'universo bibliografico. Apprendere i principi e le basi dell'information literacy e dell'allestimento dei repertori bibliografici finalizzati alla ricerca scientifica.
Alla fine del corso gli studenti saranno in grado di: 1. Impostare correttamente un lavoro scientifico (per esempio: presentazioni, elaborati, tesine, tesi); 2. Cercare, valutare, selezionare, organizzare e utilizzare le informazioni e le fonti per un lavoro scientifico; 3. Usare con consapevolezza e competenza un repertorio bibliografico, un catalogo, una banca dati, un motore di ricerca; 4. Allestire un repertorio bibliografico; 5. Utilizzare un reference manager
Contenuti:
La Bibliografia e le discipline bibliografiche. L'universo bibliografico e la sua rappresentazione. Trovare, identificare, selezionare e ottenere le risorse bibliografiche. Metodologia della ricerca. L'allestimento dei repertori bibliografici come lavoro scientifico. Presentazione e uso di un programma di gestione di bibliografie personali.

Codice insegnamento 054929

FONDAMENTI DI COMUNICAZIONI E INTERNET 2° semestre · 10 CFU · IINF-03/A · 0 file

Il corso è dedicato alla descrizione delle architetture e delle tecnologie di comunicazione impiegate nella rete Internet. Lo studente avrà modo di comprendere come funziona la rete Internet e quali sono le scelte…

Scheda dell'insegnamento

Obiettivi formativi

Il corso è dedicato alla descrizione delle architetture e delle tecnologie di comunicazione impiegate nella rete Internet. Lo studente avrà modo di comprendere come funziona la rete Internet e quali sono le scelte progettuali che hanno portato all’Internet del giorno d’oggi.
L’approccio didattico è basato su numerosi esempi pratici ed un utilizzo di strumenti software per supporto alle tematiche trattate e per consentire allo studente di acquisire dimestichezza sugli strumenti e sulle tecniche di dimensionamento e valutazione delle prestazioni di reti di telecomunicazioni.
Sono inizialmente illustrati i principi delle comunicazioni tra calcolatori e le caratteristiche di base dei protocolli adottati in Internet. In seguito, sono definiti alcuni concetti fondamentali alla base dei sistemi di comunicazione; l’obiettivo è quello di mostrare come l’informazione deve essere “trattata” per poter essere trasferita sull’Internet e quali sono le metriche usate per valutare le prestazioni di un sistema trasmissivo e, di conseguenza, di una rete di telecomunicazioni.
Successivamente l'architettura protocollare della rete è illustrata con un approccio top-down partendo cioè dal livello applicativo (più visibile all’utente finale) e proseguendo con il livello di trasporto, il livello di rete per finire con le tecnologie alla base delle reti locali.
Il corso è composto da due moduli non separabili. La valutazione finale sarà congiunta sull’intero programma.

Descrittori di Dublino
Risultati di apprendimento attesi
Conoscenza e comprensione - DdD 1
Comprendere le architetture logiche, fisiche e protocollari delle reti di comunicazione
Conoscere gli elementi basilari delle funzioni di rete (trasmissione, multiplazione, commutazione, instradamento, accesso al mezzo trasmissivo)
Comprendere le principali metriche di valutazione delle prestazioni in una rete: ritardo di trasferimento, throughput, perdita
Conoscere i principali protocolli di Internet, applicativi, di trasporto, di rete e di linea
Conoscere i principi di base che consentono alle applicazioni di usare le interfacce di rete (socket)
Capacità di applicare conoscenza e comprensione - DdD 2
Valutare le prestazioni della rete nel trasferimento di informazioni
Programmare applicazioni client e server che utilizzano le interfacce socket
Progettare il piano di indirizzamento di una rete
Configurare gli apparati di rete
Autonomia di giudizio -DdD 3
Valutare i gradi di libertà nella definizione dei protocolli di comunicazione e i vincoli dovuti ai limiti fisici e di capacità
Capacità di apprendimento - DdD 5
Essere in grado di apprendere nuovi protocolli e modelli di sviluppo di applicazioni di rete
Essere in grado di utilizzare le conoscenze e metodologie imparate per affrontare problemi nuovi

Programma

PROTOCOLLI APPLICATIVI

  • Architetture delle applicazioni di rete: approccio client-server ed approccio peer-to-peer
  • Esempi di protocolli applicativi client-server: HTTP, FTP, SMTP, DNS
  • Architetture peer-to-peer: BitTorrent
    IL LIVELLO DI TRASPORTO
  • Caratterizzazione del servizio di comunicazione tra processi applicativi; trasporto non affidabile: il protocollo UDP (formato dei segmenti)
  • Trasporto affidabile: il protocollo TCP (formato dei segmenti, apertura della connessione, controllo di flusso, controllo di congestione e controllo d’errore)
    IL LIVELLO DI NETWORKING
  • L’Internet Protocol (IP): servizi offerti da IP, formato dei pacchetti IPv4
  • Gestione di indirizzi IP: formati e notazioni degli indirizzi IPv4, le classi e gli indirizzi speciali, pianificazione di uno spazio di indirizzamento IPv4, tecniche di subnetting e supernetting, assegnamento automatico di indirizzi IP: il Dynamic Host Control Protocol (DHCP)
  • Indirizzamento privato e traduzioni di indirizzi IP (NAT, NAPT)
  • l’Internet Control Message Protocol (ICMP)
  • Cenni sull’IPv6
    INOLTRO ED INSTRADAMENTO IN INTERNET
  • Inoltro diretto ed indiretto
  • Uso delle tabelle di routing
  • Instradamento su cammini minimi, la costruzione dell’albero dei cammini minimi
  • Instradamento link state ed instradamento distance vector
  • Esempi di protocolli: RIP, OSPF, BGP
    Attività di laboratorio
    Le attività di laboratorio saranno organizzate in due parti suddivise sui due moduli con obiettivi specifici:
    PROTOCOLLI APPLICATIVI E PROGRAMMAZIONE SOCKET:
    In questa parte gli studenti avranno modo di prendere familiarità con i protocolli applicativi standard utilizzati per la comunicazione in rete tra processi applicativi. Inoltre potranno apprendere i rudimenti della programmazione
    delle interfacce (socket) di comunicazione utilizzando un approccio semplificato basato sul linguaggio python.
    CONFIGURAZIONE DI RETE:
    In questa parte, gli studenti si eserciteranno nella pianificazione e configurazione di reti locali tramite strumenti di emulazione di rete come PacketTracer che consente la creazione di scenari di rete, la configurazione di apparati di
    rete (interfacce, tabelle e protocolli di routing) e la verifica delle loro funzionalità.

Modalità d'esame

Prova scritta obbligatoria, con prove in itinere
Prova orale condizionata (a scelta del docente)
Valutazione continua facoltativa (a scelta dello studente)
L'esame è scritto, consente di ottenere fino a 33 punti ed e basato su:

  • esercizi numerici
  • domande a risposta aperta
  • domande inerenti attività di laboratorio
    Sono previste delle prove in itinere.
    Saranno svolti test di valutazione al termine di ogni argomento il cui punteggio concorrerà al voto finale.
    La prova orale integrativa è a discrezione del docente.
    Il voto finale in trentesimi è pari al numero di punti ottenuti. E' assegnato il voto di 30 e lode se la somma dei punti è superiore a 31.
    Modalità di verifica
    Descrizione
    Risultato di apprendimento perseguito
    Prova scritta
  • risoluzione di problemi numerici (valutazione delle prestazioni di rete)
  • domande di carattere teorico/pratico a risposta aperta sugli argomenti dell’insegnamento
  • esecuzione in forma scritta di un' attività di laboratorio
    1
    1,2,3
    1,2,3,5

Testi di riferimento

Dispense del corso a integrazione dei libri consigliati, distribuite a cura del docente.
Achille Pattavina, Internet e Reti - Fondamenti Terza edizione, Editore: Pearson, Anno edizione: 2022, ISBN: 9788891930910
Note: https://he.pearson.it/catalogo/627

Codice insegnamento P347326141

FONDAMENTI DI INFORMATICA 1° semestre · 10 CFU · IINF-05/A · 0 file
Archivio Globale

Presentare allo studente gli aspetti fondamentali dell'informatica (algoritmi, programmi, struttura di massima dei calcolatori e dei sistemi informatici). Impartire nozioni basilari sulla programmazione dei calcolatori…

Scheda dell'insegnamento

Obiettivi formativi

Presentare allo studente gli aspetti fondamentali dell'informatica (algoritmi, programmi, struttura di massima dei calcolatori e dei sistemi informatici). Impartire nozioni basilari sulla programmazione dei calcolatori (linguaggi di programmazione, tecniche di astrazione, tipi di dati fondamentali e strutture di controllo, sottoprogrammi e ricorsione, strutture dati dinamiche, cenni sulla programmazione modulare) approfondendone in egual misura gli aspetti concettuali e sperimentali. L'insegnamento non adotta modalità di didattica innovativa.

DdD1. Conoscenza e comprensione

  • Comprendere i meccanismi di codifica dell’informazione all’interno di un calcolatore
  • Conoscere gli elementi basilari dell’architettura di un calcolatore
  • Comprendere gli elementi sintattici e la semantica di un linguaggio di programmazione
  • Conoscere i principali costrutti usati nei linguaggi di programmazione imperativi per la rappresentazione e la manipolazione dati
    DdD2. Capacità di applicare conoscenze e comprensione
  • Progettare le strutture dati nella memoria del calcolatore allo scopo di rappresentare efficacemente i dati di uno specifico problema
  • Progettare semplici algoritmi a partire dalla specifica di un problema
  • Selezionare schemi di computazione noti e applicarli per la soluzione di nuovi problemi
  • Implementare algoritmi in linguaggio C
  • Implementare semplici algoritmi in Python
    DdD3. Autonomia di giudizio
  • Valutare la correttezza degli algoritmi progettati
  • Individuare le strutture da e gli algoritmi più adatti a specifici problemi
  • Confrontare i benefici e gli svantaggi di diversi approcci algoritmici alla soluzione di un problema dato (e.g., approccio ricorsivo rispetto ad un approccio iterativo)
    DdD5. Capacità di apprendimento
  • Essere in grado di apprendere nuovi linguaggi e paradigmi di programmazione
  • Essere in grado di ulizzare le conoscenze e competenze apprese per affrontare in maniera metodologica problemi complessi

Programma

1. Concetti introduttivi: Algoritmi, programmi e linguaggi - Struttura di massima di un calcolatore e di un sistema informatico (hardware, software, Sistema Operativo) Catena di programmazione.
2. Logica e codifica binaria dell’informazione (logica proposizionale, operatori logici AND, OR, NOT, leggi di De Morgan), rappresentazione dei numeri interi (base 2, 8, 1 complemento alla base 2), aritmetica binaria, rappresentazione dei numeri reali (notazione in virgola fissa e in virgola mobile), codifica dei caratteri.
3. Aspetti fondamentali della programmazione (con riferimento al linguaggio C): il linguaggio di programmazione e le esigenze di astrazione, la sintassi dei linguaggi, struttura di un programma monomodulo, astrazione sui dati (concetto di tipo e tipi base del linguaggio, operatori e compatibilità, i costruttori di tipo array, struct, puntatore, astrazione sul controllo dell'esecuzione (strutture di controllo condizionali, di selezione, iterative).
4. Sottoprogrammi e ricorsione: sottoprogrammi come astrazione sul controllo a livello di unità, passaggio dei parametri, dati locali, regole di visibilità, sviluppo top-down per raffinamento, ricorsione, supporto a run-time per la gestione della chiamata e ritorno da sottoprogramma (record di attivazione, stack e stack pointer).
5. Strutture dati dinamiche, liste collegate a puntatori.
6. Strutture dati persistenti: i file (concetti, operazioni, organizzazione logica), integrazione tra strutture dati in memoria centrale e su file.
7. Breve introduzione a Python come linguaggio "alternativo" al C.
Attività di laboratorio
L’attività del laboratorio ha lo scopo di rendere familiare allo studente sia l’utilizzo pratico del calcolatore sia i metodi e le tecniche utilizzate nella programmazione dei calcolatori. La frequenza al laboratorio, sebbene non obbligatoria, assume una particolare importanza ai fini dell’apprendimento della materia.
L'insegnamento non adotta modalità di didattica innovativa.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
L’esame prevede una verifica scritta della durata di due ore su tutti gli argomenti dell'insegnamento. In particolare, l'esame prevede:
la risoluzione di problemi numerici sulla codifica dell’informazione (Descrittore Dublino DdD1);
progettazione di semplici strutture dati e algoritmi (Descrittore Dublino DdD2);
identificazione e valutazione di algoritmi alternativi per risolvere un problema dato (Descrittore Dublino DdD3);
Implementazione di programmi in linguaggio C e Python (Descrittori Dublino DdD1, DdD2, DdD3, DdD5).
L'attività di laboratorio non contribuisce alla valutazione dell'esame.

Testi di riferimento

S.Ceri, D.Mandrioli, et al, Informatica: Programmazione
S.Ceri, D.Mandrioli, et al, Informatica: arte e mestiere
A. Bellini, A. Guidi, Linguaggio C - Guida alla programmazione

Codice insegnamento P427628299

FORMAL LANGUAGES AND COMPILERS 1° semestre · 5 CFU · IINF-05/A · 0 file

Theorerical concepts and algorithms for language definition and compiler design. Regular expressions, finite automata, and convertion from one model to the other. Context free grammars, ambiguity, structural adequacy.…

Scheda dell'insegnamento

Programma

Theorerical concepts and algorithms for language definition and compiler design. Regular expressions, finite automata, and convertion from one model to the other. Context free grammars, ambiguity, structural adequacy. Linguistic abstraction. Syntax directed transaltion, attribute grammars, and semantic analysis. Principles of dat flow analysis for programs.

Codice insegnamento P559629174

FOUNDATIONS OF ARTIFICIAL INTELLIGENCE 1° semestre · 5 CFU · IINF-05/A · 0 file

The goal of the course is to introduce the students to basic problems, models, and techniques of Artificial Intelligence (AI), and to enable them to model and solve specific AI problems. The course covers the most…

Scheda dell'insegnamento

Obiettivi formativi

The goal of the course is to introduce the students to basic problems, models, and techniques of Artificial Intelligence (AI), and to enable them to model and solve specific AI problems. The course covers the most fundamental concepts, modelling approaches, and resolution methods of classical AI, and provides an introduction to the history of the discipline and to some philosophical issues involved. The course also briefly overviews some AI topics that are discussed in depth in other courses. The teaching method is traditional (classroom lessons).

Dublin descriptors
Expected learning outcomes
Knowledge and understanding
Students will become acquainted to:
· the types of problems that are tackled in AI
· the types of applications that can profit from the use of AI-based solutions
· basic AI modelling and problem-solving techniques
· crucial moments in the history of AI
· critical issues involved in the effort of mechanising intelligent processes
Applying knowledge and understanding
Students will learn to:
· analyse and model problems according to different AI approaches
· design specific problem-solving techniques as instances of general classes of techniques
· evaluate the complexity of different modelling and problem solving techniques in connection with particular problems
Lifelong learning skills
Students will become able to appreciate the relevance and possibility of developing and applying AI methods in different application fields of industrial relevance
Students will be able to understand and critically evaluate AI systems deployed in different application scenarios

Programma

Introduction to AI
overview of the problems tackled in AI
main research areas and application fields
State space and related problem solving methods
state spaces and search methods
non-informed and informed search methods
adversarial search: minimax, alfa-beta pruning, and Monte Carlo tree search
constraint satisfaction problems
Logic and reasoning
recalls of propositional logic
recalls of resolution theorem proving
model-checking methods for propositional logic, SAT solvers
Planning
plan formation and execution
the STRIPS/PDDL model
planning as a search problem
satisfiability-based planning (SATPlan)
Uncertainty in knowledge representation and reasoning
Overview of AI topics
AI vs. Machine Learning (ML)
supervised, unsupervised, and reinforcement learning
Deep Learning (DL)
History and foundations
historical outline of the discipline
critical concepts of AI and their philosophical implications

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
The assessment is based on a written, closed-book test at the end of the course, taken in person, in class. It typically consists of questions on the course topics. Any test can include conceptual questions and exercises requiring a significant modeling effort. The test awards a maximum of 32 points (30 cum laude when the total score is 32). Students have approximately 1.5 hours to answer the test. Students can take the test at any exam session during the year. The written test can be taken only in person. The discussion of the graded exams is also in person only. Instructors can summon students who passed the written test for an additional (in-person) oral exam that will cover the entire course program.
Type of assessment
Description
Dublin descriptor
Written test
Solution of numerical problems
· solution of problems involving the application of known methods and techniques
Exercises focusing on design aspects
· solution of problems involving original modeling
Theoretical questions on all course topics with open answers:
· questions concerning fundamental conceptual aspects of AI models and methods
1,2
1, 2, 5
1, 5

Testi di riferimento

S. Russell, P. Norvig, Artificial Intelligence: A Modern Approach (4th edition), Editore: Prentice Hall, Anno edizione: 2021, ISBN: 978-0134610993 https://aima.cs.berkeley.edu
Note: Available at https://resolver.vitalsource.com/9781292401171 (from the Politecnico's network).
Stuart Russell and Peter Norvig, Intelligenza artificiale: Un approccio moderno, volume 1 (4a edizione), Editore: Pearson, Anno edizione: 2021, ISBN: 9788891904454 https://aima.cs.berkeley.edu
Note: Italian translation of the first part of the textbook (which covers almost all content of the course).

Codice insegnamento 056889

FOUNDATIONS OF OPERATIONS RESEARCH 1° semestre · 5 CFU · MATH-06/A · 0 file

Operations Research (O.R.) is the branch of applied mathematics dealing with quantitative methods to analyze and solve complex real-world decision-making problems. The course covers some of the fundamental concepts and…

Scheda dell'insegnamento

Obiettivi formativi

Operations Research (O.R.) is the branch of applied mathematics dealing with quantitative methods to analyze and solve complex real-world decision-making problems. The course covers some of the fundamental concepts and methods of O.R. pertaining to graph optimization, linear programming and integer linear programming. The emphasis is on optimization models and efficient algorithms with a wide range of important applications in engineering and management.

Knowledge and understanding (DdD 1)
The students will learn:

  • the mathematical language of optimization models and some important classes of models
  • the main properties and algorithms (including the worst case complexity) of/for the following graph optimization problems: minimum cost spanning tree, shortest path and maximum flow
  • the critical path method for project scheduling
  • the geometrical and algebraic aspects of Linear Programming (LP), and an LP algorithm
  • the main properties of LP duality, including weak/strong duality and the complementary slackness optimality conditions
  • the economical interpretation of the dual of some LP problems
  • the main characteristics of Integer Linear Programming (ILP) problems
  • the cutting plane method with fractional Gomory cuts
  • the Branch-and-Bound method for ILP and other combinatorial optimization problems.
    Applying knowledge and understanding (DdD 2)
    The students will be able to:
  • build optimization models starting from the decision problem descriptions, solve them using a modelling language based on Python and a state-of-the-art solver, and interpret the output
  • identify an appropriate graph optimization algorithm to tackle a given decision problem and apply it to small examples
  • apply the LP method to textbook examples
  • construct the dual of LP problems in explicit and parametric form
  • apply the studied ILP methods (Branch-and-Bound method, cutting plane method with fractional Gomory cuts) to small examples
  • leverage on the acquired theoretical and algorithmic knowledge to answer simple questions.
    Learning skills (DdD 3, DdD 5)
    The students will learn how to tackle complex decision-making problems with a solid mathematical and algorithmic approach, which can be adapted and extended to deal with a variety of real-world problems.

Programma

1. Introduction
Decision-making problems. Main steps of an O.R. study. Different types of optimization (mathematical programming) problems. Optimization models (decision variables, objective function, constraints) and modeling techniques.
2. Graph and network optimization
Optimum spanning trees. Shortest path problems: algorithms for the main variants (including Dynamic programming for acyclic graphs). Application to project scheduling: critial path method and Gantt diagrams. Maximum flows: Ford-Fulkerson algorithm and maximum flow-minimum cut theorem. Minimum cost flows, matching in bipartite graphs. An example of NP-hard network optimization problems: the Traveling salesman problem.
3. Linear Programming (LP)
LP models. Geometric aspects (vertices of the feasible region) and algebraic aspects (basic feasible solutions). Fundamental properties of linear programming. The Simplex method. LP duality theory: pair of dual problems, weak and strong duality, complementary slackness conditions. Economic interpretation. Sensitivity analysis. Special cases: assignment and transportation problems.
4. Integer Linear Programming (ILP)
ILP models for, among others, transportation, routing, scheduling and location problems. Formulations and linear programming relaxation. Exact methods: Branch-and-Bound algorithm, cutting plane method with fractional Gomory cuts.
Time permitting we will review some basics of computational complexity (recognition problems, classes P and NP, polynomial-time reductions, NP-complete and NP-hard problems) and introduce basic heuristic algorithms (greedy and local search).
A couple of topics will be assigned for independent study (e.g. LP sensitivity analysis) prior to sessions devoted to exercises or computer laboratory activities. There will be computer lab meetings and computer lab assignments.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
Valutazione continua facoltativa (a scelta dello studente)
A written exam which covers all the material presented in the lectures, the sessions devoted to the exercises, and the computer laboratory sessions and assignments. The first part of the written exam will be closed book and the last part will be open book. A few points will be assigned based on some formative assesments during the semester, further details will be provided at the beginning of the course.
The exam consists of several questions aimed at evaluating the level of (applying) knowledge and understanding of the main concepts, models, results and methods covered in the course as specified in the expected learning outcomes. In particular, it includes modeling questions, the solution of numerical problems using appropriate algorithms, and theoretical questions related to the main concepts, methods and results. (DdD 1, DdD 2, DdD3)

Testi di riferimento

All the course information and material will be available on WeBeep.
F. Hillier, G.J. Lieberman, Introduction to Operations Research, Editore: McGraw-Hill, Anno edizione: 2021
Note: 11th Edition
R.K. Ahuja, T.L. Magnanti, J.B. Orlin, Network flows. Theory, algorithms and applications, Editore: Prentice Hall, Anno edizione: 1993
D. Bertsimas, J. Tsitsiklis, Introduction to Linear Optimization, Editore: Athena Scientific, Anno edizione: 1997
M. Fischetti, Introduction to Mathematical Optimization, Anno edizione: 2019

Codice insegnamento 088983

GRAPH OPTIMIZATION 2° semestre · 5 CFU · MATH-06/A · 0 file

The course deals with some important network and graph optimization problems arising in several fields of application such as telecommunication, transportation and logistics. The course presents optimization models for…

Scheda dell'insegnamento

Obiettivi formativi

The course deals with some important network and graph optimization problems arising in several fields of application such as telecommunication, transportation and logistics. The course presents optimization models for different classes of problems and describes the main methods that have been proposed to tackle them.
The aim of the course is to provide students with a classification of optimization problems related to networks and other applications. Further, the course aims at providing the students with the knowledge of a wide range of optimization methods. The students will learn to model optimization problems arising in real life applications, to represent them as particular case of well known optimization problems, and to deal with them applying both exact and heuristic approaches. Beside theoretical knowledge, the course will provide practical experience in developing and applying the optimization techniques. During lab sessions, the students will be asked to apply their knowledge to deal with problems.

Knowledge and understanding (DdD 1)
The student will learn

  • some of the main families of optimization problems (network design and flows, location, scheduling)
  • the key heuristic methods, their features and properties
  • the principal relaxation approaches
  • the valid inequalities and some classical examples
    Applying knowledge and understanding (DdD 2)
    The student will be able to
  • identify the mathematical model underlaying an application and, if possible, map it to existing families of optimization problems
  • design a heuristic algorithm to tackle a problem, implement it and evaluate its performance
  • apply relaxation techniques and implement them to obtain a bound for a problem
  • derive valid inequalities based on classical examples and implement them to improve the bound
    Learning skills (DdD 3, DdD 5)
    The students will learn how to tackle complex optimization problems stemming from a variety of real-world applications. They will be able to devise advanced solution algorithms to such problems, and possibly map them to a graph structure to utilize computational efficiency. Moreover, students will be able to verify the quality of their algorithms through the development of adequate bounds.

Programma

Introduction. Brief review of mathematical programming models for graph and network optimization problems (paths, trees, minimum cost flow, maximum flow, travelling salesman problem, knapsack problem). Brief review of the Branch-and-Bound method and Cutting Plane algorithms (Gomory cuts).
Flow routing and Fixed Charge Network Design problems. Classification: splittable vs unsplittable flow, single vs multiple paths, multicommodity flows, node and arc fixed costs. Arc-based and path-based ILP models.
Column generation method. Dual problem and complementary conditions, the pricing problem.
Heuristic methods. Greedy algorithm. Local Search. Metaheuristics: tabu search, simulated annealing, variable neighborhood search. Very large scale neighborhood and ILP based neighborhood. Examples of application of heuristic methods.
Location problems. Classification: set covering and set partitioning, p -center and p -median problems, uncapacitated and capacitated facility location problems, single assignment and multiple assignment.
Valid inequalities and cutting planes. Cover inequalities for knpasack problem. Valid inequalities for network design and connectivity requirements.
Relaxation. Continuous relaxation, surrogate relaxation. Lagrangian relaxation: general framework and application to facility location problems and network design problems.
Scheduling problems. Introduction to scheduling problems. Classification: single machine scheduling with different objective functions (total weighted completion time, makespan, lateness, tardiness), parallel machines scheduling problems, flow shop, job shop. Models and algorithms for scheduling problems.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i facoltativo (a scelta dello studente), di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The exam includes a written test and a lab exam.
The written test includes:

  • exercises: the student is required to apply the knowledge for solving small examples and for applying the optimization methods to a given problem
  • theoretical questions on course topics with open answer: the student is required to demonstrate his/her knowledge of the optimization methods
    The lab part includes homeworks: the student is required to apply the methods and implement them to solve problems

Testi di riferimento

R. Ahuja, T. Magnanti, J. Orlin, Network flows: Theory, Algorithms, and Applications, Editore: Prentice Hall, Anno edizione: 1993
D. Bertsekas, Network Optimization: Continuous and Discrete Models, Editore: Athena Scientific, Anno edizione: 1998
F.W.Glover, G.A.Kochenberger, Handbook of Metaheuristics, Editore: Springer-Verlag, Anno edizione: 2003
J. Desrosiers, M. Lübbecke, G. Desaulniers, J. B. Gauthier, Branch-and-Price, Anno edizione: 2026
H.W. Hamacher, Z. Drezner, Facility Location: Applications and Theory, Editore: Springer, Anno edizione: 2001
B. Korte, J. Vygen, Combinatorial Optimization: Theory and Algorithms, Editore: Springer Verlag, Anno edizione: 2001
M.L. Pinedo, Scheduling - Theory, Algorithms, and Systems, Editore: Springer, Anno edizione: 2008
V.J. Rayward-Smith, I.H. Osman, C.R. Reeves, G.D. Smith, Modern heuristic search methods, Editore: Wiley and Sons, Anno edizione: 1996
M. Piòro, D. Medhi, Routing, Flow, and Capacity Design in Communica- tion and Computer Networls, Editore: Elsevier, Anno edizione: 2004
S.Martello, P.Toth, Knapsack problems, Editore: Wiley, Anno edizione: 1990
Laurence A. Wolsey, Integer Programming, Anno edizione: 2020, ISBN: 1119606527

Codice insegnamento 093735

IMAGE ANALYSIS AND COMPUTER VISION 1° semestre · 5 CFU · IINF-05/A · 0 file

The purpose of the Image Analysis and Computer Vision course is to study both the foundations on image formation, image analysis, 3D scene reconstruction, and the methodologies underlying the solution techinques to the…

Scheda dell'insegnamento

Obiettivi formativi

The purpose of the Image Analysis and Computer Vision course is to study both the foundations on image formation, image analysis, 3D scene reconstruction, and the methodologies underlying the solution techinques to the main problems involved.
Image analysis addresses the extraction of the content of one or several images; Computer Vision addresses the methodologies to obtain a representaton of the observed 3D scene. Optical, geometric, and algorithmic aspects are studied, as well as aspects connected to signal processing and data analysis.
A project allows to closely examine, possibly from a practical point of view, one or more of the discussed topics.

1. Knowledge and understanding: Geometric foundations of the image projection; Image analysis as a signal
2. Applying knowledge and understanding: Use geometric knowledge to devise techniques to interpret an observed scene; Use knowledge on signal processing to develop techniques to extract relevant features from images
3. Making judgements: Given a complex and realistic scene reconstruction problem, try to infer a sufficient set of constraints from the particular circumstances of the problem instance
4. Communication skills: presenting own ideas to the teacher/gruop mates relative to a complex problem to solve, reporting adopted solution and results
5. Learning skills: learning to correlate items from an eterogeneous corpus of knowledge to solve a complex and realistic Computer Vision problem, use foundations to allow lifetime learning in Image Analysis and Computer Vision

Programma

0. Introduction.
1. Camera sensors: transduction, optics, geometry, distortion
2. Basics on Projective geometry: modelling basic primitives (points, lines, planes, conic sections, quadric surfaces) and projective spatial transformations and projections.
3. Camera geometry, and single view analysis: calibration, image rectification, localization of 3D models.
4. Multi-view analysis: 3D shape reconstruction, self-calibration, 3D scene understanding.
5. Linear filters and convolutions, space-invariant filters, Fourier Transform, sampling and aliasing.
6. Nonlinear filters: image morphology and morphology operators (dilate, erode, open, close), median filters.
7. Edge detection and feature detection techniques. feature matching and feature tracking along image sequences.
8. Inferring parametric models from noisy data (including outliers), contour segmentation, clustering, Hough Transform, Ransac (random sample consensus).
9. Applications: object tracking, object recognition, classification.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, con revisioni periodiche, senza presentazione/discussione finale
Altro
EVALUATION.
The standard examination consists of two parts: an individual homework (max 10/30 pts) and an application project (max 20/30 pts) on a topic from a list proposed by the teacher (project can possibly be extended to Master Thesis).
A. Written individual homework: study the geometric aspect of the assigned problem, exploit problem specification to derive useful constraints (1,2, 3); implement the solution (including the extraction of the needed image features), while addressing noise and uncertainty on the extracted image features, and evaluate experimental results (3, 5); carefully write a self-sufficient report (4).
B. Assessment of project artifact with written report and presentation: Assessment of the design and experimental work done either individually or in small groups (up to three participants): 2, 3, 4, 5.
Project can be either full or short. Full project evaluation outcome contributes maximum 20/30 pts -possibly, with laude assignment- to the final mark. Short project evaluation contributes maximum 16/30 to the final mark (no laude). In both cases, the submission of a well written, self-explaining report plus a presentation file is required.
If the homework is submitted and a good score is obtained (minimum 8/10), the student can ask to compose his final mark basing only on the evaluation of the full project. A " laude" grade can only be granted if both the Homework and the Project are excellent, i.e., respectively 10/10 and 20/20.
ESCAPE STRATEGIES.
1) Project but no homework: the exam will include a written proof, including difficul exercizes. Final grade ranges up to a maximum of 28/30.
2) Homework but no project: the exam will include a full written proof, including some difficult exercizes. Final grade ranges to maximum of 27/30.
3) No homework, no project: the exam will consist in a full written proof, including some difficult exercizes. Final grade ranges to maximum 25/30.

Testi di riferimento

R. Hartley - A. Zisserman, Multi-view Geometry for Computer Vision, Editore: McGraw- Hill, Anno edizione: 2003
Slides of the course https://webeep.polimi.it/course/view.php?id=1047§ion=2

Codice insegnamento P088097407

IMPIANTI INFORMATICI (PER IL SETTORE DELL'INFORMAZIONE) 2° semestre · 5 CFU · IINF-05/A · 0 file

Componenti principali degli impianti informatici: client, server, reti di interconnessione, sistemi di storage (dischi RAID, SAN, NAS). Architettura applicativa delle intranet: organizzazione logica di una applicazione…

Scheda dell'insegnamento

Programma

Componenti principali degli impianti informatici: client, server, reti di interconnessione, sistemi di storage (dischi RAID, SAN, NAS). Architettura applicativa delle intranet: organizzazione logica di una applicazione Web su piu' livelli, thin e fat clients, tecniche per il controllo degli accessi, separazione tra logica di business e presentazione dei contenuti, tecnologie software per applicazioni Web (Servlet, JSP, EJB, .NET). Architettura di rete delle intranet: zona pubblica e zona privata, architettura dei firewall, extranet e protocolli per le VPN. Qualita' delle prestazioni: criteri e tecniche di dimensionamento, architettura dei siti Web ad elevate prestazioni, scalabilita' orizzontale e verticale (bilanciamento del traffico, caching, mirroring,), monitoraggio e caratterizzazione del carico. Problematiche di sicurezza: crittografia (simmetrica e asimettrica), firma elettronica e certificati digitali, protocolli applicativi sicuri (SSL e HTTPS).

Codice insegnamento P673857505

INFORMATION THEORY 2° semestre · 5 CFU · IINF-03/A · 0 file

This course is about how to measure, represent, and communicate information efficiently. It explains why bits have become the universal currency for information exchange and how information theory underpins the design…

Scheda dell'insegnamento

Obiettivi formativi

This course is about how to measure, represent, and communicate information efficiently. It explains why bits have become the universal currency for information exchange and how information theory underpins the design and operation of modern technologies such as smartphones, the Internet, and cloud computing. Information measures are first introduced and then applied to the analysis of the fundamental performance limits achievable in data compression and communication over noisy channels.
The goal of the course is to teach students how the concepts of source coding and channel capacity are used to model, analyze, and design modern communication systems in order to enable efficient information processing. Since these concepts constitute a fundamental foundation of virtually every digital communication system, another objective is to establish concrete links between information theoretic principles and advanced communication technologies. To this end, students will have the opportunity to work on projects that apply the concepts and methodologies learned during the course.
In addition to the foundations of classical information theory, the course provides an introduction to Quantum Information Theory. Whereas classical information theory is based on the representation, processing, and transmission of information using classical bits, quantum information theory considers information encoded in quantum bits, or qubits, which obey the principles of quantum mechanics. This part of the course introduces the fundamental concepts of quantum information and highlights the similarities and differences between the classical and quantum frameworks.
The course also includes project activities carried out in collaboration with industrial partners. Depending on the assigned topic, students will address either classical information theory problems, including source coding and channel coding, or introductory applications of quantum information theory. These projects are designed to connect the theoretical concepts presented during the course with practical engineering problems arising in industrial applications.

1 - Knowledge and understanding
Lectures and exercise sessions will allow students to:

  • know how to measure information quantitatively
  • know theoretical and methodological skills related to the concept of classical and quantum information
  • understand properties of entropy, mutual information as applied them to information processing
    2 - Applying knowledge and understaning
    After the end of the course, students should be able to:
  • understand and solve complex problems in different interdisciplinary areas
  • integrate and individually find and re-adapt known solutions to growing problems
  • analyse uncertainty in terms of information entropy and other information measures
  • summarize and present the results achieved during the analysis and specification activities
  • to communicate the results of their activity in a clear and convincing way
    3 - Making judgements
    After the end of the course, students should be able to:
  • define mathematical models by considering the informational aspects of a system and the related measures
  • evaluate concrete schemes for compression and communication

Programma

1 – Introduction to Information Theory
Historical background. Introduction to information theory and its applications.
2 - Entropy and Source Coding
Entropy of a memoryless source. Coding of memoryless sources. Prefix codes. Kraft inequality. Huffman codes and Shannon codes. Source coding theorems for memoryless sources. Joint entropy and conditional entropy. Chain rules. Entropy of sources with memory. Source coding theorem for memory sources. Practical source coding methods. Universal coding. Arithmetic coding.
3 - Channel Capacity
Channel models. Discrete memoryless channels. Mutual information. Relative entropy. Data processing inequality. Channel capacity. Reliable communication over discrete memoryless channels. Entropy, mutual information, and channel capacity for continuous channels. Additive white Gaussian noise (AWGN) channel. Channel coding theorem. Error exponent. Fano's inequality.
4 – From Classical to Quantum Information Theory
Motivation for quantum information theory. Quantum states. Qubits. Bra–ket notation. Unitary evolution. Quantum gates. Quantum measurement and the Born rule. Density operators. Pure and mixed states. Composite quantum systems. Entanglement. Bell states. No-cloning theorem. Quantum entropy. Properties of quantum entropy. Quantum mutual information. Coherent information.
5 – Project on Selected Topics
A voluntary project laboratory will be assigned during the semester. All projects will be related to the course topics covered in Sections 1–4 and will be carried out either in collaboration with industrial partners, who will propose engineering problems, or on topics proposed by the students and approved by the course instructors. Depending on the selected project, students will address classical information theory, including source and channel coding, or introductory topics in quantum information theory.
Projects will be carried out in groups of two or three students during the second half of the semester. Their objective is to apply the concepts learned in the course to realistic engineering problems. The evaluation will be based on the produced artifacts, such as documentation, software, or experimental results, together with a final presentation. Technical discussions with the course instructors and researchers from the participating companies will complement the project activities.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale obbligatoria
Progetto/i - Elaborato/i obbligatorio, di gruppo, con revisioni periodiche, con presentazione/discussione finale
The written exam evaluates Knowledge and understanding (DD1) and Applying knowledge and understanding (DD2) through numerical exercises and open questions on the topics addressed in the course. It can assign up to 23 points, which form the basis for the final mark before the oral examination.
The oral examination evaluates Making judgements (DD3), Communication skills (DD4), and Learning skills (DD5). It can assign up to 10 points.
Students may choose to complete a voluntary project in place of the oral examination. The project evaluates Applying knowledge and understanding (DD2), Making judgements (DD3), and Communication skills (DD4) in the context of an applied study. It can assign up to 10 points.
The mark of 30 cum laude is awarded when the total score after the project presentation reaches 33.

Testi di riferimento

Lecture notes https://webeep.polimi.it/course/view.php?id=14728
Luca Barletta, Gianluigi Liva, Maurizio Magarini, Lecture Notes on Channel Coding https://webeep.polimi.it
Note: Supplemental Material for the Courses Channel Codes for of Iterative Decoding (TUM) and Information Theory (PoliMi).
T. M. Cover, J. A. Thomas, Elements of information theory (1st or 2nd edition), Editore: John Wiley & Sons, 1991 (1st ed.), 2006 (2nd ed.). First edition available online for PoliMi students (http://onlinelibrary.wiley.com/book/10.1002/0471200611)
Sandro Bellini, Information Theory https://webeep.polimi.it/mod/folder/view.php?id=337337
D. J. C. MacKay, Information Theory, Inference, and Learning Algorithms, Editore: D. J. Cambridge University Press, 2003
R. G. Gallager, Information Theory and Reliable Communication, Editore: John Wiley & Sons, 1968

Codice insegnamento 054322

INGEGNERIA DEL SOFTWARE 1° semestre · 5 CFU · IINF-05/A · 1 file

Rendere lo studente in grado di realizzare progetti software complessi, utilizzando le tecniche e gli strumenti moderni dell’ingegneria del software. Tecniche di didattica innovativa (“flipped classroom”) verranno…

Scheda dell'insegnamento

Obiettivi formativi

Rendere lo studente in grado di realizzare progetti software complessi, utilizzando le tecniche e gli strumenti moderni dell’ingegneria del software. Tecniche di didattica innovativa (“flipped classroom”) verranno utilizzate per stimolare la partecipazione degli studenti al corso e lo sviluppo di capacità di studio autonomo.

Descrittori di Dublino
Risultati di apprendimento attesi
Conoscenza e comprensione
A seguito del superamento dell’esame lo studente conosce:
le tecniche di progettazione e programmazione secondo il paradigma orientato agli oggetti, attraverso l’uso dei linguaggi UML e Java;
i principi alla base della specifica formale dei requisiti di una applicazione software;
i principi alla base della verifica di correttezza (test) di una applicazione software;
i principi della programmazione funzionale in Java
le tecnologie offerte da Java per lo sviluppo di applicazioni client-server
Capacità di applicare conoscenza e comprensione
Attraverso le esercitazioni su casi di studio, ed a seguito del superamento dell’esame, lo studente acquisisce la capacità di applicare le tecniche e le tecnologie apprese a casi reali, per quanto di complessità limitata.
Autonomia di giudizio
A seguito del superamento dell’esame lo studente:
è in grado di risolvere problemi di programmazione e progettazione orientate agli oggetti su temi anche non direttamente illustrati durante le lezioni/esercitazioni
è in grado di gestire problemi di analisi, progetto, sviluppo e test di applicazioni software, anche se non strettamente inerenti alle problematiche affrontate nel corso assumendo decisioni motivate
Capacità di apprendimento
Anche attraverso l’uso di tecniche di “flipped classroom” lo studente acquisisce la capacità di apprendere in maniera autonoma argomenti legati alle tematiche generali affrontate durante il corso.

Programma

  • Introduzione all'Ingegneria del Software e ciclo di vita del software
  • Introduzione al paradigma orientato agli oggetti
  • Analisi e progettazione di sistemi orientati agli oggetti
  • Il linguaggio Java
  • Unified Modeling Language (UML)
  • Design Pattern
  • Programmazione concorrente in Java
  • Programmazione funzionale in Java
  • Verifica e validazione del software
  • Tecniche di testing funzionale e strutturale
  • Specifica formale mediante Java Modeling Language (JML)

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
L'esame consiste in una prova scritta, con esercizi e domande aperte che copriranno tutti gli argomenti trattati nel corso. Durante la prova è possibile consultare liberamente libri e appunti. In alternativa, è possibile sostenere una prova orale a discrezione del docente. Non sono previste prove in itinere.
La tabella che segue dettaglia come le diverse forme di valutazione contribuiscono ai risultati di apprendimento attesi.
Modalità di verifica
Descrizione
Risultato di apprendimento perseguito (descrittore di Dublino)
Esame scritto
Risoluzione di esercizi anche di tipo progettuale
Domande di carattere teorico a risposta aperta sugli argomenti del corso
1, 2, 3, 5
1, 2, 3, 5

Testi di riferimento

B.Liskov, J. Guttag, Program Development in Java, Editore: Pearson education, Anno edizione: 2000, ISBN: 0-201-65768-6
H. M. Deitel, P. M. Deitel,, Vol 1+2: Java Fondamenti di programmazione+ Java Tecniche avanzate di programmazione, Editore: Apogeo
Note: Può essere sostituito da altri testi avanzati di programmazione Java, anche online.

Codice insegnamento P717408923

INTERNET OF THINGS 2° semestre · 5 CFU · IINF-03/A · 0 file

At the end of the course the students will be able to: -anlyze and design complex telecommunication systems based on Internet of Things -understand and apply complex communication technologies at the very heart of IoT…

Scheda dell'insegnamento

Obiettivi formativi

At the end of the course the students will be able to:
-anlyze and design complex telecommunication systems based on Internet of Things
-understand and apply complex communication technologies at the very heart of IoT systems
-design communication networks of tiny and constrained devices to enable IoT applications and services
-design IoT systems interconnected with the Internet

1 - Knowledge and understanding
Students will learn how to:
-Analyze complex communication technologies for IoT systems
-Analyze application layer protocols for the IoT
-Analyze management platforms for the IoT
-Identify IoT system components and their relations
-Use operative systems for the IoT
-Use prototyping platforms for the IoT
2 - Applying knowledge and understanding
Students will be able to:
-Dimension and optimize the energy consumption of sensor nodes
-Evaluate the performance of communication technologies for the IoT
-Evaluate the performance of application layer protocols for the IoT
-Evaluate the performance of management platforms for the IoT
-Develop simple applications based on IoT
3 - Making judgements
Students will learn to:
-Understand the fundamental tradeoffs that govern the energy management of battery-operated sensor nodes
-Identify how the fundamental system limitations impact the design of the IoT systems
-Recognize the design space and its degrees of freedom that can be exploited to define communication technologies for the IoT
4 - Communication
Students will learn to:
-describe complex network technologies at different levels of detail

Programma

The course will provide the basics on the four major building blocks of the Internet of Things: the reference hardware, the communication technologies, the management platforms and the data storage/processing solutions. The course will start off by overviewing the most common hardware components of sensor nodes, and will then move to addressing the challenges which have to be faced to interconnect and manage such tiny devices. In this field, low power short rannge and long range communication technologies will be reviewd. Finally, the course will describe the main features and requirements of management platform commonly used to orchestrate IoT systems.
Program at a Glance
1-Introduction: the vision of ambient intelligence, application examples, enabling Technologies (Sensor Networks, RFID), networking Building Blocks and Abstractions
2-Hardware Components & Abstractions: sensor node hardware architectures, basics of ADC, energy consumption models for sensor nodes
3-Application layer protocols for the IoT: networking basics, the Constrained Application Layer Protocol (COAP), the Message Queuing Telemetry (MQTT)
4-Communication technologies for the Internet of Things long range solutions: evolution of the mobile radio network to support IoT traffic (LTE-CatM, NB-IoT), examples of Low Power Wide Area Networks (LoraWAN),
5-Communication technologies for the Internet of Things - short range solutions: introduction to capillary network infrastructures, the ZigBee protocol stack (IEEE 802.15.4 PHY/MAC layer, ZigBee Network layer, ZigBee application layer and profiles), Bluetooth and BLE, overview of THREAD and MATTER
6-Radio Frequency Identification: application Scenarios, the Physical Layers of RFID (operation band, transmission fundamentals), Collision Arbitration Standards and Solutions (Tree-based arbitration, frame-aloha based arbitration, the Q-Algorithm, performance evaluation of arbitration protocols)
7-Hands-On Activities: management and prototyping platforms (ThingSpeak, NodeRed, WokWi), analysis of IoT traffic via Wireshark

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i obbligatorio, di gruppo, senza revisioni periodiche, senza presentazione/discussione finale
The students will be evaluated through two mutually exclusive ways:
(i) in-course challenges
or
(ii) a final written exam on the topics of the course
The students can decide which type of evaluation is the most appropriate for them,
The written exam includes three exercises and a set of questions on the topics of the course. The students may refer to the course web site to check for templates and sample exams from past year's editions of the course.
The in-course challenges consist in developing mini-projects with fixed delivery deadlines throughout the course. The mini-projects will be organized as follows: one written homework with quantitative/qualitative exercises (similar to those discussed during exercises sessions), three practical mini-projects on the development of IoT applications by leveraging the software tools presented during lectures and lab sessions.
The final grade is
-the grade obtained in the final exam, for those students attending the final exam
-the average gade of the 4 in-course challenges, for those students clearing the course with the challenges. In this case, a short final written exam up to 3 additional points can be given to increase the final grade
The mini-projects can be developed by groups of up 2 students.
The written homework must be done singularly
The students will have to prove in the written exam and in the in-course challenges:
-to have clearly understood and acquired to the topics of the course
-to be able to qualitatively assess all the building blocks of a IoT system (hardware, communication technologies, management platforms and data storage/processing)
-to be able to assess the energy consumption of IoT devices
-to be able to dimension and optimize IEEE 802.15.4 networks
-to be able to evaluate the performances of RFID arbitration systems based on Frame ALOHA and binary trees
-to have acquired and understood the working details of short range (ZigBee, Bluetooth/BLE) and long range (LoraWAN, NB-IoT) communication technologies for the IoT
-to have acquired and understood the working details of IoT application layer protocols (COAP, MQTT)
-to be able to manage the reference software (Node-Red, Thingspeak)
-to be able to analyze IoT traffic
-to be able to build up working IoT application or networking solutions leveraging the aforementioned software
-to be able to produce clear and comprehensive documentaion describing the developed project

Codice insegnamento P912116696

LEGISLAZIONE DEI BENI CULTURALI 1° semestre · 5 CFU · CEAR-11/B · 0 file

presentazione del corso con particolare riferimento all'iter che verrà seguito e agli obiettivi che si prefigge introduzione storico-culturale relativa alle motivazioni che hanno portato nel corso dei secoli all'esigenza…

Scheda dell'insegnamento

Programma

  • presentazione del corso con particolare riferimento all'iter che verrà seguito e agli obiettivi che si prefigge
  • introduzione storico-culturale relativa alle motivazioni che hanno portato nel corso dei secoli all'esigenza di disporre di una legislazione specifica sui beni culturali
  • breve excursus storico sullo sviluppo della normativa dagli Stati preunitari fino alle più recenti leggi
  • analisi del Codice dei Beni Culturali con particolare riferimento agli articoli che riguardano i concetti fondamentali di tutela, conservazione, fruizione, promozione, gestione, uso e circolazione dei beni
  • illustrazione della struttura del Ministero dei Beni e delle Attività culturali e del Turismo in particolare alla luce della recente riorganizzazione
  • illustrazione dei riferimenti del Codice dei Beni Culturali ad altre fonti: Costituzione, Codice Civile, recenti provvedimenti ed aggiornamenti
  • illustrazione della legge riguardante il diritto d'autore e analisi degli articoli fondamentali ai fini di una primo approccio alla materia

Codice insegnamento 054928

MACHINE LEARNING 2° semestre · 5 CFU · IINF-05/A · 0 file

Machine learning deals with the problem of building programs that learn from experience. While artificial intelligence focuses on the representation of knowledge and the algorithms for reasoning about such knowledge,…

Scheda dell'insegnamento

Obiettivi formativi

Machine learning deals with the problem of building programs that learn from experience. While artificial intelligence focuses on the representation of knowledge and the algorithms for reasoning about such knowledge, machine learning deals with the problem of extracting knowledge from experience gathered solving problems to be used to solve unseen instances of similar problems.
This course provides the theoretical and methodological foundation of machine learning methods and algorithms that are used in several application areas, including, Data Mining, Robotics, Autonomous Agents, Bioinformatics, Recommender Systems, Social Networks, etc.

Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn how to:
Model supervised learning and reinforcement learning problems
Train their models
Select the model complexity
Evaluate the performance of their models
Applying knowledge and understanding
Given specific project cases, students will be able to:
Model the learning problem
Select the most appropriate learning technique
Tune the hyperparameters of the studied techniques
Assess the performance of the learned model.
Making judgements
At the end of this course, students will be able to:
Correctly assess the performance of the proposed solutions
Be aware of fairness issues involved in the training of machine learning methods
Lifelong learning skills
Students will learn the trade-off between bias and variance and hot to manage it by selecting the proper complexity of the learning model
Students will learn to develop algorithms to solve relevant learning problems.

Programma

Introduction (1 class)
Basic concepts.
Learning theory. (4 classes)
Bias/variance tradeoff. Union and Chernoff/Hoeffding bounds.
VC dimension. Worst case (online) learning.
Practical advice on how to use learning algorithms.
Supervised learning. (8 classes)
Supervised learning setup. LMS.
Logistic regression. Perceptron. Exponential family.
Kernel methods: Radial Basis Networks, Gaussian Processes, and Support Vector Machines.
Model selection and feature selection.
Ensemble methods: Bagging, boosting.
Evaluating and debugging learning algorithms.
Reinforcement learning and control. (6 classes)
MDPs. Bellman equations.
Value iteration and policy iteration.
TD, SARSA, Q-learning.
Value function approximation.
Policy search. Reinforce. POMDPs.
Multi-Armed Bandit.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
The assessment will be based on a written exam at the end of the course, where both theoretical competence and modeling skills will be tested.
Type of assessment
Description
Dublin descriptor
Written test
Solution of numerical problems: exercises on supervised learning and reinforcement learning problems
Solution of modeling problems: exercises where the student needs to properly model the machine learning problem and choosing the most appropriate solution technique
Theoretical questions with open answers.
1,2
1,2,3,5
1,2,5

Testi di riferimento

Christopher M. Bishop, Pattern Recognition and Machine Learning, Editore: Springer-Verlag Berlin, Heidelberg, Anno edizione: 2006, ISBN: 0387310738 https://www.microsoft.com/en-us/research/people/cmbishop/prml-book/
Richard S. Sutton and Andrew G. Barto, Reinforcement Learning: An Introduction, Editore: MIT Press, Cambridge, MA, Anno edizione: 2018, ISBN: 0262039249 http://incompleteideas.net/book/the-book-2nd.html
Murphy, K. P., Probabilistic Machine Learning: An introduction, Editore: MIT Press, Anno edizione: 2022 https://probml.github.io/pml-book/book1.html
Deisenroth, A. Aldo Faisal, and Cheng Soon Ong, Mathematics for Machine Learning, Editore: Cambridge University Press, Anno edizione: 2020 https://mml-book.com/

Codice insegnamento P390556545

METODOLOGIA DELLA RICERCA BIBLIOGRAFICA 1° semestre · 5 CFU · HIST-04/C · 0 file

Comprendere scopo, funzioni, tecniche e problemi della Bibliografia e delle discipline bibliografiche in relazione al lavoro scientifico. Conoscere contenuti e le modalità di creazione, disseminazione, ricerca,…

Scheda dell'insegnamento

Programma

Comprendere scopo, funzioni, tecniche e problemi della Bibliografia e delle discipline bibliografiche in relazione al lavoro scientifico. Conoscere contenuti e le modalità di creazione, disseminazione, ricerca, rappresentazione e valutazione delle risorse dell'universo bibliografico. Apprendere i principi e le basi dell'information literacy e dell'allestimento dei repertori bibliografici finalizzati alla ricerca scientifica.
Alla fine del corso gli studenti saranno in grado di: 1. Impostare correttamente un lavoro scientifico (per esempio: presentazioni, elaborati, tesine, tesi); 2. Cercare, valutare, selezionare, organizzare e utilizzare le informazioni e le fonti per un lavoro scientifico; 3. Usare con consapevolezza e competenza un repertorio bibliografico, un catalogo, una banca dati, un motore di ricerca; 4. Allestire un repertorio bibliografico; 5. Utilizzare un reference manager
Contenuti:
La Bibliografia e le discipline bibliografiche. L'universo bibliografico e la sua rappresentazione. Trovare, identificare, selezionare e ottenere le risorse bibliografiche. Metodologia della ricerca. L'allestimento dei repertori bibliografici come lavoro scientifico. Presentazione e uso di un programma di gestione di bibliografie personali.

Codice insegnamento 051536

MODEL IDENTIFICATION AND DATA ANALYSIS - 1ST MODULE 2° semestre · 5 CFU · IINF-04/A · 0 file

The goal of this course is to provide a framework for advanced modeling and data analysis techniques for dynamical systems, ultimately enabling students to extract (“learn”) useful information from measured data. The…

Scheda dell'insegnamento

Obiettivi formativi

The goal of this course is to provide a framework for advanced modeling and data analysis techniques for dynamical systems, ultimately enabling students to extract (“learn”) useful information from measured data. The course focuses on the following topics: stochastic processes, optimal prediction, parametric and non-parametric system identification, time series and input-output systems. The course has both a theoretical and a practical flavor, with the illustration of some significant applications of the presented techniques in various fields.

Dublin Descriptors
Expected learning outcomes
Knowledge and understanding (DD1)
Through theoretical lectures and numerical exercises sessions, students will achieve a comprehensive knowledge of advanced modeling and data analysis techniques. In particular, they will learn the main tools of system identification. Students will also be able to understand the fundamental problems that can be encountered while extracting information from a finite set of observations taken from an unknown system.
Applying knowledge and understanding (DD2)
Students will be able to apply the mentioned methods to practical estimation, identification, prediction, and fault detection problems, using real data measurements.
Making judgements (DD3)
Students will be able to autonomously analyze temporal data sets and select the most appropriate methodology to extract useful information from the data. They will also be able to critically analyze the validity and reliability of the identified models.
Communication (DD4)
Students will learn to correctly present the results of a model identification process, comparing different models in terms of size, accuracy and reliability, and showing the models’ prediction capabilities.
Learning skills (DD5)
Students will be able to apply the methodologies learned throughout the course to tackle complex modeling and estimation problems in a structured way. They will also have a sufficiently comprehensive background to be able to learn new methodologies. Students will also be able to read current research papers and understand the issues raised by current research in the field.

Programma

The program of the course is as follows.
Basic concepts of stochastic processes
ARMA and ARMAX classes of parametric models for time series and for Input/Output systems
Parameter identification of ARMA and ARMAX models
Analysis of identification methods
Model validation and pre-processing
Time series analysis

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
The exam will be a written test in one of the official available dates. The exam will consist of both theoretical questions and simple (i.e., not computer-aided) exercises. The final marks will be awarded based on the correctness of the answers, the appropriateness of the technical terminology employed, and the clarity of exposition. Specifically, the students will be asked to:
show their understanding of the main problems (and the corresponding solution techniques) in the field of data-driven modeling in general (DD1)
select and describe the most appropriate methodological tools for a given problem (DD2, DD3, DD5)
use analytical methods to solve system-identification problems of moderate complexity (DD2, DD3, DD5)
provide a critical analysis of the results and clearly illustrate methodological processes or theoretical properties (DD4, DD5)
An additional oral exam may be required by the professor, at his own discretion.

Testi di riferimento

S. Bittanti, Model Identification and Data Analysis, Editore: John Wiley, Anno edizione: 2018, ISBN: 9781119546368
S. Bittanti and S.M. Savaresi, Lecture notes
P. van Overschee, B.L. de Moor, Subspace Identification for Linear Systems: Theory, Implementation, Applications, Editore: Kluwer Academic Publishers, Anno edizione: 1996 ftp://ftp.esat.kuleuven.be/pub/SISTA/ida/reports/96-26a.pdf
Note: Freely available online.
L. Ljung, System Identification: theory for the user (II ed.), Editore: Prentice-Hall, Anno edizione: 1999
T.S. Soderstrom, P.G. Stoica, System Identification, Editore: Prentice-Hall, Anno edizione: 1989

Codice insegnamento 090037

MULTIAGENT SYSTEMS 1° semestre · 5 CFU · IINF-05/A · 0 file

Computer systems are increasingly intelligent, distributed, and interconnected. This trend naturally leads to the development of systems composed of autonomous intelligent decision-making entities, called autonomous…

Scheda dell'insegnamento

Obiettivi formativi

Computer systems are increasingly intelligent, distributed, and interconnected. This trend naturally leads to the development of systems composed of autonomous intelligent decision-making entities, called autonomous agents, that interact with each other in complex environments. The advent of AI agents based on Large Language Models is just the last step along this path. Agent-based systems are an abstraction of specific computing systems deployed in several applications, including electronic commerce, control of industrial processes, logistics, ambient intelligence, web services, robotics, space systems, and modeling of complex systems.
This course aims to present general techniques for developing multiagent systems, independently of the implementation technology and of applicative domains. In particular, the course, after shortly presenting methods for developing single agents able to make rational decisions in situations affected by uncertainty, will focus on methods for developing systems composed of multiple agents, with special emphasis on the interaction mechanisms between the agents. Moreover, some real-world applications of agent systems will be discussed. At the end of the course, students will acquire the ability to design and develop distributed systems based on the agent paradigm.
This course extends the (mostly) single-agent point of view taken in other courses (including, for example, Foundations of Artificial Intelligence and Machine Learning) to consider the design and the development of collections of intelligent agents, which are currently envisaged by several recent developments, including Agentic AI, and initiatives, including that on Cooperative Artificial Intelligence.

Dublin descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn:
the models that represent distributed systems as collections of computational systems, called autonomous agents, that interact together,
the models that represent individual autonomous agents as rational utility maximizers,
some significant types of interaction mechanisms between multiple autonomous agents (coalition formation, planning, distributed constraint optimization, learning,...),
some of the relevant algorithms available to implement the interaction mechanisms and their properties (range of application, optimality guarantees,...).
Applying knowledge and understanding
Given application cases that involve multiple decision-makers, students will be able to:
develop agent-based models and systems that are based on the identification of individual decision-making entities (autonomous agents) and on the identification of the interaction mechanisms between them,
analyze and understand existing multiagent systems.
Lifelong learning skills
Students will be able to understand and critically evaluate the modeling based on multiagent systems composed of multiple decision-makers.
Students will be able to understand, learn, and develop new interaction mechanisms for autonomous agents.
Students will be able to apply acquired knowledge when designing complex distributed computational systems.

Programma

1. Introduction to the concepts of autonomous agents and multiagent systems.
2. Autonomous agents as rational decision-makers: architecture for intelligent agents, Markov decision processes.
3. Interactions between self-interested agents: short introduction to game theory, coalition formation.
4. Interactions between cooperative agents: multiagent planning, distributed constraint optimization.
5. Multiagent learning: multiagent Markov decision processes and stochastic games, multiagent reinforcement learning, evolutionary game theory.
6. Examples of real-world applications of agent-based systems, including Agentic AI applications.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
The students' assessment is based on a closed-book written test at the end of the course, consisting of exercises and questions on all the topics of the course. The test will typically last 75 minutes. The test assigns a maximum of 31 points (30 cum laude is assigned when the total score is strictly larger than 30 points). Students can take the written test at any exam session during the year. The instructor can summon students who passed the written test for an additional (in-person) oral exam that will cover the entire course program. Students cannot request to do oral exams.
Type of assessment
Description
Dublin descriptor
Written test
Solution of numerical problems
Application of algorithms to given problem instances.
Exercises focusing on design aspects
Designing models of autonomous agents and of their interaction mechanisms for simple problems
Theoretical questions on all the course topics with open answer
1, 2
1, 2, 5
1, 5

Testi di riferimento

Gerhard Weiss (editor), Multiagent Systems (second edition), Editore: The MIT Press, Anno edizione: 2013, ISBN: 978-0-262-01889-0 https://ebookcentral.proquest.com/lib/polimi/detail.action?docID=3339590
Note: Web site of the book: http://www.the-mas-book.info
Further teaching material could be possibly made available along the course.

Codice insegnamento 056893

MULTIMEDIA INTERNET 2° semestre · 10 CFU · IINF-03/A · 0 file

The course of Multimedia Internet (10 credits) is divided into two parts (part 1: 5 credits, part 2: 5 credits). Part 2 is the course of Multimedia Internet Applications (5 credits). The course is organized in such a way…

Scheda dell'insegnamento

Obiettivi formativi

The course of Multimedia Internet (10 credits) is divided into two parts (part 1: 5 credits, part 2: 5 credits). Part 2 is the course of Multimedia Internet Applications (5 credits). The course is organized in such a way that the student can take the 5 credits course of Multimedia Internet Applications (that is, part 2 of the Multimedia Internet course) can do it without having to study any material related to part 1 (i.e., the two parts of the course are independent).
The main objective of the Multimedia Internet course is to teach the students the transport of multimedia contents through the Internet and, more in general, through IP networks (public or proprietary). This topic is analyzed from different points of vie in part 1 and part 2.
Part 1 (Multimedia Internet course only).
Part 1 addresses the transport of multimedia contents through the Internet considering the "user plane", that is, it analyzes the protocols and network architectures used to carry media streams through the network (or across a series of networks) with the necessary Quality of Service level. Therefore, the following topic will be addresses: definition of Quality of Service for different types of media, techniques to guarantee the requested Quality of Service, among which Resouce Allocation, Admission Control, Traffic Conditioning, Scheduling, Active Queue Management.
Part 1 has also a methodological component in which the student will learn how to analyze and design, quantitatively, a multiservice IP network for the transport of multimedia streams.
Part 2 (Multimedia internet course and Multimedia Internet Applications course).
Part 2 also addresses addresses the transport of multimedia contents through the Internet, from the point of view of the protocols used to setup and maintain connections for the transport of media streams. Part 2 is focused on media streaming, voice, audio, and video codecs. Containers for media contents (MP4, MKV, AVI, MOV, WEBM). Session Description Protocol (SDP), Real Time Protocol (RTP/RTCP), Real Time Streaming Protocol (RTSP), HTTP streaming (Progressive client pull, Adaptive Bit Rate (ABR), HTTP Live Streaming (HLS), Server-Sent Events (SSE), WebSockets, WebRTC). The architecture of IPTV systems will be treated, along with cahning, Content Delivery Networks (CDN), Over The Top providers (OTT), usage of Peer To Peer video streaming subsystems in IPTV services. Session Initiation Protocol, Voice Over IP, and interworking of signaling.

Part 1 (Multimedia Internet course only).
Part 1 - Knowledge and understanding.
The student will learn

  • how to understand and define correctly and quantitavely a Quality of Service objective, the concept of Service Level Agreement (SLA) and traffic Conditioning agreement.
  • The architecture and operation modes of Traffic Conditioners (policers, shapers, markers).
  • How Resource Allocation and Admission Control work.
  • The type of schedulers used in network routers and how they work.
  • How Active Queue Management works and when it is adviceable to use it.
  • The IP Differentiated Services and IP Integrated Services network architectures.
    Part 1 - Apply Knowledge and understanding.
    The student will learn quantitative methods to analyze and design IP multiservice networks that use the techniques listed above to transport multimedia services qith Quality of Service.
    The student will learn how to dimension a multiservice network given a requested set of multimedia connections and corresponding Quality of Service targets.
    Part 1 - Learning skills.
  • Understanding precisely how multiservice networks work
  • Learning new method for the analysis and design of multiservice networks.
    Part 2 (Multimedia Internet course and Multimedia Internet Applications course).
    Part 2 - Knowledge and understanding.
    The student will learn
  • to understand how a signaling system works, with special reference to the transport of multimedia contents.
  • to understand the issues and complexity of interworking different signaling systems.
  • to understand the differences between "underlay" and "overlay" multimedia networks.
    Part 2 - Apply Knowledge and understanding.
    The student will learn
  • How to evaluate a signaling architecture and identify the requirements related to interworking signaling systems.
    Part 2 - Learning skills.
  • Understanding how the control of a multiservice network works, what are the requiremetns and contraints, related to the type of services to be delivered.

Programma

Part 1 (Multimedia Internet course only):
Aanalysis and design of IP multimedia networks with quality of service.
1. Multimedia communications and Quality of Service (QoS) issues. Audio/video digital media. Service Level Agreements (SLA); definition of QoS requirements; customer-proivider contracts.
2. The traffic Profile. The Traffic Conditioning Agreement (TCA). Controlling TCA. Traffic regulation: policing; marking; shaping.
3. Resource allocation for QoS guarantee. The usage of TCA and SLA. Scheduling policies.
4. Practical architectures for QoS-oriented delivery. The IP Differentiated Services architecture. The IP Integrated Services architecture. The MultiProtocol Label Switching. QoS and routing. COPS (Common Open Policy Service).
5. Design of IP networks with QoS. The Network Calculus; managing regulated traffic; traffic envelopes and service envelopes. Design of FIFO, SP, GPS and EDF schedulers. Design of networks of schedulers with both short-range dependent and long-range dependent traffic.
Part 2 (Multimedia Internet course and Multimedia Internet Applications course):
Multimedia services in the Next Generation Network.
1. The Next Generation Network and ultra-large bandwidth services. NGN architectures, Fiber to the Exchange, Fiber to the cabinet, Fiber to the Building, Fiber to the Home. point-to-point and Passive Optical Network systems. The Next generation Network in Italy, Europe. IP peering models. Net Neutrality. IP interconnection systems.
2. Media streaming, voice, audio and video codecs. Compression of media, lossless and lossy codecs, color spaces.
3. The Session Description Protocol and its usage for media negotiation.
4. The Real Time Protocol (RTP) and the Real Time Control Protocol (RTCP).
5. Setup and confioguration of multimedia session with the Real Time Streaming Protocol (RTSP).
6. HTTP streaming, progressive client pull, Adaptive Bit Rate (ABR), HTTP Live Streaming (HLS), Server-Sent Events (SSE), WebSockets, WebRTC).
7. Transport Protocols in media streaming, usage of TCP, UDP, and SCTP.
8. The IPTV service, architectures and video servers, storage, RAID architectures. Caching and Content Delivery Networks (CDN), Over The Top providers (OTT).
9. Usage of Peer To Peer video streaming in modern IPTV systems.
10. The Session Initiation Protocol and interworking of signaling.

Modalità d'esame

Prova scritta obbligatoria, con prove in itinere
Part 1 (Multimedia Internet course only):
Written exam.
Exercises 1 and 2, numerical. Dublin Descriptors: (1. Knowledge and understanding. 2. Apply Knowledge and understanding. 3. Learning skills.)
Exercise 3. Written open question on Protocols/Network architectures Dublin Descriptors: (1. Knowledge and understanding. 2. Apply Knowledge and understanding. 3. Learning skills.).
Part 2 (Multimedia Internet course and Multimedia Internet Applications course):
Written exam.
Exercises 1, 2, 3: Written open question on Protocols/Network architectures Dublin Descriptors: (1. Knowledge and understanding. 3. Learning skills.)
Exercise 4: A specific case signaling architecture to be examined and commented by the student, with the purpose of highlighting possible weak points, issues and if needed suggestion of improvments Dublin Descriptors: (1. Knowledge and understanding. 2. Apply Knowledge and understanding. 3. Learning skills.)

Testi di riferimento

The material of Part 1 is available as a set of slidesets, available on the WeBeep platform. https://webeep.polimi.it
Note: For Part 1 the reference material is a set of pdf files providing a full coverage of the topics developed in the lessons and exercitations.
The material of part 2 is a single pdf file, avaliable on the WeBeep platform. https://webeep.polimi.it
Note: The material is a pdf text that develops in detail all the topics of Part 2

Codice insegnamento P526965717

MULTIMEDIA INTERNET APPLICATIONS 2° semestre · 5 CFU · IINF-03/A · 0 file

1. La Next Generation Network e i servizi ultra-large bandwidth. Le architetture per la NGN, Fiber to the Exchange, Fiber to the cabinet, Fiber to the Building, Fiber to the Home. Sistemi Point-to-Point e Passive Optical…

Scheda dell'insegnamento

Programma

1. La Next Generation Network e i servizi ultra-large bandwidth. Le architetture per la NGN, Fiber to the Exchange, Fiber to the cabinet, Fiber to the Building, Fiber to the Home. Sistemi Point-to-Point e Passive Optical Network. La Next generation Network in Italia ed Europa. Modelli di IP peering. La Net Neutrality.
2. Architettura dei servizi nella NGN: Il Service Layer, Il Transport Layer. Requisiti dei servizi multimediali. Interconnessione di reti NGN.
3. Comunicazioni multimediali in Internet: i media digitali, coded audio e video. La qualita' della voce mobile, VoLTE, HD voice. Allplicazioni multimediali "consumer-oriented" ; video on demand; videotelephony; videoconference; televisione IP, TV interattiva.
4. Televisione IP TV e la Internet TV; caratteristiche tecnologiche; architetture. La catena del valore della IP TV; il content provider, il service provider, il network provider, il consumatore. La Internet TV; la coda lunga dei contenuti.
5. Sistemi Peer to peer (P2P) per il file sharing. Architetture overlay dei sistemi P2p. Sistemi P2P centralizzati e distribuiti. Organizzazione e gestione delle risorse con le Distributed Hash Tables. Chord. Gestione delle query in Gnutella, Gnutella 2, EDonkey, KAD, Bit torrent.
6. I sistemi P4P, architetture e standard.
7. Audio e video streaming nei sistemi P2P, architetture e protocolli. Aspetti costo/prestazioni di IP TV e Internet TV. Protocolli per la ricerca di contenuti. Routing nei sistemi P2P. Televisione P2P. Streaming real-time; Il Real Time Streaming Protocol. Architetture di sistemi per lo streaming; architetture centralizzate e distribuite. Le Content Delivery Network. Internet broadcasting.
8. La telefonia P2P. Skype. Architetture e protocolli per il Voice over IP (VoIP). H.323. Session Initiation Protocol. Real Time Protocol.
9. Interworking di sistemi VoIP e telefonia PSTN legacy; SIGTRAN; Media Gateway Control Protocol; Architettura Softswitch; media gateway;signalling gateway; livelli di adattamento di sigtran (M2UA, M3UA, M2PA). SCTP.

Codice insegnamento P895312880

MULTIMODAL INTERACTIVE TECHNOLOGIES AND APPLICATIONS 2° semestre · 5 CFU · IINF-05/A · 0 file

This course explores innovative web technologies, guiding students in understanding how interaction on the Web can be extended and enhanced through the integration of advanced multimodal interactive technologies. The…

Scheda dell'insegnamento

Obiettivi formativi

This course explores innovative web technologies, guiding students in understanding how interaction on the Web can be extended and enhanced through the integration of advanced multimodal interactive technologies.
The course is structured into three specialised modules:
Web-Visual: Focuses on traditional paradigms for organizing and navigating visual content.
Web-Conversational: Explores the integration of conversational AI and Large Language Models into web platforms to enable fluid, natural-language interaction.
Web-eXtended Reality: Deepens immersive interactive technologies and their integration into web platforms.
By combining theoretical insights with hands-on exercises, this course guides students to learn how to address the growing demand for innovative multimodal web solutions. It is ideal for those students eager to create impactful and engaging multimodal web technologies.

By the end of the course, students will be able to:
Manage the design and development of advanced web applications, with a strong focus on user interaction and experience
Design and prototype conversational systems for the Web, based on Conversational AI models and Large Language Models (LLMs).
Integrate eXtended reality (XR) components into web applications to create immersive user experiences.
Dublin Descriptors
Knowledge and Understanding Students will learn how to:
understand the principles and paradigms underlying multimodal interaction and their relevance to the Web;
master the phases of a human-centered design process for advanced multimodal interactive applications;
analyze users, contexts, and tasks to identify opportunities for integrating multimodal interaction;
recognize the affordances and limitations of web-based frameworks supporting visual, conversational, and extended reality (XR) modalities;
evaluate multimodal web applications in terms of usability, user experience, and interaction quality.
Applying Knowledge and Understanding Given specific design and development scenarios, students will be able to:
specify requirements for multimodal interactive web applications;
design and prototype visual, conversational, and XR components to extend web interaction;
integrate Conversational AI and Large Language Models (LLMs) into web platforms to enable natural-language interaction;
combine immersive XR technologies with web standards to create engaging, interactive experiences;
develop functional multimodal web prototypes using contemporary frameworks and tools.
Making Judgments Students will be able to:
analyze and model multimodal interaction workflows and architectures;
critically assess trade-offs among different modalities and technologies according to project goals and constraints;
select and justify appropriate design principles, frameworks, and integration strategies for multimodal web solutions.
Communication Students will learn how to:
communicate design decisions and technical solutions clearly, using appropriate levels of abstraction for technical and non-technical audiences;
document multimodal architectures and design rationales effectively, highlighting usability and user experience aspects.
Lifelong Learning Skills Students will learn how to:
autonomously explore emerging multimodal interaction paradigms and web technologies;
apply a continuous learning approach to adapt to the evolution of interactive technologies and frameworks;
transfer the acquired design and development methodologies to new domains and interaction contexts.

Programma

The course is structured across three modules, each combining the introduction of methodological concepts and technological frameworks in an integrated format of lectures, guided exercises, and hands-on development sessions.
Module 1: Web-Visual:
Web design and principles
Web usability and accessibility
Key concepts of Web architectures and architectural patterns
Fundamentals of Web technologies and languages (client-side and server-side)
Module 2: Web-Conversational:
Design of Conversational Agents for the Web
Integration of Conversational AI and LLMs into web platforms; hands-on sessions with major frameworks and libraries (e.g., OpenAI).
Automatic Speech Recognition, Text-to-Speech and Speech-to-Text technologies.
Modulo 3: Web-eXtended Reality:
Overview of the XR interaction paradigm.
Design of AR experiences.
Integration of XR technologies into web platforms; hands-on sessions with major frameworks for XR on the web (e.g., WebXR, Three.js).
Introduction to additional AI-based input channels for Web interaction, such as image processing and object recognition.

Modalità d'esame

Progetto/i - Elaborato/i obbligatorio, di gruppo, con revisioni periodiche, con presentazione/discussione finale
Valutazione continua facoltativa (a scelta dello studente)
The exam is mainly project-based. A project consists of the conceptual design, grounded in the design principles introduced during the lectures, and the development of a mid-fidelity prototype demonstrating the application of the learned technologies to the implementation of the proposed design. The design and implementation will be guided by a set of specifications and requirements provided by the instructor at the beginning of the course.
Teamwork is strongly encouraged, although individual projects might also be permitted.
Throughout the course, intermediate assignments will support students in gradually applying the concepts discussed in class to their projects. These deliverables will contribute to the incremental construction of the final project outcome. Regular review sessions will provide formative feedback on the intermediate submissions and support the ongoing development of the project.
On the official exam dates, each team will present the final result of their work. The assessment will focus on both the overall quality of the final project and the technical skills demonstrated during its development, with particular attention to each team member's individual contribution. The final exam will therefore:

  • Evaluate the project outcome along with the completeness of the designed prototype in relation to the assigned requirements; the methodological and technical correctness of the solution; the originality of the solution; and the effort invested in the project activity.
  • Verify students’ understanding of the course content with attention to the individual comprehension of each team member.
    T ype of assessment
    Description
    Dublin descriptor
    Assessment of project artefacts
    Assessment of the quality of the design and experimental work developed by students in groups, and of the correct understanding of concepts, paradigms, and technologies
    1, 2, 3, 5
    Oral presentation
    Assessment of the presentation of the work developed by students in groups
    2, 3, 4, 5

Codice insegnamento 063499

MUSICHE POPOLARI CONTEMPORANEE 2° semestre · 5 CFU · PEMM-01/C · 0 file

Il corso ha lo scopo di fornire un'ampia panoramica sulle principali tematiche e metodologie sviluppate nel campo dei popular music studies per approcciarsi all'analisi della canzone sotto il profilo formale, musicale,…

Scheda dell'insegnamento

Programma

Il corso ha lo scopo di fornire un'ampia panoramica sulle principali tematiche e metodologie sviluppate nel campo dei popular music studies per approcciarsi all'analisi della canzone sotto il profilo formale, musicale, sonoro e contenutistico. Il repertorio di riferimento sarà quello della canzone contemporanea italiana, pur se non mancheranno - sulla scorta della letteratura accademica sull'argomento - accenni ed espemplificazioni che guarderanno al più ampio insieme delle popular music internazionali e ai loro linguaggi. Si affronterà una ricognizione della definizione formale della canzone e sulle sue principali dimensioni organizzative e comunicative (testo verbale, forma, melodia, interpretazione vocale, struttura modulare, arrangiamento, armonia, produzione), per arrivare alla considerazione del ruolo dei media e della tecnologia nel negoziare le forme concrete in quanto prodotto destinato alla produzione e distribuzione di massa. Particolare attenzione verrà riservata alle tecniche di rappresentazione e visualizzazione delle caratteristiche formali e sonore della canzone, quale strumento di indagine e di trasmissione delle conoscenze e dei risultati dell'analisi.

Codice insegnamento 054932

NONLINEAR OPTIMIZATION 2° semestre · 5 CFU · MATH-06/A · 0 file

Il corso si propone di presentare i principali metodi di ottimizzazione non-lineare, continua e discreta. Contenuti: Condizioni di ottimalita' per problemi non vincolati e vincolati, funzioni Lagrangiane e dualita';…

Scheda dell'insegnamento

Programma

Il corso si propone di presentare i principali metodi di ottimizzazione non-lineare, continua e discreta. Contenuti: Condizioni di ottimalita' per problemi non vincolati e vincolati, funzioni Lagrangiane e dualita'; metodi di tipo gradiente, di tipo Newton e a passo ristretto; programmazione quadratica ricorsiva e metodi con funzioni di penalita'. Complementi di ottimizzazione discreta: rilassamenti, metodi di branch-and-bound e poliedrali, euristiche.

Codice insegnamento 051822

NUMERICAL ANALYSIS 1° semestre · 5 CFU · MATH-05/A · 0 file

This course introduces basic concepts and methods of Numerical Analysis with the aim of providing reliable and accurate approximations to problems recurrent in the engineering practice, described via linear and nonlinear…

Scheda dell'insegnamento

Obiettivi formativi

This course introduces basic concepts and methods of Numerical Analysis with the aim of providing reliable and accurate approximations to problems recurrent in the engineering practice, described via linear and nonlinear mathematical models. The different numerical methods are theoretically derived with particular attention to key concepts like convergence, consistency, and stability.
The course is organized in lectures and computer labs. Laboratory sessions are meant to provide practical feedback to the theoretical knowledge with the implementation of the algorithms and methods presented during the lectures. All computations are carried out using the Matlab scientific software environment.

Knowledge and understanding:
‐ the basic concepts and the possible errors due to the floating point arithmetics;

  • the main numerical methods to approximate data and functions, solve linear and nonlinear equations, derivatives and integrals, and ordinary differential equations;
  • the main properties of the considered approximation schemes;
  • essential use of the MATLAB language.
    Applying knowledge and understanding:
  • apply the learned numerical schemes implementing computer codes in the MATLAB language;
    ‐ using appropriate numerical methods to solve some problems arising from engineering applications.
    Making Judgement:
  • be able to select the most appropriate tool for the problem at hand;
  • be able to critically assess the quality of the solution and the properties of the adopted numerical method.
    Communication skills:
  • be able to interact with other students and teachers during exercise sessions and using the WeBeep forum.

Programma

  • Floating-point arithmetics: different sources of the computational error; absolute vs relative errors; the floating point representation of real numbers; the roundoff unit; the machine epsilon; floating-point operations; over- and under-flow; numerical cancellation;
  • Numerical approximation of nonlinear equations: the bisection and the Newton methods; the fixed-point iteration; convergence analysis (global and local results); order of convergence; stopping criteria and corresponding reliability; generalization to the system of nonlinear equations (hints);
  • Numerical methods for continuuous optimization: Free and constrained optimization; Line-search; Newton and quasi-Newton descent directions; Gradient and Conjugate Gradient; Trust region Methods; Constrained optization;
  • Numerical approximation of systems of linear equations: direct methods (Gaussian elimination method; LU and Cholesky factorizations; pivoting; sparse systems: Thomas algorithm for tridiagonal systems); iterative methods (the stationary and the dynamic Richardson scheme; Jacobi, Gauss-Seidel, gradient, conjugate gradient methods (hints); choice of the preconditioner; stopping criteria and corresponding reliability); accuracy and stability of the approximation; the condition number of a matrix; over- and under-determined systems: the singular value decomposition (hints);
  • Numerical approximation of functions and data: Polynomial interpolation (Lagrange form); piecewise interpolation; cubic interpolating splines; least-squares approximation of clouds of data;
  • Numerical approximation of derivatives: finite difference schemes of the first and second order; the undetermined coefficient method;
  • Numerical approximation of definite integrals: simple and composite formulas; midpoint, trapezoidal, Cavalieri-Simpson quadrature rules; Gaussian formulas; degree of exactness and order of accuracy of a quadrature rule;
  • Numerical approximation of ODEs: the Cauchy problem; one-step methods (forward and backward Euler and Crank-Nicolson schemes); consistency, stability, and convergence (hints).

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Prova orale condizionata (a scelta del docente)
Five exam sessions are scheduled on the dates established by the Faculty calendar.
The exam consists of a written test during which it will be required:
To answer theoretical questions on the topics covered during the course, which may deal with the statement and/or the proof of relevant theoretical results; the precise definition of concepts such as convergence, consistency, and stability of a numerical scheme; the deduction of a numerical method;
To program small computer codes based on MATLAB to solve numerical problems of the type seen at the lectures and during exercise sessions.
An oral assessment may follow the written exam if the teacher deems it necessary.
We assess:
1) The capability of the student to apply the knowledge and technique acquired during the course (Dublin Descriptors 1 and 2);
2) The student's ability to evaluate the result's appropriateness and correctness (Dublin Descriptors 2 and 3);
3) The ability to develop simple numerical computer codes autonomously and evaluate their effectiveness for the problem at hand (Descriptors 3 and 5).

Testi di riferimento

Quarteroni, Alfio, Saleri, Fausto, Gervasio, Paola, Scientific Computing with MATLAB and Octave, Editore: Springer, Anno edizione: 2010, ISBN: 978-3-642-12429-7
Quarteroni, Alfio, Sacco, Riccardo, Saleri, Fausto, Numerical Mathematics, Editore: Springer, Anno edizione: 2007, ISBN: 3-540-34658-9

Codice insegnamento 089180

ORGANOLOGIA 1° semestre · 5 CFU · PEMM-01/C · 0 file

Lo studente acquisirà competenze sulla storia degli strumenti musicali occidentali dal Medioevo all'età contemporanea, accennando a classificazione, morfologia e prassi nei diversi contesti storici. Inoltre lo studente…

Scheda dell'insegnamento

Programma

Lo studente acquisirà competenze sulla storia degli strumenti musicali occidentali dal Medioevo all'età contemporanea, accennando a classificazione, morfologia e prassi nei diversi contesti storici.
Inoltre lo studente sarà consapevole dei principi acustici alla base del suono, con particolare riferimento ai principi di formazione e di trasmissione.
Al termine del corso lo studente sarà in grado di orientarsi autonomamente per approfondire singoli strumenti musicali, sapendo sfruttare i principali strumenti di ricerca (cataloghi, repertori online, testi generali e monografie).
Contenuti:
Si prenderanno in esame le diverse famiglie di strumenti, partendo dal principio di produzione del suono ed esaminando lo sviluppo storico delle varie tipologie: strumenti ad ancia, flauti, trombe e corni, strumenti a percussione, strumenti a corda sfregata, strumenti a corda percossa e pizzicata, strumenti elettroacustici-elettromeccanici ed elettronici. Affronteremo anche nello specifico: clavicordo e clavicembalo, pianoforte, organo a canne.

Codice insegnamento 061879

PHILOSOPHY OF SCIENCE AND TECHNOLOGY 1° semestre · 5 CFU · PHIL-02/A · 0 file

The course aims at providing the students with a critical understanding of the philosophical foundations of science and technology. But what is the relation between philosophy and science? On the one hand, the…

Scheda dell'insegnamento

Obiettivi formativi

The course aims at providing the students with a critical understanding of the philosophical foundations of science and technology. But what is the relation between philosophy and science? On the one hand, the discoveries by scientists are often inspired by philosophical ideas. On the other hand, scientific achievements and technological advancements pose deep conceptual questions to philosophers. The connection between these disciplines is thus so tied that it becomes difficult to even draw a border between them. This course explores such a connection through the study of important episodes in the history of science. Outstanding issues of philosophy of science and technology, such as scientific progress, the method of science and the confirmation of theories and laws, will be addressed. Moreover, a particular focus will be devoted to philosophical questions concerning the nature of space as they emerge in the foundations of science, especially in relation to the famous debate between Leibniz and Newton.

Programma

The course aims at providing the students with a critical understanding of the philosophical foundations of science and technology.
But what is the relation between philosophy and science? On the one hand, the discoveries by scientists are often inspired by philosophical ideas. On the other hand, scientific achievements and technological advancements pose deep conceptual questions to philosophers. The connection between these disciplines is thus so tied that it becomes difficult to even draw a border between them. This course explores such a connection through the study of important episodes in the history of science. Outstanding issues of philosophy of science and technology, such as scientific progress, the method of science and the confirmation of theories and laws, will be addressed. Moreover, a particular focus will be devoted to philosophical questions concerning the nature of space as they emerge in the foundations of science, especially in relation to the famous debate between Leibniz and Newton. Finally, in the context of philosophy of technology, we will explore epistemic tools that are used to draw scientifically-informed inferences, such as computer simulations and thought experiments.
Here's below a list of the main topics:

  • Method of science
  • Demarcation between science and pseudo-science
  • Confirmation
  • Scientific Progress
  • Philosophy of Space: Absolutism vs Relationism
  • Scientific Reasoning
  • Philosophy of Technology

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Altro
Final written exam based on general questions about the topics of the lectures: specifically, the students are assigned to write several essays, which have to be emailed directly to the instructors at the following address: [email protected]. There are also individual class presentations scheduled during the term

Testi di riferimento

Alan Chalmers, What is This Thing Called Science?, Editore: Hackett Pub Co Inc
Nick Huggett, Space from Zeno to Einstein: Classic Readings With a Contemporary Commentary, Editore: Bradford Books

Codice insegnamento 056048

PRINCIPLES OF PROGRAMMING LANGUAGES 1° semestre · 5 CFU · IINF-05/A · 0 file

Programming languages are one of the most important tool for building a software system: several different languages are used in a modern computer, at different levels of abstraction. Clearly, issues in writing the…

Scheda dell'insegnamento

Obiettivi formativi

Programming languages are one of the most important tool for building a software system: several different languages are used in a modern computer, at different levels of abstraction. Clearly, issues in writing the operating system or low level drivers are much different from those encountered in high-level applications. In a single complex application often various levels (and languages) coexist and collaborate, from core logic written e.g. in C++ or Java, to scripting and gluing, usually performed using a dynamic interpreted language (e.g. Python).
Like natural languages, programming languages are a fundamental means of expression. Algorithms implemented using different programming languages may be extremely different, both aesthetically, as higher-level languages can be very synthetic and are in general very expressive, and from the performance profile, as lower-level languages permit a finer tuning on the memory footprint of the application and on the performance of the generated code.
This course presents the main aspects of the programming languages landscape, by analyzing similarities and differences, approaches and paradigms, both traditional and new. Substantial fragments of some significant programming languages will be introduced, seen as instances of the covered paradigms.

Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn how to:
Understand the most common programming language paradigms
Understand the semantics of many common programming language constructs
Understand the most suitable linguistic approach, and the right linguistic abstraction for new projects
Applying knowledge and understanding
Given specific project cases, students will be able to:
Design new programming language constructs or idioms
Design new Domain Specific Languages
Adapt an existing language to new paradigms
Making judgements
Communication
Lifelong learning skills
Students will learn how to understand the basic semantics of many programming language approaches, constructs, and variants
Students will learn how to choose the right programming languages, abstractions, and paradigms to be used in a project

Programma

1) Motivations and Preliminaries
2) Basic Abstraction Mechanisms
Variables, Binding, and Scoping
Expressions and statements
Procedures and recursion
Macros
Parameter Passing: call by value, by reference, and by name
Types: basic data types; pointers; dynamic and stating type checking; type inference; parametric polymorphism
Exception Handling - issues and variants
3) Main Programming Paradigms
Introduction: the Procedural Paradigm
3.1) Functional Programming
History
Functional programming concepts: referential transparency, functions as a
first-class entity, higher-order functions
Evaluation order and type systems
Purity and Monads
Continuations
3.2) Object-Oriented Programming
History and variants
Main issues and relation with Abstract Data Types
Dynamic Method Binding and "ad hoc" polymorphism
Encapsulation and Inheritance
Class vs Prototype-based inheritance
3.3) Concurrent Programming
History, background, and motivation
The Actor model
General issues on Communication and Synchronization
Variants and usages
3.4) General Considerations and Other Paradigms
Multi-paradigm languages
Meta-programming facilities
Domain Specific Languages
Logic programming

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
The exam is written and “open book”, i.e. students can consult their notes and books. The exam consists in solving small problems using languages presented in class.
Type of assessment
Description
Dublin descriptor
Written test
Solution of small practical or theoretical problems
Implementation using different languages and paradigms, in an idiomatic way
Choice of the right linguistic paradigm for the problem
Design of suitable data structures
1, 2, 5

Testi di riferimento

Official webpage of the course https://webeep.polimi.it/
Graham Hutton, Programming in Haskell, Editore: Cambridge University Press, Anno edizione: 2016, ISBN: 978-1-316-62622-1
Norman Ramsey, Programming Languages: Build, Prove, and Compare, Editore: Cambridge University Press, Anno edizione: 2023, ISBN: 978-1-107-18018-5
Shriram Krishnamurthi, Programming Languages: Application and Interpretation, Anno edizione: 2012 https://cs.brown.edu/courses/cs173/2012/book/

Codice insegnamento P166467437

RECOMMENDER SYSTEMS 1° semestre · 5 CFU · IINF-05/A · 0 file

Recommender systems are algorithms that approximate aspects of human decision making to predict users' needs and preferences. More formally, they use data mining and machine learning to help users find interesting and…

Scheda dell'insegnamento

Obiettivi formativi

Recommender systems are algorithms that approximate aspects of human decision making to predict users' needs and preferences. More formally, they use data mining and machine learning to help users find interesting and useful products. Products can be almost anything: physical items (e.g., smartphones), places (e.g., restaurants), digital content (e.g., news, movies, music), and more. Recommendations are produced from a variety of inputs, ratings and comments on products, individuals' or communities' past preferences and choices, social networks, and context of use.
Recommender systems are now present in most of the online services we use and, as they mediate our interactions with many platforms, they affect our lives in ways we are not often fully aware of. Consider, for example, the potential impact of a service that selects the news seen by a large group of people, or that affects their economic conditions by suggesting job offers, or by recommending to others the content (music, art) they created.
A well-known success story is Netflix, which launched the Netflix Prize in 2006, a competition offering a 1-million-dollar award for improving its video-streaming recommender system. The Netflix Prize was a very popular initiative that drew attention to the recommender systems field and contributed to its substantial progress. The technology behind recommender systems has evolved into a rich collection of tools that enable practitioners and researchers to develop effective recommenders. We study a selection of algorithms from the most important families of approaches, including how they work, how to use them, how to evaluate them, and their strengths and weaknesses from an applied perspective. Topics include content-based filtering, collaborative filtering, dimensionality reduction, deep learning, graph-based methods, and hybrid techniques. The approach is hands-on, with evaluation including a competition similar to the Netflix Prize that involves implementing and testing algorithms.

DD1 Knowledge and understanding
The student will know and understand:
The characteristics and limitations of a selection of models representative of the main families of recommendation algorithms at a conceptual level, and when each is appropriate.
How to design rigorous evaluation from multiple perspectives by selecting appropriate experimental protocols and metrics, and the common risks related to bias, and fairness.
DD2 Applying knowledge and understanding
Given a practical recommendation problem, the student will be able to:
Explore the design space of recommendation methods and select an approach consistent with the scenario requirements, justifying the choice against viable alternatives.
Implement, train, and evaluate models under rigorous protocols, selecting metrics aligned with the dimensions of interest and analyzing trade-offs across accuracy and diversity, while considering scalability.
DD3 Making judgments, DD5 Learning skills
By participating in the Engaged exam or opting for a project, the student will learn to:
Improve model quality through an iterative process of trial, evaluation, and analysis, making motivated decisions.
Learn autonomously from documentation and research literature, adapt methods to the specific scenario, and design ad hoc variants to improve recommendation quality.

Programma

1) Introduction to Recommender Systems

  • Applications and goals
  • Taxonomy
    2) Non-Personalized Recommenders
  • Understanding preferences, ratings and interactions
  • Inferring preferences
  • Top popular, Best rated
  • Global effects (biases)
    3) Evaluation
  • User and provider utility
  • Comparative evaluation: On-line vs Off-line vs. Lab
  • User-centered metrics and evaluation: relevance, novelty, diversity
  • Relevance: error vs. accuracy metrics vs. ranking metrics
  • Cold Start, New-Item and New-User problems
  • Experimental protocols: datasets and the fallacy of hidden data
  • On-line evaluation: basic concepts
    4) Content-Based Filtering (CBF)
  • Introduction to content-based recommenders
  • Similarity between items
  • Similarity between users and items: building user profiles
  • Attributes and their normalization: TF-IDF
    5) Collaborative Filtering (CF)
  • Introduction to User-User Collaborative Filtering
  • K-Nearest-Neighbor and Shrink Term
  • Introduction to Item-Item Collaborative Filtering
  • Strengths and weaknesses of Item-Item vs. User-User CF
  • Domain knowledge vs. Machine Learning approaches: CF as an optimization problem
    6) Dimensionality Reduction Recommenders
  • Introduction to dimensionality-reduction recommenders: Matrix Factorization
  • Concepts behind Latent Semantic Analysis and Singular Value Decomposition (SVD)
  • Training Matrix Factorization: FunkSVD, ALS and others
  • Extending Matrix Factorization: SVD++ and AsySVD
  • Bayesian Personalized Ranking (BPR)
    7) Hybrid Recommenders
  • Overview of hybridization techniques
  • Collaborative filtering with side information
  • Factorization Machines
    8) Advanced topics: Graph-Based Recommenders
  • Random walks on bipartite and tripartite Graphs (notation, steady states)
  • Random walk algorithms (PageRank, P3, P3Alpha, RP3Beta)
    9) Advanced topics: Graph Convolutional Network Recommenders
  • Graph Convolutional Networks
  • Simplified GCN for recommendation (LightGCN)
  • Popularity bias
  • Frequency filtering methods (GF-CF)
    10) Advanced topics: Deep Learning Recommenders
  • Neural models for Recommender Systems (basics, loss functions)
  • Two Tower models
  • Autoencoder models (denoising, variational)

Modalità d'esame

Prova scritta facoltativa (a scelta dello studente), senza prove in itinere
Progetto/i - Elaborato/i facoltativo (a scelta dello studente), di gruppo, senza revisioni periodiche, con presentazione/discussione finale
The learning outcomes of this course have two components: theory and application. In order to obtain a full grade the students must show they have reached the required skills and understanding in both. Students can choose between two types of evaluation.
# Engaged. Students with programming experience, willing to understand the theory of recommender systems but with a stronger focus on how to write recommendation algorithms in practice, can chose the innovative evaluation track, which provides a more practical hands-on learning experience. The evaluation is divided into two parts: a mandatory competition focused on applying recommendation algorithms and an optional exam focused on the theory.
Competition (max 27 points - mandatory), the competition will run at the end of the semester and will only be available during that timeframe.
Students can participate in teams of up to 2 people.
At the end of the competition, the students will need to write a two-page report of their activity or will present their solution in front of the class. Evaluation will be based on the quality of the recommendation model developed and the evidence provided in the report or presentation, which reflects the learning outcomes DD2, DD3, and DD5.
The best teams of the competition will have the opportunity to participate to the International RecSys challenge (https://remaplab.deib.polimi.it/recsys-challenge/). We will publish more details on the competition on the course web page at a later date.
Written Exam (max 5 points - optional), on advanced theory topics. Evaluation will assess DD1.
# Traditional. Students who are primarily interested in understanding the theoretical concepts of recommender systems, can choose to focus on the conceptual and mathematical content. The exam is divided into two parts: a mandatory written exam on theory and, for the optional applied part, either a written exam or a project.
Written exam (max 26 points - mandatory), on theory. Evaluation will assess DD1, and DD2 at a conceptual level.
And optionally one between:
Written exam (max 5 points - optional), on applied topics. Evaluation will primarily assess DD2 in particular on the implementation, training and evaluation of models.
Project (max 5 points - optional), during the semester a limited number of projects *may* be available and will be published on the course web site. Projects typically consist in the implementation and testing of a recommendation algorithm, possibly starting from a scientific article. Projects will be assigned on a first-come-first-served basis. Students can group into teams but further details will depend on the specific project. Note that the projects are tipically connected with our current research activities and therefore will have deadlines. Failing to meet the deadlines will result in a failing grade for the project. Evaluation will consider the student's autonomy, the quality and correctness of the implementation, the soundness of the experimental design, and the clarity of the written or oral report. This reflects learning outcomes DD2, DD3, and DD5.

Testi di riferimento

Research Group (ReMAP Lab) website https://remaplab.deib.polimi.it/
Aggarwal, Charu C., Recommender Systems: The Textbook, Editore: Springer, Anno edizione: 2016, ISBN: 978-3-319-29659-3 https://amzn.eu/d/6omO1G2
Jannach, D., Zanker, M., Felfernig, A., & Friedrich, G, Recommender systems: an introduction, Editore: Cambridge University Press., Anno edizione: 2010 https://amzn.eu/d/7OnIQbC
Note: Basic concepts
Kantor, Paul B., Lior Rokach, Francesco Ricci, and Bracha Shapira, Recommender systems handbook, Editore: Springer, Anno edizione: 2022 https://amzn.eu/d/frO7PLW
Note: Advanced book

Codice insegnamento P159325096

SOCIOLOGIA DELLA MUSICA 1° semestre · 5 CFU · PEMM-01/C · 0 file

Il corso sarà articolato in due parti. La prima sarà dedicata all'introduzione di alcuni testi e concetti chiave della sociologia della cultura in generale e della sociologia musicale del Novecento (Weber, Simmel,…

Scheda dell'insegnamento

Programma

Il corso sarà articolato in due parti. La prima sarà dedicata all'introduzione di alcuni testi e concetti chiave della sociologia della cultura in generale e della sociologia musicale del Novecento (Weber, Simmel, Durkheim, Adorno, Bourdieu, Becker, DeNora, Born). Tra i contenuti della prima parte del corso, particolare rilievo sarà dato alle questioni sociologiche relative alle dinamiche di genere e alle diseguaglianze educative, nel quadro della promozione degli obiettivi 5 e 10 dell'Agenda 2030 per lo Sviluppo Sostenibile: parità di genere e riduzione della diseguaglianza. La seconda sarà dedicata alla recente discussione intorno alla funzione della musica nella costruzione del sè e nelle interazioni sociali.

Codice insegnamento 054930

SOFTWARE ENGINEERING 2 1° semestre · 5 CFU · IINF-05/A · 0 file

The goal of the course is to enable students to master the engineering methods and processes that are necessary to produce complex software with industrial strength quality. The course covers the software process and its…

Scheda dell'insegnamento

Obiettivi formativi

The goal of the course is to enable students to master the engineering methods and processes that are necessary to produce complex software with industrial strength quality. The course covers the software process and its organization, requirements, design methods and tools, specification, verification and validation. Each topic is treated both theoretically and practically. Through the course, the flipped class teaching method are exploited to allow students to acquire a good level of autonomy in learning new topics.

Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn how to:

  • Identify the phases of software development and the specific activities associated with each phase
  • Understand an Alloy specification
  • Execute static analysis algorithms on code fragments
  • Identify architectural styles and patterns
    Applying knowledge and understanding
    Given specific project cases, students will be able to:
  • Detail the corresponding requirements
  • Identify, analyze and comment on specific architectural choices
  • Apply the theory to assess the availability of a software architecture
  • Test whether the software is fulfilling the corresponding specification documents
    Making judgements
    Given a relatively complex problem, students will be able to:
  • Analyze and understand the goals, assumptions and requirements associated with that problem and model them
  • Define the architecture of the corresponding software system using proper styles and patterns
  • Identify and define the needed verification and validation activities
  • Estimate the size of the system and the resources needed for its development, identify risks and define mitigation actions
    Communication
    Students will learn how to:
  • Write a requirement specification document
  • Write a design specification document
  • Discuss with the other colleagues during project labs
    Lifelong learning skills
  • Students choosing to take the project assignment will learn how to develop a realistic project
  • Students choosing to focus on the research project will learn how to conduct a research activity on some specific aspect of software engineering, developing some innovative solution or some empirical experiment.

Programma

The software process
Software lifecycle
Project management and cost estimation
Notations and specification methods: Alloy
Problem definition: requirements engineering
Importance of requirements
The Jackson-Zave approach (requirements, specification, domain)
Usage of Alloy and UML to support requirement modeling activities
Methods and technologies for product development
Software architectures and architectural styles
Middleware and software components
Verification and validation
The verification and validation process
Analysis techniques
Testing techniques
The flipped class method will be exploited to help students in learning part of the topics related to requirement engineering and how to apply them in practical contexts.
Project laboratory activities can be optionally taken by interested students. These concern the requirement analysis and design of a realistic project, possibly followed by the development and testing of a running implementation of the assigned project, or the development of innovative research (new tools, formal specifications or empirical experiments) concerning some aspects of software engineering that will be agreed with the instructor.

Modalità d'esame

Prova scritta facoltativa (a scelta dello studente), senza prove in itinere
Progetto/i - Elaborato/i facoltativo (a scelta dello studente), di gruppo, senza revisioni periodiche, con presentazione/discussione finale
Altro
The assessment will be based on a written exam, which can be replaced by project activities, and two optional tests taken during classes.
The written exam is to be taken in the exam sessions defined by the school and covers all aspects of the syllabus. The exam is open book and will assign up to 30 points. It is organized in two parts that can be taken separately, even in different exam sessions within the same academic year. The first part of the exam (called WE1) assigns up to 16 points and is passed with a minimum of 8. The second part (called WE2) assigns up to 14 points and is passed with a minimum of 7. The written exam can be -- partially or totally -- replaced by project activities as will be detailed during the course. The objective of projects is to help students apply in practice the approaches and principles that are presented in lectures. Projects will be assigned at the beginning of the semester.
The optional tests taken during classes are worth up to 2 points; they will include questions on practical aspects concerning requirement analysis and software design and will be scheduled as part of the class activities during the semester. There is no possibility to take the tests in other periods of the academic year. There is no minimum to pass this part.
The final score will be obtained by summing up the sufficient scores obtained in the various parts (including the tests) and must be greater than or equal to 18. Should the total be below 18, it will be possible to retake one or both written exam parts.
30 cum laude will be assigned when the total score is greater than or equal to 31.
Type of assessment
Description
Dublin descriptor
Written test
Solution of numerical problems:

  • Computation of availability estimates for a software architecture
  • Cost and effort estimation
  • Software testing and analysis exercises
    Exercises and questions focusing on requirement and design aspects:
  • Definition of the Alloy model for a given problem
  • Definition of the high-level architecture for a software system
  • Definition of a test plan and/or of a project plan for a specific software
    1,2
    1, 2, 3, 4, 5
    Project documentation and oral presentation
    Assessment of the design and experimental work developed by students, either individually or in groups, as part of the project;
    Assessment of project presentation
    2, 3, 4, 5

Testi di riferimento

Course website webeep.polimi.it
Note: The course website will be the main reference for learning material, classe schedule, homework and project assignments, as well as announcements concerning the various activities related to the class
Camilli, M., Di Nitto, E., Fuggetta, A., Margara, A., Rossi, M., Tamburri, D.A., SOFTWARE ENGINEERING - A Structured Journey from Inception to Delivery, Editore: Bup, Bocconi University Press, Anno edizione: 2025, ISBN: 9791280623508
Ravi Sethi, Software Engineering: Basic Principles and Best Practices (English Edition), Editore: Cambridge University Press, Anno edizione: 2022, ISBN: 1316511944
Hans van Vliet, Software Engineering: Principles and Practice, 3rd Edition, Editore: Wiley, Anno edizione: 2008, ISBN: 978-0-470-03146-9
Note: Available also as e-book with ISBN 978EUDTE00263
Carlo Ghezzi, Mehdi Jarayeri, Dino Mandrioli, Fundamentals of Software Engineering, Editore: Prentice-Hall, Anno edizione: 2002, ISBN: 0133056996
Len Bass, Paul Clements, and Rick Kazman, Software Architecture in Practice, Editore: Pearson Education, Limited, Anno edizione: 2021, ISBN: 9780136886099 https://ebookcentral.proquest.com/lib/polimi/detail.action?docID=7116234
Note: The book has been purchased by our library. It can be accessed by three contemporary users. Access can take place from Polimi network or by following the instructions available here https://www.biblio.polimi.it/en/services/how-to/access-to-an-electronic-resource
Christoph Fehling, Frank Leymann, Ralph Retter, Walter Schupeck, Peter Arbitter, Cloud Computing Patterns: Fundamentals to Design, Build, and Manage Cloud Applications, Editore: Springer, Anno edizione: 2014, ISBN: 9783709115671 http://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&db=nlabk&AN=705269
Note: The book has been purchased by our library. It can be accessed by multiple contemporary users. Access can take place from Polimi network or by following the instructions available here https://www.biblio.polimi.it/en/services/how-to/access-to-an-electronic-resource
Martin Kleppmann, Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, Editore: O'Reilly Media, Incorporated, Anno edizione: 2017, ISBN: 9781449373320 https://ebookcentral.proquest.com/lib/polimi/detail.action?docID=4825244
Note: The book has been purchased by our library. It can be accessed by a single user at a time. Access can take place from Polimi network or by following the instructions available here https://www.biblio.polimi.it/en/services/how-to/access-to-an-electronic-resource

Codice insegnamento P135453526

STORIA DELLA CANZONE D'AUTORE 2° semestre · 5 CFU · PEMM-01/C · 0 file

Definizioni di 'autorialità' e applicazioni del concetto a vari repertori della 'canzone' moderna e contemporanea; inquadramento storico, sociologico ed estetico della nozione di 'canzone d'autore'; analisi…

Scheda dell'insegnamento

Programma

Definizioni di 'autorialità' e applicazioni del concetto a vari repertori della 'canzone' moderna e contemporanea; inquadramento storico, sociologico ed estetico della nozione di 'canzone d'autore'; analisi poetico-musicale e lettura comparata di composizioni tratte dai canzonieri di alcuni autori particolarmente rappresentativi del repertori francese e italiano, nordamericano e britannico, brasiliano e ispano-americano. Il corso affronterà anche il problema della traduzione poetico-musicale di opere straniere, con specifico ma non esclusivo riferimento ai rispettivi canzonieri di Georges Brassens, Leonard Cohen, Bob Dylan, Joni Mitchell, Violeta Parra, Chico Buarque de Hollanda.
Alla fine del corso, lo studente sarà chiamato a svolgere l'analisi poetico-musicale approfondita - eventualmente anche la traduzione prosodica - di una composizione a scelta (tratta da uno dei repertori elencati), da esporre e discutere sotto forma di presentazione seminariale (nelle ultime lezioni del corso) oppure di tesina scritta (da consegnare al docente almeno una settimana in anticipo rispetto alla data dell'esame).

Codice insegnamento 054931

STORIA DELLA MUSICA 1° semestre · 5 CFU · PEMM-01/C · 0 file

Attraverso il corso, lo studente maturerà le competenze necessarie a comprendere gli sviluppi storici e culturali del fenomeno musicale nel contesto europeo nei secoli XVII e XVIII. Al termine del corso, avrà acquisito…

Scheda dell'insegnamento

Programma

Attraverso il corso, lo studente maturerà le competenze necessarie a comprendere gli sviluppi storici e culturali del fenomeno musicale nel contesto europeo nei secoli XVII e XVIII. Al termine del corso, avrà acquisito padronanza dei principali generi e forme del repertorio musicale seicentesco e settecentesco e del relativo contesto storico-culturale. Avrà inoltre acquisito gli strumenti interpretativi necessari a studiare autonomamente brani dell'epoca, applicando le conoscenze e le competenze sviluppate durante il corso
Contenuti:
Il corso affronterà la vita musicale veneziana nei secoli XVII e XVIII, concentrandosi sulle figure di Claudio Monteverdi, Barbara Strozzi e Benedetto Marcello. La presentazione delle coordinate essenziali relative al contesto storico-culturale e allo sviluppo dei principali generi e forme musicali si affiancherà all'esame di alcune composizioni dei suddetti autori, rappresentative dello sviluppo del genere operistico e della musica vocale e strumentale.

Codice insegnamento 056513

STORIA DELLA PRASSI ESECUTIVA 2° semestre · 5 CFU · PEMM-01/C · 0 file

Il corso fornirà gli strumenti di base per un corretto approccio ai problemi sollevati dallo studio della prassi esecutiva. In particolare verranno analizzati: le basi di dati, le risorse online e gli strumenti…

Scheda dell'insegnamento

Programma

Il corso fornirà gli strumenti di base per un corretto approccio ai problemi sollevati dallo studio della prassi esecutiva. In particolare verranno analizzati:

  • le basi di dati, le risorse online e gli strumenti bibliografici specifici per la ricerca sulla prassi esecutiva;
  • la documentazione a disposizione del ricercatore (partiture e altri testimoni musicali, documentazione d'archivio, trattatistica, iconografia ecc.) e l'utilizzo in rapporto alla ricostruzione delle pratiche di esecuzione;
  • il concetto di 'esecuzione storicamente informata', gli estremi del dibattito sull'autenticità, le riflessioni e le prospettive attuali del 'movimento';
  • alcune aspetti specifici di particolare rilevanza, come il basso continuo, l'ornamentazione vocale e strumentale, le disposizioni orchestrali, il diapason.
  • il contributo della danza storica allo studio della prassi esecutiva musicale;
  • la prassi della scena;
  • l'importanza delle registrazioni storiche come documenti per la conoscenza e la ricostruzione delle pratiche di esecuzione.

Codice insegnamento 051531

TEORIA E ANALISI DEL CINEMA E DELL'AUDIOVISIVO 1° semestre · 5 CFU · PEMM-01/B · 0 file

Il corso prende in esame gli elementi di base del linguaggio cinematografico e audiovisivo, introducendo gli studenti all'analisi del testo attraverso esempi tratti da testi filmici significativi. In questa prospettiva…

Scheda dell'insegnamento

Programma

Il corso prende in esame gli elementi di base del linguaggio cinematografico e audiovisivo, introducendo gli studenti all'analisi del testo attraverso esempi tratti da testi filmici significativi. In questa prospettiva opera anche una ricognizione dei principali snodi della teoria del cinema e dei modelli di interpretazione dei film. In particolare verrà posta attenzione al problema dell'"heritage film", un insieme di prodotti audiovisivi ambientati nel passato, prevalentemente tratti da opere letterarie e caratterizzati da una cura realizzativa, volti a mettere in valore il patrimonio culturale di un Paese: l'indagine sarà condotta attraverso le dinamiche produttive e di marketing nonché le strategie linguistiche e comunicative. Le analisi di film esemplari saranno accompagnate dalla riflessione prodotta a livello teorico.

Codice insegnamento 051535

THEORETICAL COMPUTER SCIENCE 1° semestre · 5 CFU · IINF-05/A · 0 file

Goals of the course Computer science has undergone a very rapid evolution from its start until today. This has brought significant benefits to the quality of life but has also created problems with the reliability of…

Scheda dell'insegnamento

Obiettivi formativi

Goals of the course
Computer science has undergone a very rapid evolution from its start until today. This has brought significant benefits to the quality of life but has also created problems with the reliability of computer based systems. In many cases, in fact, the adopted design techniques proved to be inadequate to the complexity of the addressed problems.
Among the causes of the unsatisfactory reliability of computer systems one of the most frequently mentioned is the lack of a solid theoretical background on which effective design techniques must be founded.
The goal of the course of Theoretical Computer Science is to fill this gap by addressing systematically the fundamental problems of computer science and showing that a rigorous approach based on the theoretical foundations of the discipline has a great relevance on practical applications.

Expected learning outcomes
Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn:
The principles and the fundamental models of automatic computation.
The basic principles of the design and analysis of algorithms and data structures.
Applying knowledge and understanding
By means of exercise lessons on specific problems, the student will acquire:
A critical attitude towards the use, the creation and the modification of models of computation.
A capacity to apply, adapt, and evaluate algorithms and data structures in practical applications.
A capacity to evaluate the feasibility and convenience of developing and verifying computer-based systems and software tools.
Lifelong learning skills
After successful completion of the course, the students will be able to evaluate autonomously and critically models of computation, algorithms and data structures.

Programma

The course covers the following topics:
1. The models of Computer Science
Automata (finite state and stack automata, Turing Machines)
Grammars
Use of mathematical logic for modeling systems and describing their properties: relations between logic, languages and automata.
2. Computation theory
Power of the models of computation
Church Thesis
Undecidable problems
Techniques for proving undecidability
3. The complexity of computing
Fundamental notions of complexity analysis
Models of computation and relations among their computational complexity
Linear speed-up. Complexity hierarchies.
Hints towards intractable problems and NP-completeness.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Assessment
The exam is based on written questions, possibly integrated, upon request by the teacher, by further oral questions. The written part of the exam is open book (textbook and personal notes allowed).
Type of assessment
Description
Dublin descriptor
Written test
Solution of algebraic and numerical problems for the computational complexity figures
Solution of design exercises concerning algorithms
Open questions of theoretical nature on the topics covered by the course
1, 2
1, 2, 5
1, 2, 5

Testi di riferimento

Dino Mandrioli, Carlo Ghezzi, Theoretical foundations of computer science, Editore: John Wiley & sons, Anno edizione: 1987, ISBN: 0-471-85918-4
Dino Mandrioli, Paola Spoletini, Mathematical logic for computer science: an introduction, Editore: Esculapio, Anno edizione: 2010, ISBN: 978-88-7488-373-8
Dino Mandrioli, Davide Martinenghi, Angelo Morzenti, Matteo Pradella, and Matteo Rossi, Lecture Notes on Monadic First- and Second-Order Logic on Strings, Anno edizione: 2019
Note: Unedited lecture notes; available for download in PDF format from the course WeBeep platform.

Codice insegnamento P534448247

UNCERTAINTY IN ARTIFICIAL INTELLIGENCE 1° semestre · 5 CFU · IINF-05/A · 0 file

Soft Computing: modellare la realtà in condizioni di incertezza. Modelli fuzzy: insiemi fuzzy, logica fuzzy, regole fuzzy, cosa rappresentare con un modello fuzzy e perchè. Algoritmi genetici: principi base,…

Scheda dell'insegnamento

Programma

Soft Computing: modellare la realtà in condizioni di incertezza. Modelli fuzzy: insiemi fuzzy, logica fuzzy, regole fuzzy, cosa rappresentare con un modello fuzzy e perchè. Algoritmi genetici: principi base, ottimizzazione di modelli, funzioni di fitness, definizione dei modelli. Reti bayesiane: modelli grafici probabilistici, principi base, definizione dei modelli. Applicazioni: motivazioni, scelte, modelli, studi di casi

Codice insegnamento 056890

VIDEO SIGNALS 1° semestre · 5 CFU · IINF-03/A · 0 file

Visual information plays a central role in communication systems, multimedia applications, industrial monitoring, remote sensing, biomedical imaging and scientific instrumentation. Although images and videos are now…

Scheda dell'insegnamento

Obiettivi formativi

Visual information plays a central role in communication systems, multimedia applications, industrial monitoring, remote sensing, biomedical imaging and scientific instrumentation. Although images and videos are now commonly processed by complex software systems, their acquisition, representation and manipulation are based on fundamental principles of multidimensional signal processing.
“Video Signals” is a graduate-level introductory course devoted primarily to the fundamentals of digital image processing. No previous knowledge of image processing is assumed.
The course introduces the complete image-processing chain, from image formation and digital acquisition to enhancement, filtering, restoration, segmentation, geometric processing and compression. Particular attention is devoted to the mathematical and signal-processing principles underlying the different methods.
In the final part of the course, images are extended to time-varying visual signals. Basic concepts of video representation, motion estimation, optical flow and spatio-temporal compression are introduced without addressing advanced video communication protocols or machine-learning-based methods.
The goal of the course is to provide students with the theoretical and practical knowledge required to:
represent images as two-dimensional discrete signals;
understand the mechanisms of image formation, acquisition, sampling and quantisation;
analyse images in the spatial and frequency domains;
design deterministic and model-based image-processing procedures;
correct, enhance, restore and geometrically transform digital images;
extract meaningful structures from visual signals;
understand the fundamental principles of image compression;
understand how image-processing concepts can be extended to video sequences;
implement image-processing algorithms using MATLAB.
The course focuses on classical signal-processing, mathematical and model-based approaches. Artificial intelligence, machine learning and deep-learning methods are outside the scope of the course.

Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn how to:
model a digital image as a two-dimensional sampled and quantised signal;
understand the principal stages of image formation and digital acquisition;
describe the basic properties of camera models, optical systems and image sensors;
understand the main aspects of human visual perception relevant to image processing;
represent and process colour images;
analyse image signals in the spatial and frequency domains;
understand linear, non-linear and morphological image-processing operators;
model image noise, blur and geometric distortions;
understand the principles of image restoration and deconvolution;
understand the main approaches to image segmentation and feature extraction;
understand the fundamental principles of still-image compression;
extend image-processing concepts to video signals;
understand the basic principles of motion estimation, optical flow and temporal prediction.
Applying knowledge and understanding
Students will be able to:
implement image-processing algorithms in MATLAB;
design procedures for image enhancement and correction;
implement spatial-domain and frequency-domain filters;
apply morphological operators to binary and grayscale images;
perform image segmentation and feature extraction;
correct geometric and perspective distortions;
restore images degraded by noise or blur;
register and combine multiple images;
select appropriate algorithms and tune their parameters according to the application;
evaluate and compare different image-processing solutions;
implement simple procedures for motion estimation and temporal image processing.
Making judgments
Given an image-processing problem, students will be able to:
identify the objectives, assumptions and constraints associated with the problem;
formulate an appropriate mathematical or signal model;
select a suitable processing technique;
determine the sequence of operations required to solve the problem;
select and estimate the relevant parameters;
evaluate whether the obtained result is consistent with the problem requirements;
discuss the limitations and possible failure conditions of the selected method.
Communication skills
Students will learn to:
describe image-processing algorithms using appropriate mathematical and technical terminology;
explain the rationale behind a selected processing procedure;
represent an algorithm through equations, block diagrams, pseudocode or MATLAB instructions;
compare alternative methods by discussing their assumptions, strengths and limitations;
present the results of an image-processing procedure independently of its specific software implementation.

Programma

1. Digital image representation
Images as two-dimensional continuous and discrete signals.
Pixels, spatial resolution, dynamic range and bit depth.
Grayscale and colour images.
Image formats and numerical representations.
Basic MATLAB image representation and visualisation.
2. Sampling, quantisation and interpolation
Two-dimensional sampling and Nyquist criterion.
Spatial aliasing and moiré patterns.
Intensity quantisation and quantisation error.
Image resizing and resampling.
Nearest-neighbour, bilinear and bicubic interpolation.
Dithering and false contouring.
3. Image formation and acquisition
Pinhole and real camera models.
Perspective projection and homogeneous coordinates.
Focal length, field of view and magnification.
Lens distortion and camera calibration principles.
Image sensors, exposure and sensor noise.
Global and rolling shutter.
Basic digital-camera acquisition pipeline.
4. Human visual system, colour and HDR imaging
Brightness, contrast and spatial sensitivity of the human visual system.
Visual masking and perception of spatial details.
Tristimulus theory and colourimetry.
RGB, XYZ, YCbCr and perceptual colour representations.
White balance, colour correction and chroma subsampling.
Introduction to Wide Colour Gamut and High Dynamic Range imaging.
Exposure fusion, radiometric calibration and tone mapping.
5. Spatial-domain image processing
Point operations and intensity transformations.
Histogram computation, equalisation and matching.
Two-dimensional convolution and correlation.
Smoothing and sharpening filters.
Gaussian, Laplacian and unsharp-masking filters.
Median, order-statistics and edge-preserving filters.
Local statistics and adaptive filtering.
6. Edges, corners and parametric structures
First- and second-order image derivatives.
Gradient magnitude and orientation.
Sobel, Laplacian and Canny operators.
Corner and interest-point detection.
Hough transform for lines and circles.
Generalised Hough and Radon transforms.
Parameter selection and interpretation of the transformation spaces.
7. Frequency-domain and multiresolution processing
Two-dimensional discrete Fourier transform.
Magnitude and phase of the image spectrum.
Frequency-domain filtering.
Ideal, Butterworth and Gaussian filters.
Periodic-noise removal and notch filtering.
Relationship between spatial and frequency-domain processing.
Image pyramids, scale-space representations and wavelet fundamentals.
Applications to denoising and compression.
8. Mathematical morphology and segmentation
Binary and grayscale morphology.
Structuring elements, erosion and dilation.
Opening, closing and morphological gradient.
Connected components, hole filling and skeletonisation.
Global and local thresholding.
Otsu’s method.
Region growing, splitting and merging.
Watershed segmentation.
Morphological post-processing and evaluation of segmentation results.
9. Image degradation and restoration
Statistical models of Gaussian, impulse and Poisson noise.
Image blur and point spread functions.
Motion blur and defocus.
Spatial- and frequency-domain denoising.
Inverse and Wiener filtering.
Regularised restoration.
Deconvolution and blind deconvolution.
Iterative restoration methods.
Ambiguities and limitations of inverse problems.
10. Geometric processing, registration and stitching
Translation, rotation, scaling and affine transformations.
Projective transformations and homographies.
Forward and inverse geometric mapping.
Perspective correction and image rectification.
Feature-based and intensity-based registration.
Estimation of geometric transformations and outlier removal.
Basic principles of robust estimation and RANSAC.
Image mosaicing, panoramic imaging and blending.
Ghosting, exposure differences and parallax.
11. Image compression
Redundancy and information content in images.
Lossless and lossy compression.
Predictive and transform coding.
Discrete cosine transform and quantisation.
Run-length, Huffman and arithmetic coding.
JPEG coding architecture.
Compression ratio, quality and rate–distortion trade-off.
Compression artefacts.
Overview of JPEG 2000 and modern still-image coding approaches.
12. Introduction to video processing
Video as a spatial and temporal signal.
Frame rate, temporal sampling and temporal aliasing.
Spatial and temporal redundancy.
Frame differencing and temporal filtering.
Block-based motion estimation and motion vectors.
Brightness-constancy assumption and optical-flow equation.
Aperture problem.
Basic principles of Lucas–Kanade and Horn–Schunck methods.
Motion-compensated prediction.
Intra-frame and inter-frame coding.
General principles of spatio-temporal video compression.
Laboratory activities
Laboratory activities support the understanding of the theoretical concepts and are based primarily on MATLAB and the Image Processing Toolbox.
Indicative activities include:
image representation, sampling, quantisation and interpolation;
histogram processing and spatial filtering;
frequency-domain image analysis;
edge, corner and parametric-structure detection;
mathematical morphology and segmentation;
noise reduction, Wiener filtering and deconvolution;
geometric transformations and perspective correction;
image registration and panoramic image generation;
HDR image generation and tone mapping;
JPEG compression and analysis of compression artefacts;
block-based motion estimation and optical flow;
simple temporal processing of video sequences.
The activities will focus on understanding the behaviour of the algorithms, interpreting the results and evaluating the influence of parameter selection.
Innovative didactics
The flipped-classroom methodology will be applied to selected practical aspects of MATLAB-based image processing.
Students will receive preparatory material concerning MATLAB operations, image data structures and basic software procedures. Classroom activities will focus on:
comparing alternative algorithms;
predicting the effects of parameter changes;
identifying algorithmic limitations and failure conditions;
interpreting numerical and visual results;
designing complete image-processing procedures;
translating mathematical descriptions into MATLAB code.
Interactive activities may also include the discussion of multiple-choice questions designed to identify common conceptual errors and misconceptions.

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
The exam for the “video signals” module is a written test with 3 or 4 exercises to be solved in 2 hours. Two or three exercises require a numerical/procedural solution while the last one is a exercise requiring the definition of a Matlab procedure in order to solve the question and will focus on exercises exposed during laboratories. The Matlab code has to be written directly on the paper without any computer aid.
The exam for the first module will take place only in the written version; no oral exams, integrations or projects will be considered in order to increase the obtained grade.
Concerning the assessment of the whole exam (Audio and Video Signals)
In order to pass the whole “Audio and Video Signals” exam (first and second module) (for students that are not following just the Video module, a positive grade must be obtained in both modules and the final mark will be the average of the two marks rounded up the next integer.
In evaluating the average between the two modules a 30 cum laude mark in a module will be considered as 30; in order to get 30 cum laude as a final mark, the mark of at least one module must be 30 cum laude.
In every exam date the two modules will take place the same day one after the other (more details will be provided by the web poliself); however students can choose to take on a single module or both modules in the same day.
Once a student gets a positive mark in a module this mark will be automatically frozen until she/he takes again the same module in a following session; “taking again the exam on the same module” means that the student registers, participates and turns in his/her solution; while if the student simply participates to an exam but does not turn in his/her solution, this will not change the previous mark and the student will be considered as "asbsentee".
Once a student gets a positive mark in both modules the final mark will be evaluated and then published for the publishing period on the web poliself; at the end of this period it will be automatically recorded. If the student does not want to record that final grade he/she has to refuse it from the poliself: in that case both marks will be restored in a "frozen" state in order to allow the student to take on again a module (or both of them). However if the student has a frozen mark in both modules at the end of each exam to which his/her signed in, the final average mark will be automatically published and, after the publishing period, automatically recorded: so, if the student wants to improve the final mark he/she has to remember to refuse the published final grade.
Type of assessment
Description
Dublin descriptor
Written test
Numerical and analytical exercises
Exercises may concern:
sampling, quantisation and interpolation;
camera geometry;
spatial- and frequency-domain filtering;
colour and histogram transformations;
edge detection and morphology;
segmentation and Hough or Radon transforms;
noise reduction and restoration;
deconvolution;
geometric transformations and homographies;
image registration;
HDR imaging;
image compression;
basic motion estimation.
1,2,5
Algorithm-design and MATLAB-procedure exercises
Students may be required to define a complete procedure for:
image enhancement or restoration;
spatial- or frequency-domain filtering;
segmentation and morphological processing;
feature extraction and matching;
perspective correction;
image registration and stitching;
HDR image fusion;
image compression;
basic motion or optical-flow analysis.
The solution may be expressed through equations, block diagrams, pseudocode or MATLAB code.
1,2,3
Multiple-choice questions
Multiple-choice questions may cover all course topics, with particular emphasis on:
theoretical properties and assumptions of algorithms;
interpretation of spectra, histograms and transformation coefficients;
camera, sensor and colour-representation properties;
comparison among filtering, segmentation and restoration methods;
limitations of deconvolution and geometric processing;
compression principles and artefacts;
motion-estimation and optical-flow assumptions;
basic temporal-prediction principles.
1,3,4

Testi di riferimento

R.C. Gonzalez, R. E. Woods, Digital Image Processing, Editore: Addison-Wesley Pub., Anno edizione: 2008
Nixon, Mark Aquado, Alberto S Book., Feature Extraction and Image Processing, Anno edizione: 2002, ISBN: 0750650788
Bankman, Isaac, Handbook of Medical Imaging, Editore: Elsevier Academic Press, Anno edizione: 2000, ISBN: 0120777908
Mallat, Stephane, Wavelet Tour of Signal Processing, Editore: Academic Press, Anno edizione: 1999, ISBN: 0-12-466606-X
Theodoridis, Sergios Koutroumbas, Konstantinos., Pattern Recognition, Editore: Elsevier Academic Press, 2003., ISBN: 0126858756

Codice insegnamento P793254405

VIDEOGAME DESIGN AND PROGRAMMING (a) 1° semestre · 5 CFU · IINF-05/A · 0 file

Videogame design and programming is one of the most exciting and challenging disciplines in Computer Science as it attempts to combine, in real-time, concepts in computer graphics, human-computer interaction, networking,…

Scheda dell'insegnamento

Obiettivi formativi

Videogame design and programming is one of the most exciting and challenging disciplines in Computer Science as it attempts to combine, in real-time, concepts in computer graphics, human-computer interaction, networking, artificial intelligence, computer-aided instruction, computer architecture, etc. In this course, students will learn the basics of game design and programming, attend seminars from field experts, and form project groups to design, build, and demonstrate a video game. The course comprises lectures, invited seminars, and practical activities.
The goal of the course is to develop games. Each student must submit two game proposals at the beginning of the course. The students vote on the proposals for the games they wish to create; the proposals receiving the most votes will be developed during the course. The students who proposed the selected games take the role of team leaders and have around one week to finalize their team, consisting of at most five students from the course. There are five main deadlines: (1) the game concept submission (which students must complete by the first week); (2) the game design document and GitHub repository submission (which teams must complete around the first week of November); (3) the prototype presentation (deadline around mid-December), when each team must demo the skeleton of their game; (4) the beta presentation (deadline around mid-January), when each team must demo an almost final version of the game; (5) the submission of the final project including the source code, executables, and gameplay video (at the end of the exam session).

Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn
The fundamental principles of game design
The major framework to analyze games and to structure game design
The development process for video games
Game design and programming patterns
Tools for game development
Applying knowledge and understanding
Given an existing game design document, a game prototype, or a finished game, students will be able to:
Analyze existing them in terms of design and development choices
Analyze and understand the underlying game mechanics and how these are organized in a hierarchy
Analyze gameplay caveats and possibility for emerging gameplay
Making judgements
Given a video game will be able to:
· Identify possible criticalities in the design, in the gameplay and in the finished game and propose solutions to the such issues
Communication
Students will learn to:
· Pitch, present and demo their game.
Lifelong learning skills
Students will learn how to:
Develop a working prototype of a video game with 20 minutes of gameplay following a precise schedule that mimic the development schedule of video game companies. They will work in team and learn how to pitch, present and demo their game.

Programma

Video Presentation of the Course
https://youtu.be/h2oUvlF1XrE
Video Games Developed in the Previous Editions of the Course
http://polimi-game-collective.itch.io
Commercial Games from the Course Students
In Verbis Virtus http://store.steampowered.com/app/242840/?snr=1_5_9__205
Volvox http://store.steampowered.com/app/392600/?snr=1_5_9__205
Shape Gurus, ABC Gurus, Eli Explorer, Art Gurus, Star Gurus (https://itunes.apple.com/us/developer/colto/id956538612)
A Pixel Escale http://www.desura.com/games/a-pixel-escape
Milanoir http://www.milanoirgame.com/
ArThieves http://www.stupidipixel.com/qel/
The Way of Life https://www.cybercoconut.com/
5 Minutes Rage http://store.steampowered.com/app/416700/5_Minutes_Rage/
Laika 2.0 https://steamcommunity.com/sharedfiles/filedetails/?id=860967605...
Videos
The videos of the invited presentations of the previous editions are available at
https://youtu.be/TivdgCPqPjA?list=PL4QF7lP4PZkA20z5GUsFryyzK0_zFiGFF
The trailers of the games developed during the previous editions available at
https://youtu.be/MukCehJ_Hjc?list=PL6624CA9C566CEA0A
Course Structure
Course syllabus: Objectives, Final project and deadlines, Team building
A brief history of videogames and current trends
The structure of games (the designer view): Elements of Design, Story, flow, and interaction, Game play and player satisfaction
The structure of games (the developer view): Defining games, Game elements, Engaging the player, Design methodologies
Introduction to videogame development
Game development tools
Unity
Game Intelligence
Advanced Game Development: User interfaces, Audio and sound, Computer graphics, Networking

Modalità d'esame

Progetto/i - Elaborato/i obbligatorio, di gruppo, con revisioni periodiche, senza presentazione/discussione finale
The final evaluation is based on the game developed during the course. Each student must submit two game proposals by the end of the first week. The students vote on the proposals for the games they wish to create; the proposals receiving the most votes will be developed during the course. The students who proposed the selected games take on the role of team leaders and have about 1 week to finalize their teams, consisting of at most 5 students from the course. There are five main deadlines: (1) the game concept submission (which students must complete by the first week); (2) the game design document and GitHub repository submission (which teams must complete around the first week of November); (3) the prototype presentation (deadline around mid-December), when each team must provide an online demo of the main game mechanics; (4) the beta presentation (deadline around mid-January), when each team must demo an almost final version of the game; (5) the submission of the final project including the source code, executables, and gameplay video (at the end of the exam session).
Type of assessment
Description
Dublin descriptor
Assessment of laboratorial artefacts
Assessment of the design and development of the video game created during the course
Focusing on the game design of the technical solutions adopted by the teams.
Assessment of the ability to pitch and demo the final product.
1, 2, 3, 4, 5

Testi di riferimento

Jeremy Gibson Bond, Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C#, Editore: Addison-Wesley Professional, Anno edizione: 2022 978-0136619949
Colleen Macklin, John Sharp, Games, Design and Play: A detailed approach to iterative game design, Editore: Addison-Wesley Professional, Anno edizione: 2016, ISBN: 978-0134392073
Jesse Schell, The Art of Game Design: A Book of Lenses, Third Edition, Editore: CRC Press, Anno edizione: 2019, ISBN: 978-1138632059

Codice insegnamento 062260

VIDEOGAME DESIGN AND PROGRAMMING(a) 1° semestre · 5 CFU · IINF-05/A · 0 file
WIRELESS INTERNET 2° semestre · 5 CFU · IINF-03/A · 0 file

The goal of the course is to teach students the methodologies for modelling, analyzing, and designing wireless networks. Moreover, the course provides the students the instruments for understanding of the modern standard…

Scheda dell'insegnamento

Obiettivi formativi

The goal of the course is to teach students the methodologies for modelling, analyzing, and designing wireless networks. Moreover, the course provides the students the instruments for understanding of the modern standard technologies related to Wireless Internet. Each topic related to modelling methodologies is treated both theoretically and practically. Selected topics related to technologies are associated with some experimental activities.

Dublin Descriptors
Expected learning outcomes
1 - Knowledge and understanding
Students will learn how to:

  • Define mathematical models for the analysis of mobile radio networks
  • Define mathematical models for the analysis of packet access systems
  • Analyze complex technologies related to wireless networks
  • Identify system components and their relations
    2 - Applying knowledge and understanding
    Students will be able to:
  • Dimension the components of a mobile radio networks given the traffic requirements
  • Evaluate the performance of wireless access networks in different scenarios
  • Apply the mathematical models learned
    3 - Making judgements
    Students will be able to:
  • Understand the fundamental tradeoff that govern the design of wireless network technologies
  • Identify how the fundamental system limitations impact the design of the network
  • Recognize the design space and its degrees of freedom that can be exploited to define new technologies
    4 - Communication
    Students will learn to:
  • Write a describe complex network technologies at different levels of detail, also comparing them with respect to specific aspects
  • Present some one of the advanced topics their work in front of their colleagues (non mandatory)
    Lifelong learning skills

Programma

Wireless Internet
Wireless internet technologies
Wi-Fi (Architectures and protocols of WLANs, IEEE specifications 802.11, multiple access mechanism, frame formats, distribution system, mobility management, latest amendements),
Network and transport levels
Network management at network level (Mobile IP, micro-mobility protocols).
TCP on wireless
Packet access
Aloha protocol (infinite population model, finite population model, single-buffer model)
Algorithms for stabilizing random access (stabilized Aloha, stack algorithms)
Models of CSMA (Carrier Sense Multiple Access), CSMA/CD (CSMA with Collision Detect), CSMA/CA (CSMA with Collision Avoidance),
Polling systems (waiting time models, exhaustive service, gated service, limited service, round robin service)
Scheduled radio access (signalling needs, channel state dependent scheduling, multi-carrier scheduling).
Ad hoc networks
Routing in ad-hoc networks (proactive routing, reactive routing, geographic routing, hybrid routing).

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i facoltativo (a scelta dello studente), di gruppo, senza revisioni periodiche, senza presentazione/discussione finale
The assessment will be based on a written exam at the end of the course and on additional experimental/project activities.The written exam is based on numerical exercises (2-3) and open questions (2-3) on the network analysis and dimensioning models. The written exam can assign up to 28 points. The student can select one of the additional experimental/project activities proposed in the course and get assigned up to 4 additional points. 30 cum laude will be assigned when the total score is greater or equal 31.
Students will be evaluated according to the following aspects:

  • understanding and explaining basic and advanced concepts related to wireless networking (DdD1,DdD2,DdD3)
  • solving numerical exercises based on the theoretical concepts explained in the course (DdD1, DdD2,DdD3)
  • communication ability in answering to the proposed tasks (DdD4)

Testi di riferimento

Slides and suggested readings provided by the lecturers through Webeep platform https://webeep.polimi.it/

Codice insegnamento P388280051

WIRELESS NETWORKS 2° semestre · 10 CFU · IINF-03/A · 0 file

The goal of the course is to teach students the methodologies for modelling, analyzing, and designing wireless networks. Moreover, the course provides the students the instruments for understanding of the modern standard…

Scheda dell'insegnamento

Obiettivi formativi

The goal of the course is to teach students the methodologies for modelling, analyzing, and designing wireless networks. Moreover, the course provides the students the instruments for understanding of the modern standard technologies related to Wireless Internet. Each topic related to modelling methodologies is treated both theoretically and practically. Selected topics related to technologies are associated with some experimental activities.

Dublin Descriptors
Expected learning outcomes
1 - Knowledge and understanding
Students will learn how to:

  • Define mathematical models for the analysis of mobile radio networks
  • Define mathematical models for the analysis of packet access systems
  • Analyze complex technologies related to wireless networks
  • Identify system components and their relations
    2 - Applying knowledge and understanding
    Students will be able to:
  • Dimension the components of a mobile radio networks given the traffic requirements
  • Evaluate the performance of wireless access networks in different scenarios
  • Apply the mathematical models learned
    3 - Making judgements
    Students will be able to:
  • Understand the fundamental tradeoff that govern the design of wireless network technologies
  • Identify how the fundamental system limitations impact the design of the network
  • Recognize the design space and its degrees of freedom that can be exploited to define new technologies
    4 - Communication
    Students will learn to:
  • Write a describe complex network technologies at different levels of detail, also comparing them with respect to specific aspects
  • Present some one of the advanced topics their work in front of their colleagues (non mandatory)
    Lifelong learning skills

Programma

Wireless Internet
Wireless internet technologies
Wi-Fi (Architectures and protocols of WLANs, IEEE specifications 802.11, multiple access mechanism, frame formats, distribution system, mobility management, latest amendements),
Network and transport levels
Network management at network level (Mobile IP, micro-mobility protocols).
TCP on wireless
Packet access
Aloha protocol (infinite population model, finite population model, single-buffer model)
Algorithms for stabilizing random access (stabilized Aloha, stack algorithms)
Models of CSMA (Carrier Sense Multiple Access), CSMA/CD (CSMA with Collision Detect), CSMA/CA (CSMA with Collision Avoidance),
Polling systems (waiting time models, exhaustive service, gated service, limited service, round robin service)
Scheduled radio access (signalling needs, channel state dependent scheduling, multi-carrier scheduling).
Ad hoc networks
Routing in ad-hoc networks (proactive routing, reactive routing, geographic routing, hybrid routing).

Modalità d'esame

Prova scritta obbligatoria, senza prove in itinere
Progetto/i - Elaborato/i facoltativo (a scelta dello studente), di gruppo, senza revisioni periodiche, senza presentazione/discussione finale
The assessment will be based on a written exam at the end of the course and on additional experimental/project activities.The written exam is based on numerical exercises (2-3) and open questions (2-3) on the network analysis and dimensioning models. The written exam can assign up to 28 points. The student can select one of the additional experimental/project activities proposed in the course and get assigned up to 4 additional points. 30 cum laude will be assigned when the total score is greater or equal 31.
Students will be evaluated according to the following aspects:

  • understanding and explaining basic and advanced concepts related to wireless networking (DdD1,DdD2,DdD3)
  • solving numerical exercises based on the theoretical concepts explained in the course (DdD1, DdD2,DdD3)
  • communication ability in answering to the proposed tasks (DdD4)

Testi di riferimento

Slides and suggested readings provided by the lecturers through Webeep platform https://webeep.polimi.it/

Codice insegnamento P204599910

Recensioni del corso

Studi qui? Accedi per lasciare la tua recensione e aiutare altri studenti a scegliere.

★

Nessuna recensione per ora — e la prima è la più preziosa. Condividi la tua esperienza e orienta le future matricole.