Target level
Baccalaureate +5
ECTS
120 credits
Duration
2 years
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées), Grenoble INP - Ensimag (Informatique, mathématiques appliquées et télécommunications), UGA
Language(s) of instruction
English, French
Presentation
The training covers a wide spectrum at the level of the first year master's trains graduates with a general education and foundation solid in computer science (in terms of programming languages, databases, networks, software engineering, object-oriented design/programming, complexity, and interactive software) ; the second year of the master's allows students to acquire organizational skills related to research work and to become specialized in a field of computer science in connection with the numerous options offered (Information systems and advanced software engineering, Human-centred computer science - design of highly reliable embedded and cyberphysical systems, artificial Intelligence and web - graphics, vision, and robotics, interactive and ubiquitous systems, and embedded, parallel, and distributed systems). The objective is to give the necessary foundations for a job in research and development as well as to undertake a thesis in Computer science in the fields covered by academic and industrial laboratories.
The aim of the course is to carry out high-level training in computer science for teaching, research, engineering, and development.
The initial semester (Master1 - S7) is composed of foundational courseware
The second semester (Master1 - S8) combines core foundational courseware with optional specialization courses.
For the semester S9 of 30 ECTS, students need to select courses worth 24 ECTS in their chosen theme (according to their initial training) and 6 ECTS of courses from a different theme, if timetables are consistent and enrollment restrictions apply.
The final semester (Master2 - S10) is dedicated to an end of studies research (or professionnal) project.
The course is labelled "Core AI" by MIAI.
Skills
The teaching units of semester 8 (first year of master's) are for the most part introductions to the different specialties of the second year of the master's. In this sense, they constitute training for research. The second year master's allows students to acquire organizational skills and skills related to researcher work
- Formulate a research problem and propose a solution
- Locate a research problem in the scientific literature
- Evaluate and validate a solution to a research problem
- Write a scientific publication
- Communicating the results of research work
- Develop and use mathematical and computer tools
- Communicate in English and French
- Become a specialist in a field of computer science related to computer research on the site: information systems and advanced software engineering - human-centred computer science - foundations of Computer science : design and validation - artificial intelligence and web - graphics, vision and robotics - interactive and ubiquitous systems - embedded, parallel and distributed systems
International education
Internationally-oriented programmes
International dimension
Possibility of doing a double degree with the University of Swansea.
Organisation
Abroad intership
In France or abroad
Program
Specifics of the program
Program under construction - awaiting vote CFVU
Select a program
Master 1st year
UE Programming language and compiler design
6 creditsUE Software engineering
3 creditsUE Principles of operating systems
6 creditsUE Algorithms Problem Solving
3 creditsUE Mathematics for computer science
3 creditsUE Introduction to visual computing
3 creditsUE Introduction to Artificial Intelligence
3 creditsChoice: 1 among 2
UE Programming project (OS)
3 creditsUE Programming project (Compiler design)
3 credits
UE Research project
3 creditsUE Research methodology
3 creditsChoice: 8 to 13 among 14
UE Introduction to modeling and verification of digital systems
3 creditsUE Operations Research
3 creditsUE Data base foundations
3 creditsUE Introduction to distributed systems
3 creditsUE Human computer interaction
3 creditsUE Computer networks principles
3 creditsUE 3D graphics
3 creditsUE Introduction to mobile robotics
3 creditsUE Introduction to cryptology
3 creditsUE Parallel algorithms and programming
3 creditsUE Fundamental Computer Science
3 creditsUE Foundations of Data Science
3 creditsUE Embodying the shift: digital in the age of low-tech
3 creditsUE Algebraic Algorithms for Cryptology
3 credits
Master 1st year Graduate School program
UE Programming language and compiler design
6 creditsUE Software engineering
3 creditsUE Principles of operating systems
6 creditsUE Algorithms Problem Solving
3 creditsUE Mathematics for computer science
3 creditsUE Introduction to visual computing
3 creditsUE Introduction to Artificial Intelligence
3 creditsChoice: 1 among 2
UE Programming project (OS)
3 creditsUE Programming project (Compiler design)
3 credits
UE GS_MSTIC_Scientific approach
6 creditsUE Technical writing and speaking
3 creditsChoice: 8 among 14
UE Introduction to modeling and verification of digital systems
3 creditsUE Operations Research
3 creditsUE Data base foundations
3 creditsUE Introduction to distributed systems
3 creditsUE Human computer interaction
3 creditsUE Computer networks principles
3 creditsUE 3D graphics
3 creditsUE Introduction to mobile robotics
3 creditsUE Introduction to cryptology
3 creditsUE Parallel algorithms and programming
3 creditsUE Fundamental Computer Science
3 creditsUE Foundations of Data Science
3 creditsUE Embodying the shift: digital in the age of low-tech
3 creditsUE Algebraic Algorithms for Cryptology
3 credits
Master 2nd classic program
UE Process engineering
6 creditsUE Advanced networking
6 creditsUE Advanced parallel system
6 creditsUE Fundamentals of Data Processing and Distributed Knowledge
6 creditsUE Scientific Methodology, Regulatory and ethical data usage
6 creditsUE Robotics
6 creditsUE Computer Graphics
6 creditsUE Multi-agent systems
3 creditsUE Information visualization
3 creditsUE Computer vision
6 creditsUE Cloud Computing, from infrastructure to applications
6 creditsUE Large scale Data Management and Distributed Systems
6 creditsUE GPU Computing
6 creditsUE From Basic Machine Learning models to Advanced Kernel Learning
6 creditsUE Advanced Machine Learning: Applications to Vision, Audio and Text
6 creditsUE Natural Language Processing & Information Retrieval
6 creditsUE Information Security
6 creditsUE Mathematical Foundations of Machine Learning
3 creditsUE Statistical learning: from parametric to nonparametric models
6 creditsUE Refresh courses
0 creditsUE Human Computer Interaction
6 creditsUE Next Generation Software Development
6 creditsUE Safety Critical Systems: from design to verification
6 credits
UE Research project
30 credits
Master 2nd Graduate School program
UE GS_MSTIC_Research ethics
6 creditsUE Process engineering
6 creditsUE Advanced networking
6 creditsUE Advanced parallel system
6 creditsUE Fundamentals of Data Processing and Distributed Knowledge
6 creditsUE Scientific Methodology, Regulatory and ethical data usage
6 creditsUE Robotics
6 creditsUE Computer Graphics
6 creditsUE Multi-agent systems
3 creditsUE Information visualization
3 creditsUE Computer vision
6 creditsUE Cloud Computing, from infrastructure to applications
6 creditsUE Large scale Data Management and Distributed Systems
6 creditsUE GPU Computing
6 creditsUE From Basic Machine Learning models to Advanced Kernel Learning
6 creditsUE Advanced Machine Learning: Applications to Vision, Audio and Text
6 creditsUE Natural Language Processing & Information Retrieval
6 creditsUE Information Security
6 creditsUE Mathematical Foundations of Machine Learning
3 creditsUE Statistical learning: from parametric to nonparametric models
6 creditsUE Refresh courses
0 creditsUE Human Computer Interaction
6 creditsUE Next Generation Software Development
6 creditsUE Safety Critical Systems: from design to verification
6 credits
UE Research project
30 credits
UE Programming language and compiler design
Level
Baccalaureate +4
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This module introduces the main concepts available in programming languages to execute a program on a machine. It aims to provide:
- the formal tools allowing to describe (static and dynamic) program semantics;
- the main algorithms and transformation steps implemented within a compiler to produce a sound and correct executable code.
UE Software engineering
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course is an introduction to software engineering
UE Principles of operating systems
Level
Baccalaureate +4
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Understanding of the structure and internal functions of an operating system (OS).
System programming skills, capacity of understanding and extending existing kernels and OS.
UE Algorithms Problem Solving
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course has for objectives to develop proficiencies in algorithms analysis and development. The following themes will be handled : dynamic programming, divide and conquer, approximation algorithms, randomized algorithms, advanced data structures.
UE Mathematics for computer science
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The aim of this course is to provide an introduction to mathematical tools and methods that are useful in Computer Science. The course is three fold, namely, combinatorics-enumeration, discrete structures and probability-statistics.
UE Introduction to visual computing
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Visual computing is the computer science discipline that deals with images. The ability to analyse, interpret and create images with computers is an essential part of computer science. This is illustrated with the ever growing set of devices that can display, generate and capture images and with the associated increase of image usage in everyday life. This course introduces some of the basic principles and techniques in this domain that are used in most image related fields such as computer vision, computer graphics and medical imaging.
UE Introduction to Artificial Intelligence
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course aims to introduce to students the basics of and a large overview on Artifical Intelligence, including Machine Learning, Deep Learning and Symbolic AI.
UE Programming project (OS)
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This project shows the internals of an operating system. We use an emulated operating system: NachOS. The aim is to put into practice the theoretical knowledge obtained during the OS course. In NachOS the students will have the opportunity to program the thread management system, the memory management system, the file system, as well as the network protocols (these represent different stages of the project). NachOS comes as a fully functioning yet very simple OS. Students need to first understand the software and then are invited to incrementally program additional OS treatments. The more time you spend on it, the more fun it is!
UE Programming project (Compiler design)
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The aim of this project is to develop a simple compiler. That is, a translator from a source language to a target language. The souce language is a typed functional language, inspired by ML (eg. OCaml), with other features such as message-passing concurrent processes. The target language is Java. The implementation language is free, but Java is encouraged as some building blocks are provided to the student (notably a parser). The project consists in a few independent steps including a parser, code analysis (typechecking), translation to a generic intermediary language, and target code generation.
UE Research project
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course is the internship conducted in a research lab in Grenoble area. It consists of two parts: a part-time period of 3 months with one day a week followed by a full-time period of 5 weeks. During these periods, the interns are enrolled in research activities in labs. At the end of the period, a report and oral presentation in the forms of a research paper and research talk, respectively, are exptected.
UE Research methodology
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The objective is a better understanding of the research world. This course overviews the principles of academic research conducted in research lab. First, it presents Grenoble’s academic landscape and the main research institutions. Moreover, it presents the principles of academic research. Then, it presents method guidelines to a) conduct successful research, b) read and write papers, give research talks.
UE Introduction to modeling and verification of digital systems
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
This course gives an introduction to digital circuits modeling, design, and verification, and to the associated methods and tools (simulation, simulation with formal assertions, ASIC synthesis, FPGA synthesis).
Ce cours fournit une introduction à la modélisation, la conception et la vérification des circuits numériques, ainsi qu’aux méthodes et outils associés (simulation, simulation avec assertions formelles, synthèse ASIC, synthèse FPGA).
UE Operations Research
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
Operational Research proposes scientific methods
to help make better decisions. The idea is to develop and use mathematical and computer
tools to master complex problems. Practical applications are historically in
the direction and management of large systems of people, machines, and
materials in industry, service, humanitarian aid, environment ...
In this course, we will focus on especially on problems with a combinatorial
structure: the number of possible solutions is finite but too large to be
enumerated. The study of these problems involves a phase of modelling practical
problems and then algorithmic resolution.
At the end of this course, students will be able to propose a model and will be
able to implement practical solutions (dedicated or industrial tools) to deal
with a problem of decision or optimization.
UE Data base foundations
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
Databases today are essential to every business, corporation and many scientific investigations. They are behind major popular systems as Google or Amazon, they store important data of many kind of companies and they are even key components in research on physics, biology, health and several other fields. Database Management Systems (DBMS) are powerful, but complex, systems for creating and managing large amounts of data efficiently and allowing it to persist over the time. In this course, we shall learn the foundations of DBMS and most important aspects to design and to use relational databases.
Program summary :
The theoretic part covers the following topics: DBMS functionalities, overview of the most common data models, the relational approach (algebra, SQL, normalization, etc.) , transactional support and database design. We study database schema design using the entity-relation model and introduce an algorithm to translate such an abstraction to a normalized relational schema. The pragmatic part of the course is intended to familiarize students with the use of the Standard Query Language, SQL. We also introduce JDBC, the Java API to access
relational databases.
UE Introduction to distributed systems
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
After presenting the major differences between a centralized system and a distributed one, this option shows students both the "user" and the "designer" side of distributed applications. Students get acquainted with existing distributed middleware and see how the latter tackle the problems of distributed system design. Are discussed the principles of distributed communication, including client/server synchronous architectures and publish/subscribe decoupled ones. The students also zoom into distributed middleware implementation and learn the basics of distributed algorithmics. Working with simple distributed topologies, they get to write simple algorithms and reason about their correctness.
UE Human computer interaction
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
Target skills :
The goal is to present the core principles of human-centered approaches for analyzing, designing, implementing and evaluating interactive systems. At the end, students must be familiar with utility (good coverage of the needs) and usability (good quality of service), the two key properties in Human-Computer Interaction for both criticizing and developing high quality User Interfaces (UI). The principles are applied to graphical UIs, including web sites.
Students who attend this course should be able to design, implement and evaluate interactive systems following a user centered approach.
Program summary :
The course presents the key steps and models in user centered design. Then it focuses on ergonomic criteria for sustaining both the design and evaluation of user interfaces.
- Analysis: cognitive models, motivations for the system, models of the user, environment, and activity
- Design: tasks, concepts and platform models, ergonomic criteria, abstract and concrete user interfaces, specifications (User Action Notation)
- Implementation: software architecture models, tools (overview of web programming techniques)
- Evaluation: predictive and experimental, qualitative and quantitative approaches.
The course includes 18h of formal lectures and 18h of project. The project lasts during the whole semester. Students have to analyse a need, design and prototype an interactive system, and evaluate it. The theme is chosen by the students. They have to produce two documents (analysis and design), a prototype, and to test it through user experiments.
UE Computer networks principles
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
Learn basic concepts of computer networking and acquire practical notions of protocols with an emphasis on TCP/IP.
UE 3D graphics
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
Computer Graphics covers the set of techniques enabling the synthesis of animated virtual worlds. The applications range from entertainment (special effects, 3D feature films, video games), to industrial design (modelling and visualizing prototypes) and virtual reality (flight simulator, interactive walk-trough). This course introduces the domain by presenting the bases for the creation of 3D models, their animation, and the rendering of the corresponding 3D scene. Student will be invited to practice through programming exercises in OpenGL.
UE Introduction to mobile robotics
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
The aim of this course is to give an introduction to software developments for mobile robotics applications and internet of things. The course is decidedly practical with several labs and a project on real robots. It uses "learning by doing" and "learning by project" approaches.
At first, the basic concepts of mobile robotics (sensors, actuators, perception, decision, action ...) and Internet of Things are presented and directly implemented on real robots to realize a software prototype of "follow me" by a small mobile robot.
In a second step, in a project, the basic concepts are deepened during the realization of a complete application of mobile robotics including Internet of Things, for example: a mobile robot "coffee dispenser", a robot "patroller", a robot "guide visit" ...
Knowledge of C / C ++ or python is essential.
The course outline can be found at :
http://lig-membres.imag.fr/aycard/html/Enseignement/M1/Robotics2/index.html
Course illustrations can be found at :
http://lig-membres.imag.fr/aycard/html/Projects/Robair/robair.html
UE Introduction to cryptology
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
To acquire the main theoretical and practical notions of modern cryptography: from notions in algorithmic complexity and information theory, to a general overview on the main algorithms and protocols in symmetric and asymmetric cryptography.
UE Parallel algorithms and programming
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
The use of multiprocessor machines has become mandatory and most applications are now running on machines with parallel processing units, from tablets to supercomputers. These applications concern both public and private scientific research, as well as industrial and commercial enterprises.
This lecture and lab work presents the parallel computing domain in different aspects: architectural, algorithmic, parallel programming languages, performance measurements, etc. Examples of parallel algorithms in different domains are also studied.
The course allows you to understand how to design and program a parallel application and run it on a multicore processor or a classical parallel cluster machine. The lab work on machines allows to implement the concepts studied during the lectures, and this with the language extensions OpenMP and MPI.
----------------------
The use of multiprocessor machines has become a must and most applications run today on machines with several processing units running in parallel, from tablets to supercomputers. These applications concern both scientific research (physics, chemistry, biology, etc.) as well as industrial and commercial companies. This domain is called High Performance Computing (HPC).
This Teaching Unit of computer science presents the domain of HPC in different aspects: architectural, algorithmic, languages of parallel programming, performance evaluation, ... Several examples of parallel algorithms, from different scientific fields, are dissected and studied.
The content of this course provides an understanding of how to design, program, and execute a parallel application across a broad spectrum of platforms ranging from a single multicore processor to a 200-core multiprocessor machine, to a cluster of multiprocessor servers. The practical work on parallel machines represents an important part of this Teaching Unit and will implement the concepts studied in the course, especially using the extensions of OpenMP and MPI languages.
UE Fundamental Computer Science
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
This module introduces the fundamental aspects of computer science and particularly focuses on the notions of computability and complexity. Regarding computability theory, it presents the basic formal model to reason on the notion of computation, i.e., the Turing machine and its variants. Based on this computational model, the notions of decidable and semi-decidable languages will be defined, while the existence of languages which are undecidable will be shown. Regarding complexity theory, it presents the main classes of time complexity such as P, NP, as well as the notion of NP-completeness. Several problems in the domains of propositional logic, graphs and scheduling are studied with respect to their time complexity by proposing either polynomial-time algorithms to solve them efficiently or polynomial-time reductions to prove their hardness.
UE Foundations of Data Science
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
UE Embodying the shift: digital in the age of low-tech
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
UE Algebraic Algorithms for Cryptology
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
UE Programming language and compiler design
Level
Baccalaureate +4
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This module introduces the main concepts available in programming languages to execute a program on a machine. It aims to provide:
- the formal tools allowing to describe (static and dynamic) program semantics;
- the main algorithms and transformation steps implemented within a compiler to produce a sound and correct executable code.
UE Software engineering
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course is an introduction to software engineering
UE Principles of operating systems
Level
Baccalaureate +4
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Understanding of the structure and internal functions of an operating system (OS).
System programming skills, capacity of understanding and extending existing kernels and OS.
UE Algorithms Problem Solving
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course has for objectives to develop proficiencies in algorithms analysis and development. The following themes will be handled : dynamic programming, divide and conquer, approximation algorithms, randomized algorithms, advanced data structures.
UE Mathematics for computer science
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The aim of this course is to provide an introduction to mathematical tools and methods that are useful in Computer Science. The course is three fold, namely, combinatorics-enumeration, discrete structures and probability-statistics.
UE Introduction to visual computing
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Visual computing is the computer science discipline that deals with images. The ability to analyse, interpret and create images with computers is an essential part of computer science. This is illustrated with the ever growing set of devices that can display, generate and capture images and with the associated increase of image usage in everyday life. This course introduces some of the basic principles and techniques in this domain that are used in most image related fields such as computer vision, computer graphics and medical imaging.
UE Introduction to Artificial Intelligence
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course aims to introduce to students the basics of and a large overview on Artifical Intelligence, including Machine Learning, Deep Learning and Symbolic AI.
UE Programming project (OS)
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This project shows the internals of an operating system. We use an emulated operating system: NachOS. The aim is to put into practice the theoretical knowledge obtained during the OS course. In NachOS the students will have the opportunity to program the thread management system, the memory management system, the file system, as well as the network protocols (these represent different stages of the project). NachOS comes as a fully functioning yet very simple OS. Students need to first understand the software and then are invited to incrementally program additional OS treatments. The more time you spend on it, the more fun it is!
UE Programming project (Compiler design)
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The aim of this project is to develop a simple compiler. That is, a translator from a source language to a target language. The souce language is a typed functional language, inspired by ML (eg. OCaml), with other features such as message-passing concurrent processes. The target language is Java. The implementation language is free, but Java is encouraged as some building blocks are provided to the student (notably a parser). The project consists in a few independent steps including a parser, code analysis (typechecking), translation to a generic intermediary language, and target code generation.
UE GS_MSTIC_Scientific approach
Level
Baccalaureate +4
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
UE Technical writing and speaking
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
UE Introduction to modeling and verification of digital systems
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
This course gives an introduction to digital circuits modeling, design, and verification, and to the associated methods and tools (simulation, simulation with formal assertions, ASIC synthesis, FPGA synthesis).
Ce cours fournit une introduction à la modélisation, la conception et la vérification des circuits numériques, ainsi qu’aux méthodes et outils associés (simulation, simulation avec assertions formelles, synthèse ASIC, synthèse FPGA).
UE Operations Research
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
Operational Research proposes scientific methods
to help make better decisions. The idea is to develop and use mathematical and computer
tools to master complex problems. Practical applications are historically in
the direction and management of large systems of people, machines, and
materials in industry, service, humanitarian aid, environment ...
In this course, we will focus on especially on problems with a combinatorial
structure: the number of possible solutions is finite but too large to be
enumerated. The study of these problems involves a phase of modelling practical
problems and then algorithmic resolution.
At the end of this course, students will be able to propose a model and will be
able to implement practical solutions (dedicated or industrial tools) to deal
with a problem of decision or optimization.
UE Data base foundations
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
Databases today are essential to every business, corporation and many scientific investigations. They are behind major popular systems as Google or Amazon, they store important data of many kind of companies and they are even key components in research on physics, biology, health and several other fields. Database Management Systems (DBMS) are powerful, but complex, systems for creating and managing large amounts of data efficiently and allowing it to persist over the time. In this course, we shall learn the foundations of DBMS and most important aspects to design and to use relational databases.
Program summary :
The theoretic part covers the following topics: DBMS functionalities, overview of the most common data models, the relational approach (algebra, SQL, normalization, etc.) , transactional support and database design. We study database schema design using the entity-relation model and introduce an algorithm to translate such an abstraction to a normalized relational schema. The pragmatic part of the course is intended to familiarize students with the use of the Standard Query Language, SQL. We also introduce JDBC, the Java API to access
relational databases.
UE Introduction to distributed systems
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
After presenting the major differences between a centralized system and a distributed one, this option shows students both the "user" and the "designer" side of distributed applications. Students get acquainted with existing distributed middleware and see how the latter tackle the problems of distributed system design. Are discussed the principles of distributed communication, including client/server synchronous architectures and publish/subscribe decoupled ones. The students also zoom into distributed middleware implementation and learn the basics of distributed algorithmics. Working with simple distributed topologies, they get to write simple algorithms and reason about their correctness.
UE Human computer interaction
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
Target skills :
The goal is to present the core principles of human-centered approaches for analyzing, designing, implementing and evaluating interactive systems. At the end, students must be familiar with utility (good coverage of the needs) and usability (good quality of service), the two key properties in Human-Computer Interaction for both criticizing and developing high quality User Interfaces (UI). The principles are applied to graphical UIs, including web sites.
Students who attend this course should be able to design, implement and evaluate interactive systems following a user centered approach.
Program summary :
The course presents the key steps and models in user centered design. Then it focuses on ergonomic criteria for sustaining both the design and evaluation of user interfaces.
- Analysis: cognitive models, motivations for the system, models of the user, environment, and activity
- Design: tasks, concepts and platform models, ergonomic criteria, abstract and concrete user interfaces, specifications (User Action Notation)
- Implementation: software architecture models, tools (overview of web programming techniques)
- Evaluation: predictive and experimental, qualitative and quantitative approaches.
The course includes 18h of formal lectures and 18h of project. The project lasts during the whole semester. Students have to analyse a need, design and prototype an interactive system, and evaluate it. The theme is chosen by the students. They have to produce two documents (analysis and design), a prototype, and to test it through user experiments.
UE Computer networks principles
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
Learn basic concepts of computer networking and acquire practical notions of protocols with an emphasis on TCP/IP.
UE 3D graphics
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
Computer Graphics covers the set of techniques enabling the synthesis of animated virtual worlds. The applications range from entertainment (special effects, 3D feature films, video games), to industrial design (modelling and visualizing prototypes) and virtual reality (flight simulator, interactive walk-trough). This course introduces the domain by presenting the bases for the creation of 3D models, their animation, and the rendering of the corresponding 3D scene. Student will be invited to practice through programming exercises in OpenGL.
UE Introduction to mobile robotics
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
The aim of this course is to give an introduction to software developments for mobile robotics applications and internet of things. The course is decidedly practical with several labs and a project on real robots. It uses "learning by doing" and "learning by project" approaches.
At first, the basic concepts of mobile robotics (sensors, actuators, perception, decision, action ...) and Internet of Things are presented and directly implemented on real robots to realize a software prototype of "follow me" by a small mobile robot.
In a second step, in a project, the basic concepts are deepened during the realization of a complete application of mobile robotics including Internet of Things, for example: a mobile robot "coffee dispenser", a robot "patroller", a robot "guide visit" ...
Knowledge of C / C ++ or python is essential.
The course outline can be found at :
http://lig-membres.imag.fr/aycard/html/Enseignement/M1/Robotics2/index.html
Course illustrations can be found at :
http://lig-membres.imag.fr/aycard/html/Projects/Robair/robair.html
UE Introduction to cryptology
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
To acquire the main theoretical and practical notions of modern cryptography: from notions in algorithmic complexity and information theory, to a general overview on the main algorithms and protocols in symmetric and asymmetric cryptography.
UE Parallel algorithms and programming
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
The use of multiprocessor machines has become mandatory and most applications are now running on machines with parallel processing units, from tablets to supercomputers. These applications concern both public and private scientific research, as well as industrial and commercial enterprises.
This lecture and lab work presents the parallel computing domain in different aspects: architectural, algorithmic, parallel programming languages, performance measurements, etc. Examples of parallel algorithms in different domains are also studied.
The course allows you to understand how to design and program a parallel application and run it on a multicore processor or a classical parallel cluster machine. The lab work on machines allows to implement the concepts studied during the lectures, and this with the language extensions OpenMP and MPI.
----------------------
The use of multiprocessor machines has become a must and most applications run today on machines with several processing units running in parallel, from tablets to supercomputers. These applications concern both scientific research (physics, chemistry, biology, etc.) as well as industrial and commercial companies. This domain is called High Performance Computing (HPC).
This Teaching Unit of computer science presents the domain of HPC in different aspects: architectural, algorithmic, languages of parallel programming, performance evaluation, ... Several examples of parallel algorithms, from different scientific fields, are dissected and studied.
The content of this course provides an understanding of how to design, program, and execute a parallel application across a broad spectrum of platforms ranging from a single multicore processor to a 200-core multiprocessor machine, to a cluster of multiprocessor servers. The practical work on parallel machines represents an important part of this Teaching Unit and will implement the concepts studied in the course, especially using the extensions of OpenMP and MPI languages.
UE Fundamental Computer Science
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
This module introduces the fundamental aspects of computer science and particularly focuses on the notions of computability and complexity. Regarding computability theory, it presents the basic formal model to reason on the notion of computation, i.e., the Turing machine and its variants. Based on this computational model, the notions of decidable and semi-decidable languages will be defined, while the existence of languages which are undecidable will be shown. Regarding complexity theory, it presents the main classes of time complexity such as P, NP, as well as the notion of NP-completeness. Several problems in the domains of propositional logic, graphs and scheduling are studied with respect to their time complexity by proposing either polynomial-time algorithms to solve them efficiently or polynomial-time reductions to prove their hardness.
UE Foundations of Data Science
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
UE Embodying the shift: digital in the age of low-tech
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
UE Algebraic Algorithms for Cryptology
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
UE Process engineering
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Business process management (BPM) is the discipline in which people use various methods to discover, model, analyze, measure, improve, optimize, and automate business processes. BPM has become a strategic activity in all organizations around the world because of its potential to increase profit margins and reduce operating costs. This course aims at providing an overview of some key existing solutions for modelling and developing processes, while emphasizing and discussing open research problems in this area.
More specifically, this course focuses on three main parts:
- The first part (Process Modelling) introduces the Business Process Model and Notation (BPMN), which is the ISO standard graphical notation used for modelling business processes. This part also shows how to use existing frameworks (such as the bonita studio) to support the development of BPMN processes along with their life-cycle (design, configuration, execution and control).
- The second part (Process Mining) presents a family of techniques that support the analysis of business processes based on event logs. Process mining applies specialized data mining algorithms on event log data in order to identify trends and patterns contained in these event logs. Process mining aims at improving process efficiency and understanding of processes.
- The third part (Process Analysis) introduces formal models for defining the semantics of process executions. These formal models allow the analysis of the processes using simulation and verification techniques for optimizing resource allocation or controlling the evolution of the business processes.
Program:
- Process Modelling (15h)
- Introduction to Business Process Management (BPM)
- Business Process Model and Notation (BPMN)
- Process perspectives (collaborations and choreographies)
- BPM life-cycle
- Process Mining (9h)
- Motivations & positioning of process mining
- Types of process mining (discovery, conformance & enhancement)
- Process mining methods & tools
- Process Analysis (12h)
- Formal models
- Functional and quantitative analysis
- Resource allocation
- Process comparison and evolution
UE Advanced networking
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The purpose of the lecture is to give you more knowledge and skills in the domain of computer networking. Both theoretical and practical knowledge will be acquired.
Content:
- Routing:
- at Layer 2 - Spanning Tree Protocol
- internal routing (RIP, OSPF)
- external routing (BGP)
- Congestion control:
- fairness
- AIMD algorithm
- TCP variants (Reno, Cubic, BBR)
- Quality of Service:
- token bucket, scheduling
- MPLS
- Case study
- Next Generation Data Center Architecture
UE Advanced parallel system
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Today, parallel computing is omnipresent across a large spectrum of computing platforms, from processor cores or GPUs up to Supercomputers and Cloud platforms. The largest Supercomputers gather millions of processing units and are heading towards Exascale (a quintillion or 10^18 flops - http://top500.org). If parallel processing was initially targeting scientific computing, it is now part of many domains like Big Data analytics and Deep Learning. But making an efficient use of these parallel resources requires a deep understanding of architectures, systems, parallel programming models, and parallel algorithms.
Overview:
The class is organized around weekly lectures, discussions and help time. The presented materials that will be available each week on the class web page. To get practical experience and good understanding of the main concepts the students are expected to develop short programs and experiments. Students will also have to prepare a presentation or a written report on research articles. Students will have access to Grid'5000 parallel machines and the SimGrid simulator for experiments.
This class is organized around 2 main blocks:
Overview of parallel systems:
-
- Introduction to parallelism from GPU to supercomputers.
- Hardware and system considerations for parallel processing (multi-core architectures, process and thread handling, cache efficiency, remote data access, atomic instructions)
- Parallel programming: message passing, one-sided communications, task-based programming, work stealing based runtimes (MPI, Cilk, TBB, OpenMP).
- Modeling of parallel programs and platforms. Locality, granularity, memory space, communications.
- Parallel algorithms, collective communications, topology aware algorithms.
- Scheduling: list algorithms; partitioning techniques. Application to resource management (PBS, LSF, SGE, OAR).
- Large scale scientific computing: parallelization of Lagrangian and Eulerian solvers, parallel data analytics and scientific visualization.
- AI and HPC: how parallelism is used at different levels to accelerate machine learning and deep learning using supercomputers.
Functional parallel programming:
We propose to study a clean and modern approach to the design of parallel algorithms: functional programming. Functional languages are known to provide a different and cleaner programming experience by allowing a shift of focus from "how to do" on "what to do".
If you take for example a simple dot product between two vectors. In c language you might end up with:
unsigned int n = length(v1); double s = 0.0; for (unsigned int i = 0 ; i < n ; i++) { s += v1[i] * v2[i]; }
In python however you could write:
return sum(e1*e2 for e1, e2 in zip(v1, v2))
You can easily notice that the c language code displayed here is highly sequential with a data-flow dependence on the i variable. It intrinsically contains an ordering of operations because it tells you how to do things to obtain the final sum. On the other end the python code exhibits no dependencies at all. It does not tell you how to compute the sum but just what to compute: the sum of all products.
In this course we will study how to express parallel operations in a safe and performant way. The main point is to study parallel iterators and their uses but we will also consider classical parallel programming schemes like divide and conquer. We will both study the theoretical complexity of different parallel algorithms and practice programming and performance analysis on real machines.
All applications will be developed in the RUST programming language around the Rayon parallel programming library.
No previous knowledge of the rust language is required as we will introduce it gradually during the course. You need however to be proficient in at least one low level language (typically C or C++)
UE Fundamentals of Data Processing and Distributed Knowledge
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Modern computing increasingly takes advantage of large amounts of distributed data and knowledge. This is grounded on theoretical principles borrowing to several fields of computer science such as programming languages, data bases, structured documentation, logic and artificial intelligence. The goal of this course is to present some of them, the problems that they solve and those that they uncover. The course considers two perspectives on data and knowledge: interpretation (what they mean), analysis (what they reveal) and processing (how can they be traversed efficiently and transformed safely).
The course offers a semantic perspective on distributed knowledge. Distributed knowledge may come from data sources using different ontologies on the semantic web, autonomous software agents learning knowledge or social robots interacting with different interlocutors. The course adopts a synthetic view on these. It first presents principles of the semantics of knowledge representation (RDF, OWL). Ontology alignments are then introduced to reduce the heterogeneity between distributed knowledge and their exploitation for answering federated queries is presented. A practical way for cooperating agents to evolve their knowledge is cultural knowledge evolution that is then illustrated. Finally, the course defines dynamic epistemic logics as a way to model the communication of knowledge and beliefs.
The course also introduces a perspective on programming language foundations, algorithms and tools for processing structured information, and in particular tree-shaped data. It consists in an introduction to relevant theoretical tools with an application to NoSQL (not only SQL) and XML technologies in particular. Theories and algorithmic toolboxes such as fundamentals of tree automata and tree logics are introduced, with applications to practical problems found for extracting information. Applications include efficient query evaluation, memory-efficient validation of document streams, robust type-safe processing of documents, static analysis of expressive queries, and static type-checking of programs manipulating structured information. The course also aims at presenting challenges, important results, and open issues in the area.
UE Scientific Methodology, Regulatory and ethical data usage
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The course aims to provide the fundamental basis for a sound scientific methodology of experimental evaluation in computer science. This lecture emphasizes on methodological aspects of measurement and on the statistics needed to analyze computer systems, human-computer interaction systems, and machine learning systems. We first sensibilize the audience to reproducibility issues related to empirical research in computer science as well as to ethical and scientific integrity aspects. Then we present tools that help address the aforementioned issues and we give the audience the basis of probabilities and statistics required to develop sound experiment designs. The content of the lecture is therefore both theoretical and practical, illustrated by a lot of case studies and practical sessions. The goal is not to provide analysis recipes or techniques that researchers can blindly apply but to make students develop critical thinking and understand some simple (and possibly not-so-simple) tools so that they can both readily use and explore later on.
UE Robotics
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
A robot is a mechatronic system with perception, decision and action capabilities design to perform in an autonomous way different tasks in the real world. Whatever the robot (e.g. mobile robot, industrial arm, mobile manipulator) and the task that it has been assigned, the robot will have to move (move its whole body or a part of its body, e.g. arm, hand). Accordingly, motion autonomy is an essential skill for a robot. To achieve motion autonomy, it is required to solve a number of challenging problems in areas as diverse as sensor data processing, situation understanding, motion planning, obstacle avoidance and control. The purpose of the course is to present the main concepts, tools and techniques that Roboticists have developed in the past fifty years in order to address these challenges. The course has three parts that focus on different aspects: The first part is about robot state estimation and world modeling. It presents the most popular approaches to perform state estimation. The basic equations of the Bayes filter are derived first. Then, the Extended Kalman Filter is introduced. These methods are then used to explore the following fundamental estimation problems: 1) robot localization, 2) Simultaneous Localization and Mapping (SLAM), 3) cooperative localization, and 4) simultaneous localization and self-calibration. The structural properties of these problems are studied. In particular, it is shown how the computational complexity scales with the size of the state. Finally, more theoretical aspects related to estimation with special focus on state observability are discussed. The second part focuses on the decision-making aspects. Motion planning is addressed first in the seminal configuration space framework, the main configuration space-based motion planning techniques are reviewed. Then, to deal with the uncertainty of the real world and the discrepancy between the world and its model, reactive collision avoidance techniques are presented. Finally, motion safety is formally studied thanks to the Inevitable Collision State concept. The third part is an introduction to control theory for articulated robots. The objectives are to understand basic concepts about the kinematics and dynamics of articulated robots and basic control theory in order to approach classical control methods, as well as a few selected advanced topics. The kinematics of articulated robots is introduced first, covering advanced topics such as singularities, hierarchies of objectives, inequality constraints. A brief reminder about Newton, Euler and Lagrangian equations of motion as well as basic Lyapunov stability theory is also provided before discussing standard motion control schemes such as Proportional-Derivative, Computed Torque, Operational Space and Task Function approaches. Advanced topics such as space robots, biped robots, Viability theory and optimal control are also touched.
UE Computer Graphics
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This is an advanced lecture in Computer Graphics. It is divided in the three topics Geometric Modeling, Animation and Rendering. In Geometric Modeling we focus on the theory behind subdivision curves and surfaces. We present the main results for proving the convergence of a subdivision scheme and the smoothness of its limit. We provide practical recipes for applying these theoretical results to subdivision schemes. We illustrate the results in a homework in which students program subdivision curves and visualize their smoothness. The animation part is composed of 12 lessons presented during 4 lectures. Each lesson focuses on one important concept in computer animation, one of the 12 principles of traditional animation, and one research paper. This includes Keyframe animation, Forward and inverse kinematics, Motion planning, Rigging and skinning, and Mass spring systems. The rendering part focus on how to display a picture on the screen, so that it looks pleasing for the viewer. The topics presented include Materials and BRDFs, Shadow and shadow maps, Global illumination techniques, Monte-carlo ray-tracing , Level-of-Detail techniques and Expressive rendering. The main rendering techniques are implemented by the students in three homeworks.
UE Multi-agent systems
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Multi-agent systems (MAS) is a very active field of AI research, with multiple industrial and societal applications. The 2 main fields of application concern Distributed Problem Solving (DPS) and Agent-Based Modelling and Simulation (ABMS). The goal of this course is to understand the concepts of agents, multi-agent systems, models and simulations, and to learn how to design such models.
This course introduces the field of MAS, various theoretical aspects (agent architectures, reasoning, interactions, game theory, social choice, etc), as well as practical applications from recent research. The focus is mostly on agent-based social simulation, and how to integrate psychological aspects in agents (so-called “human factors”: emotions, biases…) to make them more human-like and realistic. Applications discussed include epidemics modelling, computational economy, crisis management, urban planning, serious games, etc. The practical part of the course comprises several tutorials with various agent-based modelling platforms (in particular GAMA and Netlogo), scientific papers discussions, and analysis and/or extension of existing models.
UE Information visualization
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Interactive Information Visualization (InfoVis)
InfoVis is the study of interactive graphical representations of abstract data (e.g. graphs linking people in social networks, series of stock options values evolving over time).
Graphical representations are a powerfull way to leverage the human perceptual capabilities to allow the user to explore and make sense of abstract data, and also to expose findings and convey ideas.
But to be efficient, a visualization has to be designed using knowledge about the human visual perception, the characteristics of the data, the kind of task that will be performed on those data.
The aim of this course is to provide the keys, both theoretical and practical, to build usable and useful interactive visualizations.
program summary:
- foundations: human visual perception, graphical variables, data types, the visualization pipeline.
- linked data: tree and graph visualization
- tabular data: time series and spatial data visualization
- dealing with large data: aggregation, multiple views, interaction
- validating visualization: visualization tasks, evaluation
UE Computer vision
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course provides an introduction to computer vision. It concerns techniques for constructing systems that observe and recognize objects, scenes and activities. It provides training in tools and techniques and models for: the image formation process, color and illumination, image signal processing, multi-scale image description, image analysis, object detection, recognition and tracking, motion capture, modeling and understanding, image matching, multi-camera systems, and 3D reconstruction and modeling.
UE Cloud Computing, from infrastructure to applications
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course provides an overview of cloud computing principles, building blocks and applications.
Over the past 15 years, the emergence of cloud computing infrastructures has fundamentally impacted the way to design and deploy software, in most application domains. At the core of IT infrastructures, cloud computing is today the main platform for implementing and deploying robust, scalable, potentially geo-distributed, elastic applications. Together with DevOps methods, it allows IT companies to rapidly deliver reliable software.
The course studies :
- The low-level mechanisms enabling the cost-efficiency, performance, scalability and resilience of cloud infrastructures,
- The software design principles involved in the construction of (distributed) cloud applications,
- The cloud services facilitating the implementation of cloud-native applications.
Through lectures, practical sessions, and the study of recent research publications (from academia and industry), students will learn about the core principles and usage of:
- Virtualization technologies (hypervisors, kernels, and containers) enabling flexible, efficient, safe and secure hosting of code and data on a shared hardware and software infrastructure;
- The fundamental aspects of cloud infrastructures, services, and design patterns for the construction of efficient, scalable and resilient distributed applications;
- Microservice architectures, allowing organizations to design, develop and manage complex software services in an extremely modular way.
UE Large scale Data Management and Distributed Systems
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The course is divided in two complementary parts: distributed systems and data management.
Part 1: Distributed systems
Summary
Distributed systems are omnipresent. They are formed by a set of computing devices, interconnected by a network, that collaborate to perform a task. Distributed systems execute on a wide range of infrastructures: from Cloud datacenters to wireless sensor networks.
The goal of this course is to study the main algorithms used at the core of Distributed systems. These algorithms must be efficient and robust. An algorithm is efficient when it sustains a high level of performance. Performance can be measured using various metrics such as throughput, latency, response time. An algorithm is robust when it is able to operate despite the occurrence of various types of (network and/or machine) and attacks.
Content
During the course, we will cover several topics that are listed below:
- Event-driven formalisms for distributed algorithms
- Basic abstractions: processes, links
- Failure detector algorithms
- Leader election algorithms
- Broadcasting algorithms
- Distributed shared memory algorithms
- Consensus algorithms
- Epidemic algorithms
- Performance models for distributed systems
Part 2: Data management
Summary
The ability to process large amounts of data is key to both industry and research today. As computing systems are getting larger, they generate more data that need to be analyzed to extract knowledge.
Data management infrastructures are growing fast, leading to the creation of large data centers and federations of data centers. Suitable software infrastructures should be used to store and process data in this context. Big Data software systems are built to take advantage of a large set of distributed resources to efficiently process massive amounts of data while being able to cope with failures that are frequent at such a scale.
In addition to the amount of data to be processed, the other main challenge that such Big Data systems need to deal with is time. For some use cases, the earlier the results of a data analysis is obtained, the more valuable the result is. Some Big Data systems especially target stream processing where data are processed in real time.
Through lectures and practical sessions, this course provides an overview of the software systems that are used to store and process data at large scale. The following topics will be covered:
- Map-Reduce programming model
- In-memory data processing
- Stream processing (data movement and processing)
- Large scale distributed data storage (distributed file systems, NoSQL databases)
Throughout the lectures, the challenges associated with performance and fault tolerance will also be discussed.
UE GPU Computing
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
In this course, we will introduce parallel programming paradigms to the students in the context of applied mathematics. The students will learn to identify the parallel pattern in numerical algorithm. The key components that the course will focus on are : efficiency, scalability, parallel pattern, comparison of parallel algorithms, operational intensity and emerging programming paradigm. Trough different lab assignments, the students will apply the concepts of efficient parallel programming using Graphic Processing Unit. In the final project, the students will have the possibility to parallelize one of their own numerical application developed in a previous course.
UE From Basic Machine Learning models to Advanced Kernel Learning
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Statistical learning is about the construction and study of systems that can automatically learn from data. With the emergence of massive datasets commonly encountered today, the need for powerful machine learning is of acute importance. Examples of successful applications include effective web search, anti-spam software, computer vision, robotics, practical speech recognition, and a deeper understanding of the human genome. This course gives an introduction to this exciting field. In the first part, we will introduce basic techniques such as logistic regression, multilayer perceptrons, nearest neighbor approaches, both from a theoretical and methodological point of views. In the second part, we will focus on more advanced techniques such as kernel methods, which is a versatile tool to represent data, in combination with (un)supervised learning techniques that are agnostic to the type of data that is learned from. The learning techniques that will be covered include regression, classification, clustering and dimension reduction. We will cover both the theoretical underpinnings of kernels, as well as a series of kernels that are important in practical applications. Finally we will touch upon topics of active research, such as large-scale kernel methods and the use of kernel methods to develop theoretical foundations of deep learning models.
UE Advanced Machine Learning: Applications to Vision, Audio and Text
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The course is split into two parts. During the first part, a wide range of machine learning algorithms will be discussed. The second part will focus on deep learning, and presentations more applied to the three data modalities and their combinations. The following is a non-exhaustive list of topics discussed:
- Computing dot products in high dimension & Page Rank
- Matrix completion/factorization (Stochastic Gradient Descent, SVD)
- Monte-carlo, MCMC methods: Metropolis-Hastings and Gibbs Sampling
- Unsupervised classification: Partitionning, Hierarchical, Kernel and Spectral clustering
- Alignment and matching algorithms (local/global, pairwise/multiple), dynamic programming, Hungarian algorithm,…
- Introduction to Deep Learning concepts, including CNN, RNN, Metric learning
- Attention models: Self-attention, Transformers
- Auditory data: Representation, sound source localisation and separation.
- Natural language data: Representation, Seq2Seq, Word2Vec, Machine Translation, Pre-training strategies, Benchmarks and evaluation
- Visual data: image and video representation, recap of traditional features, state-of-the-art neural architectures for feature extraction
- Object detection and recognition, action recognition.
- Multimodal learning: audio-visual data representation, multimedia retrieval.
- Generative Adversarial Networks: Image-image translation, conditional generation
UE Natural Language Processing & Information Retrieval
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The automatic processing of languages, whether written or spoken, has always been an essential part of artificial intelligence. This domain has encouraged the emergence of new uses thanks to the arrival in the industrial field of many technologies from research (spell-checkers, speech synthesis, speech recognition, machine translation, …). In this course, we present the most recent advances and challenges for research. We will discuss discourse analysis whether written or spoken, text clarification, automatic speech transcription and automatic translation, in particular recent advances with neural models.
Information access and retrieval is now ubiquitous in everyday life through search engines, recommendation systems, or technological and commercial surveillance, in many application domains either general or specific like health for instance. In this course, we will cover Information retrieval basics, information retrieval evaluation, models for information retrieval, medical information retrieval, and deep learning for multimedia indexing and retrieval
UE Information Security
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This lecture deals with Information Systems Security and provides several facets, ranging from modeling to deployment in real applications. Information Systems Security refers to the processes and methodologies involved to keep information confidential, available, and assure its integrity. The lecture is divided in two major parts and assisted with several practical labs, allowing the students to model and configure security policies and also to be aware about several kinds of attacks and breaches.
Course content
Part 1: Access Control, or how to prevent unauthorized people from entering or accessing a system?
This part deals with:
- Cryptology for authentication and trust;
- security needs : confidentiality, availability, integrity, non-repudiation (CAI/DICP);
- cryptology primitives : private and public key ; trusted infrastructure (PKI and ledgers).
- zero-knowledge protocols; secret sharing and multiparty computation / or Practical work with Open SSL
- Access control mechanisms (MAC, DAC, RBAC, ABAC) and their implementations
- The detection and remediation of security breaches such as intrusions and insider attacks
- The deployment of control filters in applications and proxies.
The presented approach is built on the model-driven security paradigm (MDS). It refers to the process of modeling security requirements at a high level of abstraction, and generating technical security implementations. Security models are transformed into enforceable security rules including the run-time security management (e.g. entitlements/authorisations). Three labs are planned:
- B4MSecure: we will apply a formal language with animation and model-checking facilities to identify security breaches in Access Control policies.
- Snort: in this practical session you will set a local environment to simulate two machines, the target machine and the attacker. You will learn how to create firewall rules, monitor your network and how to react when an attack is detected.
- Metasploit: you will discover technology intelligence for vulnerabilities through a practical session where you will reproduce an exploit to hack and take control over a web-based server.
Part 2: Overview of modern attacks on systems, protocols, and networks and countermeasures
This part is devoted to modern attacks carried out on the Internet scale, in particular attacks on the DNS system (Domain Name System), such as cache or zone poisoning attacks, reflection and amplification of DDoS attacks (Distributed Denial of Service), IP spoofing - the root cause of DDoS attacks, botnets (e.g., Mirai), domain generation algorithms used for command-and-control communications, modern malware (e.g., Emotet trojan, Avalanche), spam, phishing, and business email compromise (BEC) scams.
The module will discuss preventative measures and security protocols to fight modern attacks, such as DDoS protection services, IP source address validation (SAV) known as BCP 38, Sender Policy Framework, and DMARC protocols as the first line of defense against email spoofing and BEC fraud, and DNSSEC to prevent DNS manipulation attacks. It will also discuss large-scale vulnerability measurements (a case study of the zone poisoning attack) and the challenges of deploying current security technologies by the system and network operators.
This part will be concluded with a practical team assignment in which students will be divided into groups and will have to configure a secure system in a real-world environment. The goal is to secure their system against the various types of discussed attacks and exploit other groups' systems.
UE Mathematical Foundations of Machine Learning
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Machine Learning is one of the key areas of Artificial Intelligence and it concerns the study and the development of quantitative models that enables a computer to perform tasks without being explicitly programmed to do them. Learning in this context is hence to recognize complex forms and to make intelligent decisions. Given all existing entries, the difficulty of this task lies in the fact that all possible decisions is usually very complex to enumerate. To get around that, machine learning algorithms are designed in order to gain knowledge on the problem to be addressed based on a limited set of observed data extracted from this problem. To illustrate this principle, consider the supervised learning task, where the prediction function, which infers a predicted output for a given input, is learned over a finite set of labeled training examples, where each instance of this set is a pair constituted of a vector characterizing an observation in a given vector space, and an associated desired response for that instance (also called desired output). After the training step, the function returned by the algorithm is sought to give predictions on new examples, which have not been used in the learning process, with the lowest probability of error. The underlying assumption in this case is that the examples are, in general, representative of the prediction problem on which the function will be applied. We expect that the learning algorithm produces a function that will have a good generalization performance and not the one that is able to perfectly reproduce the outputs associated to the training examples. Guarantees of learnability of this process were studied in the theory of machine learning largely initiated by Vladimir Vapnik. These guarantees are dependent on the size of the training set and the complexity of the class of functions where the algorithm searches for the prediction function. Emerging technologies, particularly those related to the development of Internet, reshaped the domain of machine learning with new learning frameworks that have been studied to better tackle the related problems. One of these frameworks concerns the problem of learning with partially labeled data, or semi-supervised learning, which development is motivated by the effort that has to be made to construct labeled training sets for some problems, while large amount of unlabeled data can be gathered easily for these problems. The inherent assumption, in this case, is that unlabeled data contain relevant information about the task that has to be solved, and that it is a natural idea to try to extract this information so as to provide the learning algorithm more evidence. From these facts were born a number of works that intended to use a small amount of labeled data simultaneously with a large amount of unlabeled data to learn a prediction function.
The intent of this course is to propose a broad introduction to the field of Machine Learning, including discussions of each of the major frameworks, supervised, unsupervised, semi-supervised and reinforcement learning.
UE Statistical learning: from parametric to nonparametric models
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course is related to mathematical and statistical methods which are very used in supervised learning.
It contains two parts.
In the first part, we will focus on parametric modeling. Starting with the classical linear regression, we will describe several families of estimators that work when considering high-dimensional data, where the classical least square estimator does not work. Model selection and model assessment will particularly be described.
In the second part, we shall focus on nonparametric methods. We will present several tools and ingredients to predict the future value of a variable. We shall focus on methods for non parametric regression from independent to correlated training dataset. We shall also study some methods to avoid the overfitting in supervised learning.
This course will be followed by practical sessions with the R software.
UE Refresh courses
Level
Baccalaureate +5
ECTS
0 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Refresh courses
UE Human Computer Interaction
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées), Grenoble INP - Ensimag (Informatique, mathématiques appliquées et télécommunications), UGA
Semester
Automne
UE Next Generation Software Development
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées), Grenoble INP - Ensimag (Informatique, mathématiques appliquées et télécommunications), UGA
Semester
Automne
UE Safety Critical Systems: from design to verification
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées), Grenoble INP - Ensimag (Informatique, mathématiques appliquées et télécommunications), UGA
Semester
Automne
UE Research project
Level
Baccalaureate +5
ECTS
30 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
UE GS_MSTIC_Research ethics
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
UE Process engineering
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Business process management (BPM) is the discipline in which people use various methods to discover, model, analyze, measure, improve, optimize, and automate business processes. BPM has become a strategic activity in all organizations around the world because of its potential to increase profit margins and reduce operating costs. This course aims at providing an overview of some key existing solutions for modelling and developing processes, while emphasizing and discussing open research problems in this area.
More specifically, this course focuses on three main parts:
- The first part (Process Modelling) introduces the Business Process Model and Notation (BPMN), which is the ISO standard graphical notation used for modelling business processes. This part also shows how to use existing frameworks (such as the bonita studio) to support the development of BPMN processes along with their life-cycle (design, configuration, execution and control).
- The second part (Process Mining) presents a family of techniques that support the analysis of business processes based on event logs. Process mining applies specialized data mining algorithms on event log data in order to identify trends and patterns contained in these event logs. Process mining aims at improving process efficiency and understanding of processes.
- The third part (Process Analysis) introduces formal models for defining the semantics of process executions. These formal models allow the analysis of the processes using simulation and verification techniques for optimizing resource allocation or controlling the evolution of the business processes.
Program:
- Process Modelling (15h)
- Introduction to Business Process Management (BPM)
- Business Process Model and Notation (BPMN)
- Process perspectives (collaborations and choreographies)
- BPM life-cycle
- Process Mining (9h)
- Motivations & positioning of process mining
- Types of process mining (discovery, conformance & enhancement)
- Process mining methods & tools
- Process Analysis (12h)
- Formal models
- Functional and quantitative analysis
- Resource allocation
- Process comparison and evolution
UE Advanced networking
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The purpose of the lecture is to give you more knowledge and skills in the domain of computer networking. Both theoretical and practical knowledge will be acquired.
Content:
- Routing:
- at Layer 2 - Spanning Tree Protocol
- internal routing (RIP, OSPF)
- external routing (BGP)
- Congestion control:
- fairness
- AIMD algorithm
- TCP variants (Reno, Cubic, BBR)
- Quality of Service:
- token bucket, scheduling
- MPLS
- Case study
- Next Generation Data Center Architecture
UE Advanced parallel system
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Today, parallel computing is omnipresent across a large spectrum of computing platforms, from processor cores or GPUs up to Supercomputers and Cloud platforms. The largest Supercomputers gather millions of processing units and are heading towards Exascale (a quintillion or 10^18 flops - http://top500.org). If parallel processing was initially targeting scientific computing, it is now part of many domains like Big Data analytics and Deep Learning. But making an efficient use of these parallel resources requires a deep understanding of architectures, systems, parallel programming models, and parallel algorithms.
Overview:
The class is organized around weekly lectures, discussions and help time. The presented materials that will be available each week on the class web page. To get practical experience and good understanding of the main concepts the students are expected to develop short programs and experiments. Students will also have to prepare a presentation or a written report on research articles. Students will have access to Grid'5000 parallel machines and the SimGrid simulator for experiments.
This class is organized around 2 main blocks:
Overview of parallel systems:
-
- Introduction to parallelism from GPU to supercomputers.
- Hardware and system considerations for parallel processing (multi-core architectures, process and thread handling, cache efficiency, remote data access, atomic instructions)
- Parallel programming: message passing, one-sided communications, task-based programming, work stealing based runtimes (MPI, Cilk, TBB, OpenMP).
- Modeling of parallel programs and platforms. Locality, granularity, memory space, communications.
- Parallel algorithms, collective communications, topology aware algorithms.
- Scheduling: list algorithms; partitioning techniques. Application to resource management (PBS, LSF, SGE, OAR).
- Large scale scientific computing: parallelization of Lagrangian and Eulerian solvers, parallel data analytics and scientific visualization.
- AI and HPC: how parallelism is used at different levels to accelerate machine learning and deep learning using supercomputers.
Functional parallel programming:
We propose to study a clean and modern approach to the design of parallel algorithms: functional programming. Functional languages are known to provide a different and cleaner programming experience by allowing a shift of focus from "how to do" on "what to do".
If you take for example a simple dot product between two vectors. In c language you might end up with:
unsigned int n = length(v1); double s = 0.0; for (unsigned int i = 0 ; i < n ; i++) { s += v1[i] * v2[i]; }
In python however you could write:
return sum(e1*e2 for e1, e2 in zip(v1, v2))
You can easily notice that the c language code displayed here is highly sequential with a data-flow dependence on the i variable. It intrinsically contains an ordering of operations because it tells you how to do things to obtain the final sum. On the other end the python code exhibits no dependencies at all. It does not tell you how to compute the sum but just what to compute: the sum of all products.
In this course we will study how to express parallel operations in a safe and performant way. The main point is to study parallel iterators and their uses but we will also consider classical parallel programming schemes like divide and conquer. We will both study the theoretical complexity of different parallel algorithms and practice programming and performance analysis on real machines.
All applications will be developed in the RUST programming language around the Rayon parallel programming library.
No previous knowledge of the rust language is required as we will introduce it gradually during the course. You need however to be proficient in at least one low level language (typically C or C++)
UE Fundamentals of Data Processing and Distributed Knowledge
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Modern computing increasingly takes advantage of large amounts of distributed data and knowledge. This is grounded on theoretical principles borrowing to several fields of computer science such as programming languages, data bases, structured documentation, logic and artificial intelligence. The goal of this course is to present some of them, the problems that they solve and those that they uncover. The course considers two perspectives on data and knowledge: interpretation (what they mean), analysis (what they reveal) and processing (how can they be traversed efficiently and transformed safely).
The course offers a semantic perspective on distributed knowledge. Distributed knowledge may come from data sources using different ontologies on the semantic web, autonomous software agents learning knowledge or social robots interacting with different interlocutors. The course adopts a synthetic view on these. It first presents principles of the semantics of knowledge representation (RDF, OWL). Ontology alignments are then introduced to reduce the heterogeneity between distributed knowledge and their exploitation for answering federated queries is presented. A practical way for cooperating agents to evolve their knowledge is cultural knowledge evolution that is then illustrated. Finally, the course defines dynamic epistemic logics as a way to model the communication of knowledge and beliefs.
The course also introduces a perspective on programming language foundations, algorithms and tools for processing structured information, and in particular tree-shaped data. It consists in an introduction to relevant theoretical tools with an application to NoSQL (not only SQL) and XML technologies in particular. Theories and algorithmic toolboxes such as fundamentals of tree automata and tree logics are introduced, with applications to practical problems found for extracting information. Applications include efficient query evaluation, memory-efficient validation of document streams, robust type-safe processing of documents, static analysis of expressive queries, and static type-checking of programs manipulating structured information. The course also aims at presenting challenges, important results, and open issues in the area.
UE Scientific Methodology, Regulatory and ethical data usage
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The course aims to provide the fundamental basis for a sound scientific methodology of experimental evaluation in computer science. This lecture emphasizes on methodological aspects of measurement and on the statistics needed to analyze computer systems, human-computer interaction systems, and machine learning systems. We first sensibilize the audience to reproducibility issues related to empirical research in computer science as well as to ethical and scientific integrity aspects. Then we present tools that help address the aforementioned issues and we give the audience the basis of probabilities and statistics required to develop sound experiment designs. The content of the lecture is therefore both theoretical and practical, illustrated by a lot of case studies and practical sessions. The goal is not to provide analysis recipes or techniques that researchers can blindly apply but to make students develop critical thinking and understand some simple (and possibly not-so-simple) tools so that they can both readily use and explore later on.
UE Robotics
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
A robot is a mechatronic system with perception, decision and action capabilities design to perform in an autonomous way different tasks in the real world. Whatever the robot (e.g. mobile robot, industrial arm, mobile manipulator) and the task that it has been assigned, the robot will have to move (move its whole body or a part of its body, e.g. arm, hand). Accordingly, motion autonomy is an essential skill for a robot. To achieve motion autonomy, it is required to solve a number of challenging problems in areas as diverse as sensor data processing, situation understanding, motion planning, obstacle avoidance and control. The purpose of the course is to present the main concepts, tools and techniques that Roboticists have developed in the past fifty years in order to address these challenges. The course has three parts that focus on different aspects: The first part is about robot state estimation and world modeling. It presents the most popular approaches to perform state estimation. The basic equations of the Bayes filter are derived first. Then, the Extended Kalman Filter is introduced. These methods are then used to explore the following fundamental estimation problems: 1) robot localization, 2) Simultaneous Localization and Mapping (SLAM), 3) cooperative localization, and 4) simultaneous localization and self-calibration. The structural properties of these problems are studied. In particular, it is shown how the computational complexity scales with the size of the state. Finally, more theoretical aspects related to estimation with special focus on state observability are discussed. The second part focuses on the decision-making aspects. Motion planning is addressed first in the seminal configuration space framework, the main configuration space-based motion planning techniques are reviewed. Then, to deal with the uncertainty of the real world and the discrepancy between the world and its model, reactive collision avoidance techniques are presented. Finally, motion safety is formally studied thanks to the Inevitable Collision State concept. The third part is an introduction to control theory for articulated robots. The objectives are to understand basic concepts about the kinematics and dynamics of articulated robots and basic control theory in order to approach classical control methods, as well as a few selected advanced topics. The kinematics of articulated robots is introduced first, covering advanced topics such as singularities, hierarchies of objectives, inequality constraints. A brief reminder about Newton, Euler and Lagrangian equations of motion as well as basic Lyapunov stability theory is also provided before discussing standard motion control schemes such as Proportional-Derivative, Computed Torque, Operational Space and Task Function approaches. Advanced topics such as space robots, biped robots, Viability theory and optimal control are also touched.
UE Computer Graphics
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This is an advanced lecture in Computer Graphics. It is divided in the three topics Geometric Modeling, Animation and Rendering. In Geometric Modeling we focus on the theory behind subdivision curves and surfaces. We present the main results for proving the convergence of a subdivision scheme and the smoothness of its limit. We provide practical recipes for applying these theoretical results to subdivision schemes. We illustrate the results in a homework in which students program subdivision curves and visualize their smoothness. The animation part is composed of 12 lessons presented during 4 lectures. Each lesson focuses on one important concept in computer animation, one of the 12 principles of traditional animation, and one research paper. This includes Keyframe animation, Forward and inverse kinematics, Motion planning, Rigging and skinning, and Mass spring systems. The rendering part focus on how to display a picture on the screen, so that it looks pleasing for the viewer. The topics presented include Materials and BRDFs, Shadow and shadow maps, Global illumination techniques, Monte-carlo ray-tracing , Level-of-Detail techniques and Expressive rendering. The main rendering techniques are implemented by the students in three homeworks.
UE Multi-agent systems
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Multi-agent systems (MAS) is a very active field of AI research, with multiple industrial and societal applications. The 2 main fields of application concern Distributed Problem Solving (DPS) and Agent-Based Modelling and Simulation (ABMS). The goal of this course is to understand the concepts of agents, multi-agent systems, models and simulations, and to learn how to design such models.
This course introduces the field of MAS, various theoretical aspects (agent architectures, reasoning, interactions, game theory, social choice, etc), as well as practical applications from recent research. The focus is mostly on agent-based social simulation, and how to integrate psychological aspects in agents (so-called “human factors”: emotions, biases…) to make them more human-like and realistic. Applications discussed include epidemics modelling, computational economy, crisis management, urban planning, serious games, etc. The practical part of the course comprises several tutorials with various agent-based modelling platforms (in particular GAMA and Netlogo), scientific papers discussions, and analysis and/or extension of existing models.
UE Information visualization
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Interactive Information Visualization (InfoVis)
InfoVis is the study of interactive graphical representations of abstract data (e.g. graphs linking people in social networks, series of stock options values evolving over time).
Graphical representations are a powerfull way to leverage the human perceptual capabilities to allow the user to explore and make sense of abstract data, and also to expose findings and convey ideas.
But to be efficient, a visualization has to be designed using knowledge about the human visual perception, the characteristics of the data, the kind of task that will be performed on those data.
The aim of this course is to provide the keys, both theoretical and practical, to build usable and useful interactive visualizations.
program summary:
- foundations: human visual perception, graphical variables, data types, the visualization pipeline.
- linked data: tree and graph visualization
- tabular data: time series and spatial data visualization
- dealing with large data: aggregation, multiple views, interaction
- validating visualization: visualization tasks, evaluation
UE Computer vision
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course provides an introduction to computer vision. It concerns techniques for constructing systems that observe and recognize objects, scenes and activities. It provides training in tools and techniques and models for: the image formation process, color and illumination, image signal processing, multi-scale image description, image analysis, object detection, recognition and tracking, motion capture, modeling and understanding, image matching, multi-camera systems, and 3D reconstruction and modeling.
UE Cloud Computing, from infrastructure to applications
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course provides an overview of cloud computing principles, building blocks and applications.
Over the past 15 years, the emergence of cloud computing infrastructures has fundamentally impacted the way to design and deploy software, in most application domains. At the core of IT infrastructures, cloud computing is today the main platform for implementing and deploying robust, scalable, potentially geo-distributed, elastic applications. Together with DevOps methods, it allows IT companies to rapidly deliver reliable software.
The course studies :
- The low-level mechanisms enabling the cost-efficiency, performance, scalability and resilience of cloud infrastructures,
- The software design principles involved in the construction of (distributed) cloud applications,
- The cloud services facilitating the implementation of cloud-native applications.
Through lectures, practical sessions, and the study of recent research publications (from academia and industry), students will learn about the core principles and usage of:
- Virtualization technologies (hypervisors, kernels, and containers) enabling flexible, efficient, safe and secure hosting of code and data on a shared hardware and software infrastructure;
- The fundamental aspects of cloud infrastructures, services, and design patterns for the construction of efficient, scalable and resilient distributed applications;
- Microservice architectures, allowing organizations to design, develop and manage complex software services in an extremely modular way.
UE Large scale Data Management and Distributed Systems
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The course is divided in two complementary parts: distributed systems and data management.
Part 1: Distributed systems
Summary
Distributed systems are omnipresent. They are formed by a set of computing devices, interconnected by a network, that collaborate to perform a task. Distributed systems execute on a wide range of infrastructures: from Cloud datacenters to wireless sensor networks.
The goal of this course is to study the main algorithms used at the core of Distributed systems. These algorithms must be efficient and robust. An algorithm is efficient when it sustains a high level of performance. Performance can be measured using various metrics such as throughput, latency, response time. An algorithm is robust when it is able to operate despite the occurrence of various types of (network and/or machine) and attacks.
Content
During the course, we will cover several topics that are listed below:
- Event-driven formalisms for distributed algorithms
- Basic abstractions: processes, links
- Failure detector algorithms
- Leader election algorithms
- Broadcasting algorithms
- Distributed shared memory algorithms
- Consensus algorithms
- Epidemic algorithms
- Performance models for distributed systems
Part 2: Data management
Summary
The ability to process large amounts of data is key to both industry and research today. As computing systems are getting larger, they generate more data that need to be analyzed to extract knowledge.
Data management infrastructures are growing fast, leading to the creation of large data centers and federations of data centers. Suitable software infrastructures should be used to store and process data in this context. Big Data software systems are built to take advantage of a large set of distributed resources to efficiently process massive amounts of data while being able to cope with failures that are frequent at such a scale.
In addition to the amount of data to be processed, the other main challenge that such Big Data systems need to deal with is time. For some use cases, the earlier the results of a data analysis is obtained, the more valuable the result is. Some Big Data systems especially target stream processing where data are processed in real time.
Through lectures and practical sessions, this course provides an overview of the software systems that are used to store and process data at large scale. The following topics will be covered:
- Map-Reduce programming model
- In-memory data processing
- Stream processing (data movement and processing)
- Large scale distributed data storage (distributed file systems, NoSQL databases)
Throughout the lectures, the challenges associated with performance and fault tolerance will also be discussed.
UE GPU Computing
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
In this course, we will introduce parallel programming paradigms to the students in the context of applied mathematics. The students will learn to identify the parallel pattern in numerical algorithm. The key components that the course will focus on are : efficiency, scalability, parallel pattern, comparison of parallel algorithms, operational intensity and emerging programming paradigm. Trough different lab assignments, the students will apply the concepts of efficient parallel programming using Graphic Processing Unit. In the final project, the students will have the possibility to parallelize one of their own numerical application developed in a previous course.
UE From Basic Machine Learning models to Advanced Kernel Learning
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Statistical learning is about the construction and study of systems that can automatically learn from data. With the emergence of massive datasets commonly encountered today, the need for powerful machine learning is of acute importance. Examples of successful applications include effective web search, anti-spam software, computer vision, robotics, practical speech recognition, and a deeper understanding of the human genome. This course gives an introduction to this exciting field. In the first part, we will introduce basic techniques such as logistic regression, multilayer perceptrons, nearest neighbor approaches, both from a theoretical and methodological point of views. In the second part, we will focus on more advanced techniques such as kernel methods, which is a versatile tool to represent data, in combination with (un)supervised learning techniques that are agnostic to the type of data that is learned from. The learning techniques that will be covered include regression, classification, clustering and dimension reduction. We will cover both the theoretical underpinnings of kernels, as well as a series of kernels that are important in practical applications. Finally we will touch upon topics of active research, such as large-scale kernel methods and the use of kernel methods to develop theoretical foundations of deep learning models.
UE Advanced Machine Learning: Applications to Vision, Audio and Text
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The course is split into two parts. During the first part, a wide range of machine learning algorithms will be discussed. The second part will focus on deep learning, and presentations more applied to the three data modalities and their combinations. The following is a non-exhaustive list of topics discussed:
- Computing dot products in high dimension & Page Rank
- Matrix completion/factorization (Stochastic Gradient Descent, SVD)
- Monte-carlo, MCMC methods: Metropolis-Hastings and Gibbs Sampling
- Unsupervised classification: Partitionning, Hierarchical, Kernel and Spectral clustering
- Alignment and matching algorithms (local/global, pairwise/multiple), dynamic programming, Hungarian algorithm,…
- Introduction to Deep Learning concepts, including CNN, RNN, Metric learning
- Attention models: Self-attention, Transformers
- Auditory data: Representation, sound source localisation and separation.
- Natural language data: Representation, Seq2Seq, Word2Vec, Machine Translation, Pre-training strategies, Benchmarks and evaluation
- Visual data: image and video representation, recap of traditional features, state-of-the-art neural architectures for feature extraction
- Object detection and recognition, action recognition.
- Multimodal learning: audio-visual data representation, multimedia retrieval.
- Generative Adversarial Networks: Image-image translation, conditional generation
UE Natural Language Processing & Information Retrieval
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The automatic processing of languages, whether written or spoken, has always been an essential part of artificial intelligence. This domain has encouraged the emergence of new uses thanks to the arrival in the industrial field of many technologies from research (spell-checkers, speech synthesis, speech recognition, machine translation, …). In this course, we present the most recent advances and challenges for research. We will discuss discourse analysis whether written or spoken, text clarification, automatic speech transcription and automatic translation, in particular recent advances with neural models.
Information access and retrieval is now ubiquitous in everyday life through search engines, recommendation systems, or technological and commercial surveillance, in many application domains either general or specific like health for instance. In this course, we will cover Information retrieval basics, information retrieval evaluation, models for information retrieval, medical information retrieval, and deep learning for multimedia indexing and retrieval
UE Information Security
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This lecture deals with Information Systems Security and provides several facets, ranging from modeling to deployment in real applications. Information Systems Security refers to the processes and methodologies involved to keep information confidential, available, and assure its integrity. The lecture is divided in two major parts and assisted with several practical labs, allowing the students to model and configure security policies and also to be aware about several kinds of attacks and breaches.
Course content
Part 1: Access Control, or how to prevent unauthorized people from entering or accessing a system?
This part deals with:
- Cryptology for authentication and trust;
- security needs : confidentiality, availability, integrity, non-repudiation (CAI/DICP);
- cryptology primitives : private and public key ; trusted infrastructure (PKI and ledgers).
- zero-knowledge protocols; secret sharing and multiparty computation / or Practical work with Open SSL
- Access control mechanisms (MAC, DAC, RBAC, ABAC) and their implementations
- The detection and remediation of security breaches such as intrusions and insider attacks
- The deployment of control filters in applications and proxies.
The presented approach is built on the model-driven security paradigm (MDS). It refers to the process of modeling security requirements at a high level of abstraction, and generating technical security implementations. Security models are transformed into enforceable security rules including the run-time security management (e.g. entitlements/authorisations). Three labs are planned:
- B4MSecure: we will apply a formal language with animation and model-checking facilities to identify security breaches in Access Control policies.
- Snort: in this practical session you will set a local environment to simulate two machines, the target machine and the attacker. You will learn how to create firewall rules, monitor your network and how to react when an attack is detected.
- Metasploit: you will discover technology intelligence for vulnerabilities through a practical session where you will reproduce an exploit to hack and take control over a web-based server.
Part 2: Overview of modern attacks on systems, protocols, and networks and countermeasures
This part is devoted to modern attacks carried out on the Internet scale, in particular attacks on the DNS system (Domain Name System), such as cache or zone poisoning attacks, reflection and amplification of DDoS attacks (Distributed Denial of Service), IP spoofing - the root cause of DDoS attacks, botnets (e.g., Mirai), domain generation algorithms used for command-and-control communications, modern malware (e.g., Emotet trojan, Avalanche), spam, phishing, and business email compromise (BEC) scams.
The module will discuss preventative measures and security protocols to fight modern attacks, such as DDoS protection services, IP source address validation (SAV) known as BCP 38, Sender Policy Framework, and DMARC protocols as the first line of defense against email spoofing and BEC fraud, and DNSSEC to prevent DNS manipulation attacks. It will also discuss large-scale vulnerability measurements (a case study of the zone poisoning attack) and the challenges of deploying current security technologies by the system and network operators.
This part will be concluded with a practical team assignment in which students will be divided into groups and will have to configure a secure system in a real-world environment. The goal is to secure their system against the various types of discussed attacks and exploit other groups' systems.
UE Mathematical Foundations of Machine Learning
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Machine Learning is one of the key areas of Artificial Intelligence and it concerns the study and the development of quantitative models that enables a computer to perform tasks without being explicitly programmed to do them. Learning in this context is hence to recognize complex forms and to make intelligent decisions. Given all existing entries, the difficulty of this task lies in the fact that all possible decisions is usually very complex to enumerate. To get around that, machine learning algorithms are designed in order to gain knowledge on the problem to be addressed based on a limited set of observed data extracted from this problem. To illustrate this principle, consider the supervised learning task, where the prediction function, which infers a predicted output for a given input, is learned over a finite set of labeled training examples, where each instance of this set is a pair constituted of a vector characterizing an observation in a given vector space, and an associated desired response for that instance (also called desired output). After the training step, the function returned by the algorithm is sought to give predictions on new examples, which have not been used in the learning process, with the lowest probability of error. The underlying assumption in this case is that the examples are, in general, representative of the prediction problem on which the function will be applied. We expect that the learning algorithm produces a function that will have a good generalization performance and not the one that is able to perfectly reproduce the outputs associated to the training examples. Guarantees of learnability of this process were studied in the theory of machine learning largely initiated by Vladimir Vapnik. These guarantees are dependent on the size of the training set and the complexity of the class of functions where the algorithm searches for the prediction function. Emerging technologies, particularly those related to the development of Internet, reshaped the domain of machine learning with new learning frameworks that have been studied to better tackle the related problems. One of these frameworks concerns the problem of learning with partially labeled data, or semi-supervised learning, which development is motivated by the effort that has to be made to construct labeled training sets for some problems, while large amount of unlabeled data can be gathered easily for these problems. The inherent assumption, in this case, is that unlabeled data contain relevant information about the task that has to be solved, and that it is a natural idea to try to extract this information so as to provide the learning algorithm more evidence. From these facts were born a number of works that intended to use a small amount of labeled data simultaneously with a large amount of unlabeled data to learn a prediction function.
The intent of this course is to propose a broad introduction to the field of Machine Learning, including discussions of each of the major frameworks, supervised, unsupervised, semi-supervised and reinforcement learning.
UE Statistical learning: from parametric to nonparametric models
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course is related to mathematical and statistical methods which are very used in supervised learning.
It contains two parts.
In the first part, we will focus on parametric modeling. Starting with the classical linear regression, we will describe several families of estimators that work when considering high-dimensional data, where the classical least square estimator does not work. Model selection and model assessment will particularly be described.
In the second part, we shall focus on nonparametric methods. We will present several tools and ingredients to predict the future value of a variable. We shall focus on methods for non parametric regression from independent to correlated training dataset. We shall also study some methods to avoid the overfitting in supervised learning.
This course will be followed by practical sessions with the R software.
UE Refresh courses
Level
Baccalaureate +5
ECTS
0 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Refresh courses
UE Human Computer Interaction
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées), Grenoble INP - Ensimag (Informatique, mathématiques appliquées et télécommunications), UGA
Semester
Automne
UE Next Generation Software Development
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées), Grenoble INP - Ensimag (Informatique, mathématiques appliquées et télécommunications), UGA
Semester
Automne
UE Safety Critical Systems: from design to verification
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées), Grenoble INP - Ensimag (Informatique, mathématiques appliquées et télécommunications), UGA
Semester
Automne
UE Research project
Level
Baccalaureate +5
ECTS
30 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
Admission
Access conditions
The first year of master's degree is accessible on file (and / or interview) to candidates with a national diploma conferring the degree of license in a field compatible with that of the master or via a validation of studies or acquired according to the conditions determined by the university or training. The second year master's is accessible to candidates according to their transcripts (and/or interview) :
- Having validated the first year of a compatible course
- Or by validating studies or acquired experience according to the conditions determined by the university or the training.
Public continuing education : You are in charge of continuing education :
- if you resume your studies after 2 years of interruption of studies
- or if you followed a formation under the regime formation continues one of the 2 preceding years
- or if you are an employee, job seeker, self-employed
If you do not have the diploma required to integrate the training, you can undertake a validation of personal and professional achievements (VAPP)
Candidature / Application
Do you want to apply and register? Note that the procedure differs depending on the degree considered, the degree obtained, or the place of residence for foreign students.
Prerequisites
Language requirements :
-
Students are required to provide evidence of Competence in English.
English scores required for the MSIAM, programs: TOEFL IBT 78, CBT 210, Paper 547 / TOEIC 700 / Cambridge FCE / IELTS 6.0 min.
This is equivalent to CEFR level B2.If you have successfully completed a degree (or equivalent) course at a University in one of the following countries then you meet the English requirement automatically: Australia, Canada, Guyana, Ireland, New Zealand, South Africa, United Kingdom, United States of America, West Indies.