The aim of this course is to introduce students to physical and psycho acoustics, digital audio technologies, sound processing and synthesis techniques specific to live-sound, audio and music applications. Special emphasis is placed on practice with the support of audio-specific software.
Teaching and Learning Methods: The lecture is divided in half between the theoretical part, which is enriched by sound examples, and practice in the laboratory.
Course Policies: Attendance to lectures and labs is not mandatory but highly recommended.
The course will cover:
- Physical and psycho acoustics;
- Fundamentals of digital audio;
- Techniques and technologies for sound analysis, processing and synthesis;
- Hands-on practice with dedicated audio deployment tools.
The detailed course programme can be viewed at this link: https://www.massimilianotodisco.eu/teaching.html
Students will be able to:
- understand and identify the fundamental characteristics of sound for the physical and perceptual world;
- understand the principles of digital audio;
- select and implement established signal processing and synthesis methods for sound and music signals;
- develop and evaluate practical sound-based applications.
- Fletcher, N. H., & Rossing, T. D. (1991). The physics of musical instruments. New York, Springer-Verlag.
- Vaseghi, S. V. (2007). Multimedia Signal Processing: Theory and Applications in Speech, Music and Communications. J. Wiley.
- Everest, F. and Pohlmann, K. (2001). Master Handbook of Acoustics. 5th ed. New York, McGraw-Hill.
- Müller, M. (2015). Fundamentals of Music Processing - Audio, Analysis, Algorithms, Applications. Springer.
- Course slides.
Requirements: Proficiency in mathematics, physics and statistics.
Grading Policy: Exam (80%) + Lab test (20%)
Nb hours of lectures/labs: 10.5/10.5
Nb hours per week: 3
This course provides an overview of the architecture of microprocessor-based systems. It presents the main hardware and software components and the concept of instruction set which can be considered as the hardware-software interface. It is intended for students who never had courses in computer architecture.
Teaching and learning methods:
- Understanding of the structure of a computer system, of its main hardware and software components of their role
- Programming in assembly language
- Understand how hardware and software interact
Course Policies: /
Programming Languages and Algorithm Design has the following objectives:
Introduce students to basic programming concepts and programming tools;
Study three programming languages: C, as an example of low-level language; Python, as an example of high-level language; and MATLAB, as an example of domain-specific language;
Provide students with methods and knowledge suitable for the design of efficient algorithms;
Provide methods for the analysis of resources (memory and time) used by algorithms;
Provide a catalogue of the most well-known and efficient algorithms for basic computational problems (sorting, searching, resource optimization, etc.).
Teachind and Learning methods:
The course is composed by lectures and laboratory sessions. The laboratory sessions consist in interactive crash courses (2 sessions of 3 hours each for each programming language, see “Course Structure” below) where the students have the opportunity of learning the basic programming concepts of different programming languages.
The course is composed by lectures, laboratory sessions in the form of interactive crash courses, and a mini student project.
The laboratory sessions will be interactive and will include discussions with the students and lab exercises. It will be held in one lab room equipped with a projector.
The course will be structured into two sessions of 3 hours each.
The first session will serve as introduction to the programming language and corresponding programming tools. After a short description of the purpose and characteristics of the environment and programming language, the students will be guided through lab exercises to familiarize with the software and the basic programming concepts.
The second session will introduce additional libraries with a particular emphasis on the ones used in EURECOM courses.
The discussion will be alternated with lab exercises. The students will be given some time to solve a problem and then a volunteer student will be asked to show their solution to the other students using the computer connected to the projector.
The objective is to ensure that all students participate in the discussions and present their solution at least once during the course.
This course covers the implementation of database systems by addressing the main topics, including data storage, indexing, querying; query optimization and execution; concurrency control and transaction management.
The purpose of the course is to become familiar with the principles and the ideas behind established techniques for handling data at scale. Students will implement classic and cutting-edge database systems methods in three projects. Projects represent the biggest chunk of this course. The projects require extending the functionality of a data management system in order to support novel features. In at least one the projects, students will also write a technical report that describes and experimentally evaluates the built system.
The course is complemented by lab sessions to guide students through the design and validation of the methods developed duringthe lectures.
Teaching and Learning Methods: Lectures and Lab sessions (preferably one student per group).
Course Policies :
Students are expected to do their own assigned work. If it is determined that a student has engaged in any form of academic dishonesty, he or she may fail the course and additional sanctions according to Eurecom's policies.
This course presents the architecture of microprocessor-based systems, from the internals of the processors themselves to the main peripherals that surround them and make a complete computing machine, capable of running operating systems like GNU/Linux, Android, Windows, iOS...
Teaching and Learning Methods : Lectures, team-work, lab sessions, mini-conferences by industrials
Course Policies : Attendance to the lab sessions and the mini-conferences is mandatory
This class approaches wireless communication from the perspective of digital signal processing (DSP). No background in digital communication is assumed, though it would be helpful. The utility of a DSP approach is due to the following fact: wireless systems are bandlimited. This means that with a high enough sampling rate, thanks to Nyquist’s theorem, we can represent the bandlimited continuous-time wireless channel from its samples. This allows us to treat the transmitted signal as a discrete-time sequence, the channel as a discrete-time linear time invariant system, and the received signal as a discrete-time sequence. In this class, we take an experimental approach to wireless digital communication. We will use a well-known software defined radio platform known as the USRP (universal software radio peripheral) where the radio can be programmed in software instead of implemented using hardware. The focus will be on the design, implementation, evaluation, and iterative optimization of a digital wireless communication link. At the end of this class, you will have constructed your own wireless communication link. In this process, you will have achieved the following learning objectives. You will understand what bandlimited system is and how sampling works. You will be able to compute power spectra of bandlimited signals. You should be able to describe the design challenges associated with building a wireless digital communication link. You should be able to define and calculate bit error rates for some common modulation schemes. You should know the difference between binary phase shift keying and quadrature phase shift keying as well as how to implement them. You should understand the connection between pulse shaping and sampling. You should know how to define excess bandwidth for a raised-cosine pulse. You should understand how to obtain a sampled channel impulse response from a continuous time propagation channel. You should understand how to train and estimate the coefficients of a frequency selective channel. You should understand the various kinds of synchronization required and how to compensate for different sources of asynchronicity. You should be able to explain how to perform equalization using single carrier frequency domain equalization or OFDM modulation.
Teaching and Learning methods: /
The goal of this course is to provide a comprehensive view on recent topics and trends in distributed systems and cloud computing. We will discuss the software techniques employed to construct and program reliable, highly-scalable systems. We will also cover architecture design of modern datacenters and virtualization techniques that constitute a central topic of the cloud computing paradigm. The course is complemented by a number of lab sessions to get hands-on experience with Hadoop and the design of scalable algorithms with MapReduce.
Teaching and Learning Methods: Lectures and Lab sessions (group of 2 students)
Course Policies: Attendance to Lab session is mandatory.
The goal of this course is to equip students with security and privacy technologies for the Big Data and the cloud computing paradigm. Students will discover the latest advances in privacy and security technologies and will understand their limitations as well.
Teaching and Learning Methods : Lectures (sometimes invited) and homeworks
Course Policies : homeworks and final project are mandatory
Teaching and Learning Methods:Lectures and Lab sessions (group of 2-3 students)
Course Policies: Attendance to Lab session is mandatory.
« Those who fail to plan, plan to fail... ». Architects, tailors, and directors all use plans (or models) for their creation, and software engineers are no exception. Thus, it is a common practice for software project managers to rely on the UML langage to document their software projects, and to perform modeling of the software itself.
Teaching and Learning Methods : Lectures (20%), Exercises (40%), Lab sessions (40%)
Course Policies: Attendance to labs is mandatory
This course provides an introduction to practical security concepts. The goal is to understand common attacks and countermeasures in a range of topics. The course is practice oriented, it describes real attacks and countermeasures. Students will practice attacks on a dedicated server (similar to a Capture the Flag competition).
Teaching and Learning Methods :Weekly class. Some guest lectures. Homework are online challenges, on a number of topics related to the class. A first lab is organized during lecture time to bootstrap challenges.
Course Policies :Class attendance is not checked but generally required to succeed.
(Course for Post Master and International Masters students only).
This module provides a global and coherent view of C-ITS standardization activities in major standard development organizations (SDOs) or industry consortia, such as the IEEE, the ETSI, the ISO, the IETF and the SAE. This module also illustrates the similarities and differences between different approaches in Europe, the US, and the rest of the world. This module finally details the standardization process related to different C-ITS technologies or information.
Teaching and Learning Methods : Lectures, Case Studies and attendance to Standardization meetings
Course Policies : Attendance to case studies and standardization meetings is mandatory.
The proper treatment of modern communication systems requires the modelling of signals as random processes. Often the signal description will involve a number of parameters such as carrier frequency, timing, channel impulse response, noise variance, interference spectrum. The values of these parameters are unknown and need to be estimated for the receiver to be able to proceed.
Parameters may also occur in the description of other random analysis of communication networks, or in the descriptions of sounds and images, or other data, e.g. geolocation. This course provides an introduction to the basic techniques for estimation of a finite set of parameters, of a signal spectrum or of one complete signal on the basis of a correlated signal (optimal filtering, Wiener and Kalman filtering). The techniques introduced in this course have a proven track record of many decades. They are complementary to the techniques introduced in the EURECOM course Stat. They are useful for other application branches such as machine learning, in the EURECOM courses MALIS and ASI.
Course Policies: Attendance of Lab session is mandatory (15% of final grade).
This course covers a variety of topics, all related to the use and management of a Linux operating system. In particular, the course is divided in three parts dedicated respectively to the command-line, to the Python programming language, and to maintaining, compiling, and installing applications.
This course provides a broad introduction to cryptography and communication security mechanisms based on cryptography. The course covers fundamental aspects such as security evaluation criteria and the mathematical constructs underlying cryptographic primitives as well as applied aspects like the design of major encryption and hashing algorithms, details of security mechanisms relying on cryptography such as data encryption, integrity, digital signature, authentication, key management, and public-key infrastructures.
Teaching and Learning Methods : Lectures and Lab sessions
Course Policies : Attendance to Lab sessions is mandatory.
Interested in learning how to communicate using quantum bits? Curious about how quantum algorithms and quantum computers work? This is an introductory course to quantum communication, computation, and information processing. We will cover various aspects of quantum information science and systems, introducing in a simple manner key principles and concepts, which are often considered “hard” or mysterious.
After a brief overview of quantum technology, the course starts with a concise introduction of key principles of quantum mechanics. Then, we cover fundamental aspects of quantum information, such as qubit, entanglement, Bell inequalities, and EPR (Einstein-Podolsky-Rosen) paradox, as well as of quantum communication (noise, quantum channels, decoherence, von Neumann entropy, Holevo capacity). We also present basic principles of quantum computing and study key quantum algorithms (e.g., Shor’s, Grover’s, quantum Fourier transform). Finally, we discuss potential applications and emerging topics, such as quantum AI and quantum/ post-quantum security.
Previous exposure to quantum mechanics is not required. All necessary concepts and mathematical formalism are taught during the first lectures.
Teaching and Learning Methods: Lectures supported by illustrative examples and exercises. Each session starts summarizing key concepts from previous lecture. Optional project for in-depth study of theoretical concepts or for understanding practical aspects (e.g. implementing/programming basic quantum algorithms and gates).
Course Policies: Attendance to lectures is not mandatory but highly recommended.