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
French, English
Dual language
Partially in english
Presentation
Co-accredited training between Grenoble University Alpes and Grenoble Polytechnic Institute. It offers the following courses :
- Computer engineering : standard and block-release format
- Master of science in informatics at Grenoble (MoSIG) : in English, open to international students
- Operations research, combinatorics and optimization (ORCO) : core with Mathematics and applications program
- Cybersecurity (CS) : in English, open to international students, core with Mathematics and applications program
- Supplementary computing skills : intended for students having completed a first year master's from a scientific discipline other than computing, dual competences
- Corporate computer network : alternatively accessible (apprenticeship) or in-service training: this course is offered by Grenoble INP
- Communications engineering and data science
This training is part of the regional dynamic of research through the ARCs (Academic research communities) in the Rhône-Alpes region : master's students obtain funding to pursue their thesis studies. Only the Computer engineering course is also offered in the block-release format. The MoSIG (first and second year), CS, and ORCO courses are co-accredited with Grenoble Institute of Technology. Students are enrolled in one or the other of the institutions according to their origin. These courses are also offered to students of the National Higher School for Computer Science and Applied Mathematics in the second or third year to validate their engineering school. The CS and ORCO courses are also offered in Mathematics and applications programs. Indeed, these courses are located at the interface Mathematics and informatics and the students can come from the first year master's of these two programs. The ORCO contains a course at the Industrial Engineering School of the Grenoble Institute of Technology. The first year master's Cryptography course is core to the Mathematics and applications and Computer science programs. A number of second-year teaching units are offered on half-days to facilitate pooling.
- Site of the master's degree: https://master-informatique.univ-grenoble-alpes.fr
- Site of the Cybersecurity course: http://cybersecurity.imag.fr/
The goal of the program is to provide high-level training in computer science for the fields of software and hardware engineering and computer science research. The training covers a broad spectrum ranging from software and hardware engineering to theoretical computer science, encompassing several domains, to the interface of mathematics and computer science such as computer security or optimization.
The training relies on a rich fabric (industry/experts/laboratories of the site and researchers) and responds to a strong and important demand of the socio-economic world. The main sectors of activity are computer service companies, software publishers, computer manufacturers, business R&D centres, corporate IT departments, and public or private research laboratories.
Identifier ROME
IT studies and development
Skills
Common skills are the acquisition of a general knowledge base and a solid foundation in computer science: programming languages, operating systems, databases, networks, software engineering, interactive software, object-oriented design / programming, complexity and algorithmic. These basic courses are offered in French and English in the first year of the Master. They represent 30 ECTS plus a one-month computer project and a 39-day research initiation project (immersed in a research team). A discovery of the socio-economic world in computer science is offered to all students through specific modules of introduction to the company, the business forum (presentation of about forty companies, interviews, round tables) and seminars thematic given by industrialists. All students also have access to language courses (English or French as a foreign language depending on their level).
International education
- Double degrees, joint degrees, Erasmus Mundus
- Internationally-oriented programmes
International dimension
In order to welcome international audiences, two courses are entirely taught in English (MoSIG and Cybersecurity). In addition, these courses welcome students to Erasmus Mundus master's courses (AREAS + and India 4 EU). The move to international recruitment at the 1st year's level is therefore aimed at students who have obtained their degree in a European university.
Organisation
Abroad intership
In France or abroad
Internship period
Second semester
Program
Select a program
Master in Computer science standard 1st year
To view the presentation of the Computer science standard 1st year program in French click on the following link : Parcours Informatique classique 1re année
Master of Science in Informatics at Grenoble (MoSIG)
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.
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
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
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
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
Computer engineering standard 2nd year
To view the presentation of the computer engineering standard 2nd year program in French click on the following link : Parcours Génie informatique classique 2e année
Computer engineering block-release 2nd year
To view the presentation of the computer engineering block-release 2nd year program in French click on the following link : Parcours Génie informatique alternance 2e année
Operations Research, Combinatorics and Optimisation (ORCO) 2nd year
Semester 9 corresponds to the specialization training, semester 10 consists of a practicum in a company or laboratory of 5 to 7 months, which represents 30 European credit transfer and accumulation system credits.
The scientific objectives are to train students in the foundations and methods of operational research (mathematical programming, graph theory, complexity, stochastic programming, heuristics, approximation algorithms etc) and to prepare students to use and develop these methods to solve complex industrial applications (supply chain, scheduling, transport, revenue management etc) and implement the corresponding software solutions.
Students departing from this course intend to, depending on their preferences :
- Orient themselves towards the research professions (academic or industrial thesis)
- Enter, as a specialist engineer, major research and development services in optimization (SNCF, IBM, Air France, Amadeus etc) or enter consulting firms in optimization (Eurodécision, Artelys etc)
They will also be able to enter less specialized companies by highlighting their ability to methodologically analyse operational problems and thus displaying themselves as potential key elements in the improvement of the company's performance (by linking up with specialized firms or developing in-house methods). In the longer term, students who are oriented towards the industrial world should be able, with their experience in improving company performance and good "business" knowledge, to naturally access decision-making positions at high levels of responsibility.
The course is labelled "Core AI" by MIAI.
UE Advanced models and methods in operations research
6 creditsUE Combinatorial optimization and graph theory
6 creditsUE Optimization under uncertainty
6 creditsUE Constraint Programming, applications in scheduling
3 creditsUE Graphs and discrete structures
3 creditsUE Advanced heuristic and approximation algorithms
3 creditsUE Advanced mathematical programming methods
3 creditsUE Academic and industrial challenges
3 creditsUE Transport Logistics and Operations Research
6 creditsUE SAT/SMT solving
3 creditsUE Advanced parallel system
6 creditsUE Multi-agent systems
3 creditsUE Fundamentals of Data Processing and Distributed Knowledge
6 creditsUE Scientific Methodology, Regulatory and ethical data usage
6 creditsUE Large scale Data Management and Distributed Systems
6 creditsUE Cryptographic engineering, protocols and security models, data privacy, coding and applications
6 creditsUE From Basic Machine Learning models to Advanced Kernel Learning
6 creditsUE Mathematical Foundations of Machine Learning
3 creditsUE Learning, Probabilities and Causality
6 creditsUE Statistical learning: from parametric to nonparametric models
6 creditsUE Efficient methods in optimization
3 credits
UE Practicum
30 credits
UE GS_MSTIC_Research ethics
6 creditsUE Advanced models and methods in operations research
6 creditsUE Combinatorial optimization and graph theory
6 creditsUE Optimization under uncertainty
6 creditsUE Constraint Programming, applications in scheduling
3 creditsUE Graphs and discrete structures
3 creditsUE Advanced heuristic and approximation algorithms
3 creditsUE Advanced mathematical programming methods
3 creditsUE Academic and industrial challenges
3 creditsUE Transport Logistics and Operations Research
6 credits
UE Practicum
30 credits
Cybersecurity 2nd year
The global economic impact of losses due to cybercrime amounts to hundreds of billions of euros per year ($445 billion according to the McAfee/CSIS study of 2014) with a strong increase in attacks, especially for identity theft and digital data theft, as well as malicious attacks. Protection against these vulnerabilities includes :
- Robustness to cyber attacks of sensitive infrastructure (e.g. stuxnet)
- Robustness of security components against software vulnerabilities and data leaks (e.g. heartbleed)
- Protection of privacy and security of cloud infrastructures
- Robust design and evaluation of safety components
- Fault detection in protocols or software and hardware components
The topics covered in the training cover the complementary areas of Cybersecurity, including cryptology, forensics, and privacy, in particular for embedded systems and distributed architectures.
Train cybersecurity experts (including data privacy aspects) with a bac + 5 degree, able to evolve immediately in an industrial environment and who can also pursue a thesis.
The course is labelled "Core AI" by MIAI.
UE Software security, secure programming and computer forensics
3 creditsUE Security architecture
6 creditsUE Cryptographic engineering, protocols and security models, data privacy, coding and applications
6 creditsUE Threat and risk analysis, IT security audit and norms
3 creditsUE Physical Security : Embedded, Smart Card, Quantum & Biometrics
6 creditsChoice: 1 among 2
UE Advanced security
6 creditsUE Advanced cryptology
6 credits
UE Software security, secure programming and computer forensics
3 creditsUE GS_MSTIC_Research ethics
6 creditsUE Cryptographic engineering, protocols and security models, data privacy, coding and applications
6 creditsUE Threat and risk analysis, IT security audit and norms
3 creditsUE Physical Security : Embedded, Smart Card, Quantum & Biometrics
6 creditsChoice: 1 among 2
UE Advanced security
6 creditsUE Advanced cryptology
6 credits
Supplementary computing skills (CCI) 2nd year
To view the presentation of the Supplementary computing skills (CCI) 2nd year program in French click on the following link : Parcours Compétences Complémentaires en Informatique (CCI) 2e année
Cybersecurity and legal informatics 2nd year
To view the presentation of the Cybersecurity and legal informatics 2nd year program in French click on the following link : Parcours Cybersécurité et informatique légale 2e année
Corporate computer networks
To view the presentation of the Corporate computer networks program in French click on the following link : Parcours Cybersécurité et informatique légale 2e année
Communications engineering and data science (CODAS)
New international training course co-habilitated with ENSIMAG, open since the beginning of the academic year 2021.
More information on the ENSIMAG website.
UE Elective course
4 creditsUE Algorithms Problem Solving
3 creditsUE Technical writing and speaking
3 creditsUE Introduction to Cybersecurity
10 creditsUE Principle of Internet
8 creditsUE French as a foreign language
3 credits
UE Project
6 creditsUE Statistical analysis and document mining
6 creditsUE Research methodology
3 creditsUE Data base foundations
3 creditsUE Digital Transmission from Técnico Lisboa
5 creditsUE Foundations of Data Science
3 creditsUE Database foundations 2
3 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
UE Advanced models and methods in operations research
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course presents advanced methods and technics for Operations Research.
Reminder :
Linear Programming, Dynamic Programming, MIP modelling and BB
Complexity (P, NP, Co-NP)
Advanced MIP :
formulation, cuts, bounds
applications
lagragian relaxation
column generation
Benders decomposition
Solvers
Constraint Programming
Heuristics
local search
approximation algorithms
UE Combinatorial optimization and graph theory
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The aim of this course is to provide a broad knowledge of fundamental problems in Combinatorial Optimization to show their algorithmic solutions and to derive min-max results on them. In order to achieve this goal a new object called a polyhedron is introduced. This polyhedral approach helps to shed new light on some classic results of Combinatorial Optimization.
Syllabus: Study of polyhedra associated to problems of Combinatorial Optimization ; Theory of blocking polyhedra ; Connectivity: shortest paths, spanning trees and spanning arborescences of minimum weight ; Flows: Edmonds-Karp Algorithm, Goldberg-Tarjan Algorithm, minimum cost flows ; Matchings: Hungarian method, Edmonds' Algorithm, Chinese postman problem; Matroids: greedy algorithm, intersection of two matroids ; Graph coloring ; Applications coming from various areas of Operations Research.
UE Optimization under uncertainty
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The objective of this course is to present different techniques to handle uncertainty in decision problems. These techniques will be illustrated on several applications e.g. inventory control, scheduling, energy, machine learning.
Syllabus : Introduction to uncertainty in optimization problems; Reminders (probability, dynamic programming, ...); Markov chains; Markov decision processes; Stochastic programming; Robust optimization
UE Constraint Programming, applications in scheduling
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
UE Graphs and discrete structures
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The aim of this course is to learn how to use the structure of graphs and other discrete objects to obtain general results on them, and in particular efficient algorithms solving important problems.
We will cover the following topics:
- Structural Graph Theory: we will study the structure of important graph classes with nice algorithmic properties (planar graphs, interval graphs, comparability graphs, ...) and show several concrete problems that can be solved thanks to their structural properties.
- Graph Drawing: with the rise of Big Data, representing huge data sets is a fundamental challenge. Efficient ways to represent large graphs will be presented.
- Codes: we will see various codes (dominating, locating, identifying, ...) in graphs and their applications.
- Extremal combinatorics: the typical question in this field is "what global condition do we need to impose in some graph in order to make sure that some nice structure appears locally?" We will introduce a powerful tool called "the probabilistic method", an show how it can be applied to solve problems in this important area of research.
UE Advanced heuristic and approximation algorithms
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
UE Advanced mathematical programming methods
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
UE Academic and industrial challenges
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course offers the possibility for the students to gain some experience by facing open/difficult combinatorial problems.
The goal is to model and solve a combinatorial problem with direct industrial applications. We expect the students to take a variety of approaches (local search, compact/extended linear programming formulations, constraint programming, ...) and establish useful results (lower bounds, cuts, complexity,...).
The experimental results will be compared to the litterature (a known academic open benchmark will be available in this case) or will be validated by the industrial partner.
UE Transport Logistics and Operations Research
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
UE SAT/SMT solving
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
A central ingredient in many methods for symbolic and concolic executions, for finding inductive invariants, and for checking their inductiveness, is _satisfiability modulo theory_ (SMT). SMT is based on Boolean satisfiability testing (SAT), that is, checking whether a propositional formula has a solution. There exist algorithms for solving SAT and many cases of SMT, but the issue here is computational complexity: SAT is a hard problem.
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 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 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)
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 Large scale Data Management and Distributed Systems
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
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 Cryptographic engineering, protocols and security models, data privacy, coding and applications
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The course present the main cryptographic primitives and security protocols, focusing on security parameters and properties.
Pedagogical goals:
- generic cryptographic primitives: one-way, trap-door and hash functions; random generators; symmetric and assymertic cipher; interactive protocols;
- security properties : complexity and reduction proofs; undistinguidhability; non-malleability; soundness, completeness and zero-knowledge; confidentiality; authentication; privacy; non-repudiation
- use, deployment and integration of protocols in standard crypro lib (eg open-ssl)
- security proofs : fundations and verufucation based on tools (eg avispa)
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 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 Learning, Probabilities and Causality
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Causality is at the core of our vision of the world and of the way we reason. It has long been recognized as an important concept and was already mentioned in the ancient Hindu scriptures: “Cause is the effect concealed, effect is the cause revealed”. Even Democritus famously proclaimed that he would rather discover a causal relation than be the king of presumably the wealthiest empire of his time. Nowadays, causality is seen as an ideal way to explain observed phenomena and to provide tools to reason on possible outcomes of interventions and what-if experiments, which are central to counterfactual reasoning, as ‘‘what if this patient had been given this particular treatment?’’
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 Efficient methods in optimization
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The subject of this half-semester course are more advanced methods in convex optimization. It consists of 6 lectures, 2 x 1,5 hours each, and can be seen as continuation of the course “Non-smooth methods in convex optimization”.
This course deals with:
Evaluation : A two-hours written exam (E1) in December. For those who do not pass there will be another two-hours exam (E2) in session 2 in spring.
UE Practicum
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 Advanced models and methods in operations research
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course presents advanced methods and technics for Operations Research.
Reminder :
Linear Programming, Dynamic Programming, MIP modelling and BB
Complexity (P, NP, Co-NP)
Advanced MIP :
formulation, cuts, bounds
applications
lagragian relaxation
column generation
Benders decomposition
Solvers
Constraint Programming
Heuristics
local search
approximation algorithms
UE Combinatorial optimization and graph theory
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The aim of this course is to provide a broad knowledge of fundamental problems in Combinatorial Optimization to show their algorithmic solutions and to derive min-max results on them. In order to achieve this goal a new object called a polyhedron is introduced. This polyhedral approach helps to shed new light on some classic results of Combinatorial Optimization.
Syllabus: Study of polyhedra associated to problems of Combinatorial Optimization ; Theory of blocking polyhedra ; Connectivity: shortest paths, spanning trees and spanning arborescences of minimum weight ; Flows: Edmonds-Karp Algorithm, Goldberg-Tarjan Algorithm, minimum cost flows ; Matchings: Hungarian method, Edmonds' Algorithm, Chinese postman problem; Matroids: greedy algorithm, intersection of two matroids ; Graph coloring ; Applications coming from various areas of Operations Research.
UE Optimization under uncertainty
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The objective of this course is to present different techniques to handle uncertainty in decision problems. These techniques will be illustrated on several applications e.g. inventory control, scheduling, energy, machine learning.
Syllabus : Introduction to uncertainty in optimization problems; Reminders (probability, dynamic programming, ...); Markov chains; Markov decision processes; Stochastic programming; Robust optimization
UE Constraint Programming, applications in scheduling
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
UE Graphs and discrete structures
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The aim of this course is to learn how to use the structure of graphs and other discrete objects to obtain general results on them, and in particular efficient algorithms solving important problems.
We will cover the following topics:
- Structural Graph Theory: we will study the structure of important graph classes with nice algorithmic properties (planar graphs, interval graphs, comparability graphs, ...) and show several concrete problems that can be solved thanks to their structural properties.
- Graph Drawing: with the rise of Big Data, representing huge data sets is a fundamental challenge. Efficient ways to represent large graphs will be presented.
- Codes: we will see various codes (dominating, locating, identifying, ...) in graphs and their applications.
- Extremal combinatorics: the typical question in this field is "what global condition do we need to impose in some graph in order to make sure that some nice structure appears locally?" We will introduce a powerful tool called "the probabilistic method", an show how it can be applied to solve problems in this important area of research.
UE Advanced heuristic and approximation algorithms
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
UE Advanced mathematical programming methods
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
UE Academic and industrial challenges
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
This course offers the possibility for the students to gain some experience by facing open/difficult combinatorial problems.
The goal is to model and solve a combinatorial problem with direct industrial applications. We expect the students to take a variety of approaches (local search, compact/extended linear programming formulations, constraint programming, ...) and establish useful results (lower bounds, cuts, complexity,...).
The experimental results will be compared to the litterature (a known academic open benchmark will be available in this case) or will be validated by the industrial partner.
UE Transport Logistics and Operations Research
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
UE Practicum
Level
Baccalaureate +5
ECTS
30 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
UE Software security, secure programming and computer forensics
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The goal of this course is to enable students to acquire the following concepts:
- know how to identify the strengths/weaknesses of a programming language from the point of view of security;
- know the main causes and consequences of the usual software vulnerabilities
- know the protection mechanisms provided by the compilers, by the OS - understand the main techniques of code analysis for security (their interests, their limits)
UE Security architecture
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
- Introduction
- Motivation/Diffie-Hellman ; MitM ; Kerberos ;
- Electronic Signatures ; DSS ; RSA-PSS ;
- References : RFC/PKCS/FIPS
- Key Management.
- PKI elements, functions ; Certificates, ASN.1, X509, CRL ;
- Trust models
- PKIX : Administration ; migration ; OCSP, SCVP, Novomodo;
- Cross-certification ; Bridge ;
- Embedded Model : Certificates Browsers/OS; pinning, EV certs, notaries, bulletin board ;
- PGP + GnuPG ; Spooky/Sudsy ; IBE; CBE ;
- Authentification by PKI
- fips-196 and variants
- Key transport
- Authenticated Diffie-Hellman (SIGMA)
- TLS (handshake)
- Cybersecurity of industrial IT
- Electronic Signature and industrial PKI
- Certification and Security Policies
- PKI deployement in industry
- Attacks against certification authorities and similar services
- Evaluation Criteria and regulations (common criteria ; RGS ; e-IDAS)
- Application Security
- Transactions: EMV ; SET ; 3D-Secure ; bitcoin
- Messaging: E-mail, S/MIME ; OTR
- Web: https
- Threats
- Introduction / Concepts / Threat Landscape
- Network Architecture - Theats / Protection Layer 1 to 7
- Communication Security
- VPN: TLS, IPsec
- Firewall / proxying
- Wireless Security
- IPv6
- Routing: DNS / DNSSec ; TOR
- Canal: TLS ; IPsec
- OS Security
- hardening
- SeLinux, AppArmor, GRSec
- HIDS
UE Cryptographic engineering, protocols and security models, data privacy, coding and applications
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The course present the main cryptographic primitives and security protocols, focusing on security parameters and properties.
Pedagogical goals:
- generic cryptographic primitives: one-way, trap-door and hash functions; random generators; symmetric and assymertic cipher; interactive protocols;
- security properties : complexity and reduction proofs; undistinguidhability; non-malleability; soundness, completeness and zero-knowledge; confidentiality; authentication; privacy; non-repudiation
- use, deployment and integration of protocols in standard crypro lib (eg open-ssl)
- security proofs : fundations and verufucation based on tools (eg avispa)
UE Threat and risk analysis, IT security audit and norms
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Concepts: Threats, Risks, Vulnerabilities. Introduction to Security assessment and audit methods and tools (ISO 27005, EBIOS, OSTMM)
UE Physical Security : Embedded, Smart Card, Quantum & Biometrics
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Embedded systems: Principles of embedded systems design; smart cards, structure, and physical attacks; Design for Test and attacks on test structures; attacks through auxiliary channels; attacks by mistakes; countermeasures to the cited attacks.
Biometrics: objectives, fundamental principle, verification/authentication, various biometric modalities, examination of the most used modalities (fingerprint, facial recognition, iris) on the sensor side as well as on the algorithm side, the biometrics market, biometric performance evaluation (FAR & FRR), standardization, security of biometric systems (cryptography/vitality detection), introduction to encrypted biometry with cryptography (the grail of biometrics), protection of privacy, myths and realities.
Quantum: the postulates of quantum mechanics; how to use quantum information to make calculations, circuits and quantum algorithms; description of quantum information, density matrices, POVM measurements, fidelity, entropy; quantum error corrector codes; a bit of quantum communication complexity; use quantum information to make cryptography theoretically "secure", key exchange protocol BB84
UE Advanced security
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The advanced security module proposes to investigate deeper certain topics in security which include privacy models (k-anonymity, differential privacy and privacy by design), secure data structures (hash chain, Merkle's tree), (in)secure communication protocols (WEP and WPA protocols) and anti-viruses. The module focuses on several case study on privacy enhancing technologies (PETs), blockchain (along with an overview of cryptocurrencies), wireless attacks with scapy, malware detection using YARA and ClamAV.
UE Advanced cryptology
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The aim of this course is to present some advanced topics in cryptography. The exact content may vary from one year to another; as an indication past topics have included:
- Linear secret sharing schemes (code-based schemes, access structures...)
- Provable constructions in symmetric cryptography (building block cipher from ideal permutations)
- Symmetric cryptanalysis (statistical and algebraic)
- Algorithms and constructions in code-based cryptography (information-set decoding, LPN)
- Zero-knowledge proofs
- Advanced signatures (group signatures...)
- Advanced constructions (oblivious transfer, group encryption...)
- Post-quantum cryptography
- Elliptic-curve and isogeny-based cryptography
UE Research practicum (in company or laboratory)
Level
Baccalaureate +5
ECTS
30 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
(en entreprise ou laboratoire)
UE Software security, secure programming and computer forensics
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The goal of this course is to enable students to acquire the following concepts:
- know how to identify the strengths/weaknesses of a programming language from the point of view of security;
- know the main causes and consequences of the usual software vulnerabilities
- know the protection mechanisms provided by the compilers, by the OS - understand the main techniques of code analysis for security (their interests, their limits)
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 Cryptographic engineering, protocols and security models, data privacy, coding and applications
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The course present the main cryptographic primitives and security protocols, focusing on security parameters and properties.
Pedagogical goals:
- generic cryptographic primitives: one-way, trap-door and hash functions; random generators; symmetric and assymertic cipher; interactive protocols;
- security properties : complexity and reduction proofs; undistinguidhability; non-malleability; soundness, completeness and zero-knowledge; confidentiality; authentication; privacy; non-repudiation
- use, deployment and integration of protocols in standard crypro lib (eg open-ssl)
- security proofs : fundations and verufucation based on tools (eg avispa)
UE Threat and risk analysis, IT security audit and norms
Level
Baccalaureate +5
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Concepts: Threats, Risks, Vulnerabilities. Introduction to Security assessment and audit methods and tools (ISO 27005, EBIOS, OSTMM)
UE Physical Security : Embedded, Smart Card, Quantum & Biometrics
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
Embedded systems: Principles of embedded systems design; smart cards, structure, and physical attacks; Design for Test and attacks on test structures; attacks through auxiliary channels; attacks by mistakes; countermeasures to the cited attacks.
Biometrics: objectives, fundamental principle, verification/authentication, various biometric modalities, examination of the most used modalities (fingerprint, facial recognition, iris) on the sensor side as well as on the algorithm side, the biometrics market, biometric performance evaluation (FAR & FRR), standardization, security of biometric systems (cryptography/vitality detection), introduction to encrypted biometry with cryptography (the grail of biometrics), protection of privacy, myths and realities.
Quantum: the postulates of quantum mechanics; how to use quantum information to make calculations, circuits and quantum algorithms; description of quantum information, density matrices, POVM measurements, fidelity, entropy; quantum error corrector codes; a bit of quantum communication complexity; use quantum information to make cryptography theoretically "secure", key exchange protocol BB84
UE Advanced security
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The advanced security module proposes to investigate deeper certain topics in security which include privacy models (k-anonymity, differential privacy and privacy by design), secure data structures (hash chain, Merkle's tree), (in)secure communication protocols (WEP and WPA protocols) and anti-viruses. The module focuses on several case study on privacy enhancing technologies (PETs), blockchain (along with an overview of cryptocurrencies), wireless attacks with scapy, malware detection using YARA and ClamAV.
UE Advanced cryptology
Level
Baccalaureate +5
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
The aim of this course is to present some advanced topics in cryptography. The exact content may vary from one year to another; as an indication past topics have included:
- Linear secret sharing schemes (code-based schemes, access structures...)
- Provable constructions in symmetric cryptography (building block cipher from ideal permutations)
- Symmetric cryptanalysis (statistical and algebraic)
- Algorithms and constructions in code-based cryptography (information-set decoding, LPN)
- Zero-knowledge proofs
- Advanced signatures (group signatures...)
- Advanced constructions (oblivious transfer, group encryption...)
- Post-quantum cryptography
- Elliptic-curve and isogeny-based cryptography
UE Research practicum (in company or laboratory)
Level
Baccalaureate +5
ECTS
30 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
(en entreprise ou laboratoire)
UE Elective course
Level
Baccalaureate +4
ECTS
4 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Automne
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 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 Cybersecurity
Level
Baccalaureate +4
ECTS
10 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
UE Principle of Internet
Level
Baccalaureate +4
ECTS
8 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
UE French as a foreign language
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
UE Project
Level
Baccalaureate +4
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
UE Statistical analysis and document mining
Level
Baccalaureate +4
ECTS
6 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
Statistical analysis and document mining
Level
Baccalaureate +4
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
Statistical analysis and document mining Complementary
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Semester
Printemps
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 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 Digital Transmission from Técnico Lisboa
Level
Baccalaureate +4
ECTS
5 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
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 Database foundations 2
Level
Baccalaureate +4
ECTS
3 credits
Component
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Admission
Access conditions
The first year master's is open to those who have obtained a national degree conferring the title of bachelor in a field compatible with that of the master's or a validation of studies or acquisition.
Admission to the second year master's is selective. It is open to candidates who completed a first year master's in the field. Summary of the proposed courses for the computer science program :
first year master's, depending on the options of the students
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
You wish to apply for master in Computer science
- Master MoSIG 1st year
- Master MoSIG 2nd year
- Cybersecurity 2nd year
- Operations Research, Combinatorics and Optimisation (ORCO)
- Computer science standard 1st year
- Computer engineering standard 2nd year
- Computer engineering block-release 2nd year
And after
Additional information
The Computer science program is based on the laboratories in computer science and mathematics in Grenoble, as well as on the INRIA Rhones-Alpes, the LabEx Persyval-lab, and the Carnot Institute for Software and Intelligent Systems.
There is a very strong interaction between the master's program and the research teams : platforms for research and teaching allow for teaching projects to be carried out on advanced forms of computer science. The researchers benefit from the materials available in the dedicated rooms of the Teaching and Research Units and the research teams occasionally provide material for certain courses. The Grenoble Computing Laboratory rapid prototyping workshop (FabMSTIC) is also available to students and teachers for projects.