Niveau d'étude visé
Bac +5
ECTS
120 crédits
Durée
2 ans
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées), Grenoble INP - Ensimag (Informatique, mathématiques appliquées et télécommunications), UGA
Langue(s) d'enseignement
Anglais
Présentation
La formation couvre un large spectre au niveau du master 1re année et permet de former des diplômés avec une culture générale et un socle de bases solide en informatique (en terme de langages de programmation, bases de données, réseaux, génie logiciel, conception/programmation par objet, complexité et logiciels interactifs ) et permet par son master 2e année d’acquérir des compétences organisationnelles liées au travail du métier de chercheur et de devenir spécialiste d’un domaine de l’informatique en lien avec les nombreuses options offertes (systèmes d’information et ingénierie avancée des logiciels, informatique centrée humain - conception de systèmes embarqués et cyberphysiques hautement fiables, intelligence artificielle et Web - graphiques, vision et robotiques, systèmes interactifs et ubiquitaires et systèmes embarqués, parallèles et distribués).
L’objectif du parcours est de réaliser une formation de haut niveau en informatique pour des métiers de l’enseignement, de la recherche, de l’ingénierie et du développement et de donner les bases nécessaires pour occuper un emploi en recherche et développement aussi bien que pour entreprendre une thèse en Informatique dans les domaines couverts par les laboratoires académiques et industriels.
Le premier semestre (Master1 - S7) est composé de cours fondamentaux.
Le second semestre (Master1 - S8) combine des cours fondamentaux avec des cours de spécialisation optionnels.
Pour le semestre S9 de 30 ECTS, les étudiants doivent choisir des cours d'une valeur de 24 ECTS dans le thème qu'ils ont choisi (en fonction de leur formation initiale) et 6 ECTS de cours d'un autre thème, si les horaires sont cohérents et si des restrictions d'inscription s'appliquent.
Le dernier semestre (Master2 - S10) est consacré à un projet de recherche (ou professionnel) de fin d'études.
Le parcours est labellisé "Core AI" par MIAI.
Compétences
Les UEs du semestre 8 sont pour la plupart des UE introductives aux UEs des différentes spécialités de 2e année. En ce sens, elles constituent des formations pour la recherche. La 2e année de master permet d’acquérir des compétences organisationnelles et liées au travail du chercheur :
- Formuler un problème de recherche et proposer une solution
- Situer un problème de recherche dans la littérature scientifique
- Évaluer et valider une solution à un problème de recherche
- Rédiger une publication scientifique
- Communiquer les résultats d'un travail de recherche
- Développer et utiliser les outils mathématiques et informatiques
- Maîtriser les logiciels et matériels informatiques
- Communiquer en anglais et en français
- Devenir spécialiste d’un domaine de l’informatique en lien avec la recherche en informatique sur le site soit : systèmes d’information et ingénierie avancée des logiciels - informatique centrée humain - fondements de l’informatique : conception et validation - intelligence artificielle et Web - graphiques, vision et robotique - systèmes interactifs et ubiquitaires - systèmes embarqués, parallèles et distribués
Formation internationale
Formation tournée vers l’international
Dimension internationale
Dans le cadre de cette formation, vous avez la possibilité de partir étudier durant un semestre ou une année dans un établissement partenaire de l’UGA à l’international.
Le correspondant relations internationales de votre composante pourra vous renseigner.
Plus d’informations sur : https://international.univ-grenoble-alpes.fr/partir-a-l-international/partir-etudier-a-l-etranger-dans-le-cadre-d-un-programme-d-echanges/
Possibilité de faire un double diplôme avec l'Université de Swansea.
Organisation
Stage à l'étranger
En France ou à l'étranger
Programme
Spécificités du programme
Programme en cours de construction - en attente de vote CFVU
Sélectionnez un programme
Master MoSIG 1re année
UE Programming language and compiler design
6 créditsUE Software engineering
3 créditsUE Principles of operating systems
6 créditsUE Algorithmic Problem Solving
3 créditsUE Mathematics for computer science
3 créditsUE Introduction to Visual Computing
3 créditsUE Introduction to Artificial Intelligence
3 créditsAu choix : 1 à 2 parmi 2
UE Programming project (OS)
3 créditsUE Programming project (Compiler design)
3 crédits
UE Research project (TER)
3 créditsUE Research methodology
3 créditsAu choix : 8 à 14 parmi 14
UE Introduction to Modeling and Verification of Digital Systems
3 créditsUE Operations Research
3 créditsUE Data base foundations
3 créditsUE Introduction to distributed systems
3 créditsUE Human computer interaction
3 créditsUE Computer networks principles
3 créditsUE 3D Graphics
3 créditsUE Introduction to mobile robotics
3 créditsUE Introduction to cryptology
3 créditsUE Parallel Algorithms and Programming
3 créditsUE Fundamental Computer Science
3 créditsUE Foundations of Data Science
3 créditsUE Embodying the shift: digital in the age of low-tech
3 créditsUE Algebraic Algorithms for Cryptology
3 crédits
Master 1re année parcours cybersecurity
UE Programming language and compiler design
6 créditsUE Software engineering
3 créditsUE Principles of operating systems
6 créditsUE Algorithmic Problem Solving
3 créditsUE Mathematics for computer science
3 créditsUE Introduction to Visual Computing
3 créditsUE Technical writing and speaking
3 créditsAu choix : 1 à 2 parmi 2
UE Programming project (OS)
3 créditsUE Programming project (Compiler design)
3 crédits
UE Research project (TER)
3 créditsUE Research methodology
3 créditsUE Introduction to cryptology
3 créditsAu choix : 7 à 13 parmi 13
UE Introduction to Modeling and Verification of Digital Systems
3 créditsUE Operations Research
3 créditsUE Data base foundations
3 créditsUE Introduction to distributed systems
3 créditsUE Human computer interaction
3 créditsUE Intelligent systems: reasoning and recognition
3 créditsUE Computer networks principles
3 créditsUE 3D Graphics
3 créditsUE Introduction to mobile robotics
3 créditsUE Parallel Algorithms and Programming
3 créditsUE Fundamental Computer Science
3 créditsUE Foundations of Data Science
3 créditsUE Embodying the shift: digital in the age of low-tech
3 crédits
Master 1re année parcours cybersécurité et informatique légale (CSI)
UE Programming language and compiler design
6 créditsUE Software engineering
3 créditsUE Principles of operating systems
6 créditsUE Algorithmic Problem Solving
3 créditsUE Mathematics for computer science
3 créditsUE Introduction to Visual Computing
3 créditsUE Technical writing and speaking
3 créditsAu choix : 1 à 2 parmi 2
UE Programming project (OS)
3 créditsUE Programming project (Compiler design)
3 crédits
UE Research project (TER)
3 créditsUE Research methodology
3 créditsUE Introduction to cryptology
3 créditsAu choix : 7 à 13 parmi 13
UE Introduction to Modeling and Verification of Digital Systems
3 créditsUE Operations Research
3 créditsUE Data base foundations
3 créditsUE Introduction to distributed systems
3 créditsUE Human computer interaction
3 créditsUE Intelligent systems: reasoning and recognition
3 créditsUE Computer networks principles
3 créditsUE 3D Graphics
3 créditsUE Introduction to mobile robotics
3 créditsUE Parallel Algorithms and Programming
3 créditsUE Fundamental Computer Science
3 créditsUE Foundations of Data Science
3 créditsUE Embodying the shift: digital in the age of low-tech
3 crédits
Master 1re année parcours ORCO
UE Programming language and compiler design
6 créditsUE Software engineering
3 créditsUE Principles of operating systems
6 créditsUE Algorithmic Problem Solving
3 créditsUE Mathematics for computer science
3 créditsUE Introduction to Visual Computing
3 créditsUE Technical writing and speaking
3 créditsAu choix : 1 à 2 parmi 2
UE Programming project (OS)
3 créditsUE Programming project (Compiler design)
3 crédits
UE Research project (TER)
3 créditsUE Research methodology
3 créditsUE Operations Research
3 créditsAu choix : 7 à 13 parmi 13
UE Introduction to Modeling and Verification of Digital Systems
3 créditsUE Data base foundations
3 créditsUE Introduction to distributed systems
3 créditsUE Human computer interaction
3 créditsUE Intelligent systems: reasoning and recognition
3 créditsUE Computer networks principles
3 créditsUE 3D Graphics
3 créditsUE Introduction to mobile robotics
3 créditsUE Introduction to cryptology
3 créditsUE Parallel Algorithms and Programming
3 créditsUE Fundamental Computer Science
3 créditsUE Foundations of Data Science
3 créditsUE Embodying the shift: digital in the age of low-tech
3 crédits
Master 1re année parcours Génie Informatique
UE Programming language and compiler design
6 créditsUE Software engineering
3 créditsUE Principles of operating systems
6 créditsUE Algorithmic Problem Solving
3 créditsUE Mathematics for computer science
3 créditsUE Introduction to Visual Computing
3 créditsUE Technical writing and speaking
3 créditsAu choix : 1 à 2 parmi 2
UE Programming project (OS)
3 créditsUE Programming project (Compiler design)
3 crédits
UE Research project (TER)
3 créditsUE Research methodology
3 créditsUE Introduction to distributed systems
3 créditsAu choix : 7 à 13 parmi 13
UE Introduction to Modeling and Verification of Digital Systems
3 créditsUE Operations Research
3 créditsUE Data base foundations
3 créditsUE Human computer interaction
3 créditsUE Intelligent systems: reasoning and recognition
3 créditsUE Computer networks principles
3 créditsUE 3D Graphics
3 créditsUE Introduction to mobile robotics
3 créditsUE Introduction to cryptology
3 créditsUE Parallel Algorithms and Programming
3 créditsUE Fundamental Computer Science
3 créditsUE Foundations of Data Science
3 créditsUE Embodying the shift: digital in the age of low-tech
3 crédits
Master MoSIG 1re année parcours Graduate School
UE Programming language and compiler design
6 créditsUE Software engineering
3 créditsUE Principles of operating systems
6 créditsUE Algorithmic Problem Solving
3 créditsUE Mathematics for computer science
3 créditsUE Introduction to Visual Computing
3 créditsUE Introduction to Artificial Intelligence
3 créditsAu choix : 1 parmi 2
UE Programming project (OS)
3 créditsUE Programming project (Compiler design)
3 crédits
UE GS_MSTIC_Démarche Scientifique
6 créditsUE Technical writing and speaking
3 créditsAu choix : 8 parmi 14
UE Introduction to Modeling and Verification of Digital Systems
3 créditsUE Operations Research
3 créditsUE Data base foundations
3 créditsUE Introduction to distributed systems
3 créditsUE Human computer interaction
3 créditsUE Computer networks principles
3 créditsUE 3D Graphics
3 créditsUE Introduction to mobile robotics
3 créditsUE Introduction to cryptology
3 créditsUE Parallel Algorithms and Programming
3 créditsUE Fundamental Computer Science
3 créditsUE Foundations of Data Science
3 créditsUE Embodying the shift: digital in the age of low-tech
3 créditsUE Algebraic Algorithms for Cryptology
3 crédits
Master MoSIG 2e année parcours classique
UE Process Engineering
6 créditsUE Advanced networking
6 créditsUE Advanced parallel system
6 créditsUE Fundamentals of Data Processing and Distributed Knowledge
6 créditsUE Scientific methodology regulatory and ethical data usage
6 créditsUE Robotics
6 créditsUE Computer Graphics
6 créditsUE Multi-agent systems
3 créditsUE Information vizualisation
3 créditsUE Computer vision
6 créditsUE Cloud Computing, from infrastructure to applications
6 créditsUE Large-scale data management and distributed systems
6 créditsUE GPU Computing
6 créditsUE From Basic Machine Learning models to Advanced Kernel Learning
6 créditsUE Advanced Machine Learning: Applications to Vision, Audio and Text
6 créditsUE Natural Language Processing & Information Retrieval
6 créditsUE Information Security
6 créditsUE Mathematical Foundations of Machine Learning
6 créditsUE Statistical learning: from parametric to nonparametric models
6 créditsUE Refresh courses
0 créditsUE Human Computer Interaction
6 créditsUE Next Generation Software Development
6 créditsUE Safety Critical Systems: from design to verification
6 crédits
UE Research project
30 crédits
Master MoSIG 2e année parcours Graduate School
UE GS_MSTIC_Ethique de la recherche
6 créditsUE Process Engineering
6 créditsUE Advanced networking
6 créditsUE Advanced parallel system
6 créditsUE Fundamentals of Data Processing and Distributed Knowledge
6 créditsUE Scientific methodology regulatory and ethical data usage
6 créditsUE Robotics
6 créditsUE Computer Graphics
6 créditsUE Multi-agent systems
3 créditsUE Information vizualisation
3 créditsUE Computer vision
6 créditsUE Cloud Computing, from infrastructure to applications
6 créditsUE Large-scale data management and distributed systems
6 créditsUE GPU Computing
6 créditsUE From Basic Machine Learning models to Advanced Kernel Learning
6 créditsUE Advanced Machine Learning: Applications to Vision, Audio and Text
6 créditsUE Natural Language Processing & Information Retrieval
6 créditsUE Information Security
6 créditsUE Mathematical Foundations of Machine Learning
6 créditsUE Statistical learning: from parametric to nonparametric models
6 créditsUE Refresh courses
0 créditsUE Human Computer Interaction
6 créditsUE Next Generation Software Development
6 créditsUE Safety Critical Systems: from design to verification
6 crédits
UE Research project
30 crédits
UE Programming language and compiler design
Niveau d'étude
Bac +4
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This module introduces the main concepts available in programming languages to execute a program on a machine. Moreover, it presents compilers, the programs used to transform human-readable programs into machine-readable programs.
More specifically, this module 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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This course introduces some of the main concepts of software engineering (lifecycle/development process, requirements, specification architecture, global and detailed design, test, project supervision and management).
The first part of this course focuses on the Unified Modeling Language and presents the object and class diagrams, use cases, state-transition and sequence diagrams. The second part focuses on the development phases and presents the development process, how to manage requirements, the notion of software architecture, design patterns, tests, and project management.
UE Principles of operating systems
Niveau d'étude
Bac +4
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This class is an introduction to general operating systems concepts that every programmer and computer scientist must know.
The course presents the main roles of an operating system and the challenges associated with the design of an operating system. The main components of an operating system are studied, including: memory management, task management, management of storage devices.
For each component, we present the main design choices in existing operating systems. We study how these design choices are guided by the characteristics of the underlying hardware and how the components interact with the hardware.
Additionally, a special focus is given to concurrent programming. The challenges and pitfalls of concurrent programming are introduced. Using the POSIX thread interface, we study the main programming concepts and methodologies to write correct and efficient concurrent programs.
Organization:
The class is based on an 11-week semester, with 3 hours of lectures and 3 hours of in-class lab sessions per week.
The labs are based on the C language, the Linux operating system and the POSIX programming standard.
Remark : For the interested students wishing to study the detailed design and implementation of an operating system, an optional (1-month) programming project is available at the end of the semester in a separate class (see GBX7MO08 - Programming project/OS).
UE Algorithmic Problem Solving
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This course has for objectives to develop proficiencies in algorithms analysis, algorithm writing, and problem solving in general using algorithms.
This course uses Problem Based Learning methods for teaching, so students are expected to work in groups of 5-6 people during class sessions, and will do homework alone between sessions.
Students will solve four big problems during the semester, spanning about 4-6 sessions each. The problems will cover the following topics: advanced data structures (designing data structures to help solving a problem), greedy algorithms, dynamic programming, approximation algorithms, and more importantly the orthogonal notions of algorithm complexity and algorithm quality (in terms of solution produced).
UE Mathematics for computer science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
The objective of this course is to provide the basis This way, every student can use the adequate mathematical tools for designing well-founded reasoning and prove properties. More precisely, the content is the following: Overview of proving techniques, Induction, Counting, Basics on enumeration and combinatorics , Divisibility, Discrete structures and graphs, Probability, Modeling and classical laws, Random walks.
UE Introduction to Visual Computing
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
The aim of this project is to develop a simple compiler. That is, a translator from a source language to a target language. The source 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 (TER)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
Skills
- Recognize a situation where Operations Research is relevant.
- Know the main tools of Operations Research.
- Have the methodological elements to choose the solution methods and the tools the most adapted for a given practical problem.
- Know how to manipulate the software tools to solve a discrete optimization problem.
The course covers various topics:
- Linear Programming (modelling, solving, duality)
- Mixed Integer Linear Programming (modelling techniques, solving with Branch and Bound)
- Dynamic Programming
- Bonus (riddles, elsewhere on the web, OR News)
More details : https://moodle.caseine.org/course/view.php?id=42
UE Data base foundations
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
Learn basic concepts of computer networking and acquire practical notions of protocols with an emphasis on TCP/IP.
UE 3D Graphics
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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.
----------------------
L'usage des machines multiprocesseurs est devenu incontournable et la plupart des applications s'exécutent aujourd'hui sur des machines disposant de plusieurs unités de traitement s'exécutant en parallèle, depuis les tablettes jusqu'aux supercalculateurs. Ces applications concernent à la fois la recherche scientifique (physique, chimie, biologie,...), mais également les entreprises industrielles et commerciales. Ce domaine s'appelle le calcul haute performance (High Performance Computing, HPC).
Cet enseignement d'informatique présente le domaine du HPC sous différents aspects : architecturaux, algorithmiques, langages de programmation parallèle, évaluation de performances, ... Plusieurs exemples d'algorithmes parallèles, issus de différents domaines scientifiques, sont disséqués et étudiés.
Le contenu de cet enseignement permet de comprendre comment concevoir, programmer et exécuter efficacement une application parallèle sur un large spectre de plates-formes, allant d'un simple processeur multicore en passant par une machine multiprocesseurs à 200 coeurs et jusqu'à une grappe (cluster) de serveurs multiprocesseurs. Les travaux pratiques sur machines parallèles représentent une partie importante de cet enseignement et vont mettre en oeuvre les concepts étudiés en cours, en particulier en utilisant les extensions de langages OpenMP et MPI.
UE Fundamental Computer Science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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.
Course opened in 2018/2019
UE Foundations of Data Science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE Embodying the shift: digital in the age of low-tech
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE Algebraic Algorithms for Cryptology
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE Programming language and compiler design
Niveau d'étude
Bac +4
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This module introduces the main concepts available in programming languages to execute a program on a machine. Moreover, it presents compilers, the programs used to transform human-readable programs into machine-readable programs.
More specifically, this module 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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This course introduces some of the main concepts of software engineering (lifecycle/development process, requirements, specification architecture, global and detailed design, test, project supervision and management).
The first part of this course focuses on the Unified Modeling Language and presents the object and class diagrams, use cases, state-transition and sequence diagrams. The second part focuses on the development phases and presents the development process, how to manage requirements, the notion of software architecture, design patterns, tests, and project management.
UE Principles of operating systems
Niveau d'étude
Bac +4
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This class is an introduction to general operating systems concepts that every programmer and computer scientist must know.
The course presents the main roles of an operating system and the challenges associated with the design of an operating system. The main components of an operating system are studied, including: memory management, task management, management of storage devices.
For each component, we present the main design choices in existing operating systems. We study how these design choices are guided by the characteristics of the underlying hardware and how the components interact with the hardware.
Additionally, a special focus is given to concurrent programming. The challenges and pitfalls of concurrent programming are introduced. Using the POSIX thread interface, we study the main programming concepts and methodologies to write correct and efficient concurrent programs.
Organization:
The class is based on an 11-week semester, with 3 hours of lectures and 3 hours of in-class lab sessions per week.
The labs are based on the C language, the Linux operating system and the POSIX programming standard.
Remark : For the interested students wishing to study the detailed design and implementation of an operating system, an optional (1-month) programming project is available at the end of the semester in a separate class (see GBX7MO08 - Programming project/OS).
UE Algorithmic Problem Solving
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This course has for objectives to develop proficiencies in algorithms analysis, algorithm writing, and problem solving in general using algorithms.
This course uses Problem Based Learning methods for teaching, so students are expected to work in groups of 5-6 people during class sessions, and will do homework alone between sessions.
Students will solve four big problems during the semester, spanning about 4-6 sessions each. The problems will cover the following topics: advanced data structures (designing data structures to help solving a problem), greedy algorithms, dynamic programming, approximation algorithms, and more importantly the orthogonal notions of algorithm complexity and algorithm quality (in terms of solution produced).
UE Mathematics for computer science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
The objective of this course is to provide the basis This way, every student can use the adequate mathematical tools for designing well-founded reasoning and prove properties. More precisely, the content is the following: Overview of proving techniques, Induction, Counting, Basics on enumeration and combinatorics , Divisibility, Discrete structures and graphs, Probability, Modeling and classical laws, Random walks.
UE Introduction to Visual Computing
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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 Technical writing and speaking
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This module about the English language includes oral and written communication tools. It teaches how to write professional documents: CV, articles, memorandum, e-mail, letter, master’s…
Moreover, it proposes a training specialised in scientific report writing using written communication techniques and tools and provides the skills to publish reviews or scientific reports (for example technicians). That course will enable people to do a work of quality that they can publish further in scientific magazines.
UE Programming project (OS)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
The aim of this project is to develop a simple compiler. That is, a translator from a source language to a target language. The source 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 (TER)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 cryptology
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 Introduction to Modeling and Verification of Digital Systems
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
Skills
- Recognize a situation where Operations Research is relevant.
- Know the main tools of Operations Research.
- Have the methodological elements to choose the solution methods and the tools the most adapted for a given practical problem.
- Know how to manipulate the software tools to solve a discrete optimization problem.
The course covers various topics:
- Linear Programming (modelling, solving, duality)
- Mixed Integer Linear Programming (modelling techniques, solving with Branch and Bound)
- Dynamic Programming
- Bonus (riddles, elsewhere on the web, OR News)
More details : https://moodle.caseine.org/course/view.php?id=42
UE Data base foundations
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 Intelligent systems: reasoning and recognition
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
This course brings together programming techniques for recognition and symbolic reasoning. Techniques for symbolic reasoning are provided based on rule based programming and structured knowledge representations using schema. Programming of rules and schema are illustrated with exercises in the CLIPS Expert-System environment (developed by NASA). Techniques for recognition are presented based on Bayesian pattern recognition and machine learning. Linear and quadratic discrimination functions are presented, followed by feature space reduction techniques based on the Fisher discriminant function and principal Components analysis. An introduction to learning theory is provided using the EM algorithm to estimate Gaussian Mixture Models.
UE Computer networks principles
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
Learn basic concepts of computer networking and acquire practical notions of protocols with an emphasis on TCP/IP.
UE 3D Graphics
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 Parallel Algorithms and Programming
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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.
----------------------
L'usage des machines multiprocesseurs est devenu incontournable et la plupart des applications s'exécutent aujourd'hui sur des machines disposant de plusieurs unités de traitement s'exécutant en parallèle, depuis les tablettes jusqu'aux supercalculateurs. Ces applications concernent à la fois la recherche scientifique (physique, chimie, biologie,...), mais également les entreprises industrielles et commerciales. Ce domaine s'appelle le calcul haute performance (High Performance Computing, HPC).
Cet enseignement d'informatique présente le domaine du HPC sous différents aspects : architecturaux, algorithmiques, langages de programmation parallèle, évaluation de performances, ... Plusieurs exemples d'algorithmes parallèles, issus de différents domaines scientifiques, sont disséqués et étudiés.
Le contenu de cet enseignement permet de comprendre comment concevoir, programmer et exécuter efficacement une application parallèle sur un large spectre de plates-formes, allant d'un simple processeur multicore en passant par une machine multiprocesseurs à 200 coeurs et jusqu'à une grappe (cluster) de serveurs multiprocesseurs. Les travaux pratiques sur machines parallèles représentent une partie importante de cet enseignement et vont mettre en oeuvre les concepts étudiés en cours, en particulier en utilisant les extensions de langages OpenMP et MPI.
UE Fundamental Computer Science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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.
Course opened in 2018/2019
UE Foundations of Data Science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE Embodying the shift: digital in the age of low-tech
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE Programming language and compiler design
Niveau d'étude
Bac +4
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This module introduces the main concepts available in programming languages to execute a program on a machine. Moreover, it presents compilers, the programs used to transform human-readable programs into machine-readable programs.
More specifically, this module 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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This course introduces some of the main concepts of software engineering (lifecycle/development process, requirements, specification architecture, global and detailed design, test, project supervision and management).
The first part of this course focuses on the Unified Modeling Language and presents the object and class diagrams, use cases, state-transition and sequence diagrams. The second part focuses on the development phases and presents the development process, how to manage requirements, the notion of software architecture, design patterns, tests, and project management.
UE Principles of operating systems
Niveau d'étude
Bac +4
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This class is an introduction to general operating systems concepts that every programmer and computer scientist must know.
The course presents the main roles of an operating system and the challenges associated with the design of an operating system. The main components of an operating system are studied, including: memory management, task management, management of storage devices.
For each component, we present the main design choices in existing operating systems. We study how these design choices are guided by the characteristics of the underlying hardware and how the components interact with the hardware.
Additionally, a special focus is given to concurrent programming. The challenges and pitfalls of concurrent programming are introduced. Using the POSIX thread interface, we study the main programming concepts and methodologies to write correct and efficient concurrent programs.
Organization:
The class is based on an 11-week semester, with 3 hours of lectures and 3 hours of in-class lab sessions per week.
The labs are based on the C language, the Linux operating system and the POSIX programming standard.
Remark : For the interested students wishing to study the detailed design and implementation of an operating system, an optional (1-month) programming project is available at the end of the semester in a separate class (see GBX7MO08 - Programming project/OS).
UE Algorithmic Problem Solving
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This course has for objectives to develop proficiencies in algorithms analysis, algorithm writing, and problem solving in general using algorithms.
This course uses Problem Based Learning methods for teaching, so students are expected to work in groups of 5-6 people during class sessions, and will do homework alone between sessions.
Students will solve four big problems during the semester, spanning about 4-6 sessions each. The problems will cover the following topics: advanced data structures (designing data structures to help solving a problem), greedy algorithms, dynamic programming, approximation algorithms, and more importantly the orthogonal notions of algorithm complexity and algorithm quality (in terms of solution produced).
UE Mathematics for computer science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
The objective of this course is to provide the basis This way, every student can use the adequate mathematical tools for designing well-founded reasoning and prove properties. More precisely, the content is the following: Overview of proving techniques, Induction, Counting, Basics on enumeration and combinatorics , Divisibility, Discrete structures and graphs, Probability, Modeling and classical laws, Random walks.
UE Introduction to Visual Computing
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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 Technical writing and speaking
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This module about the English language includes oral and written communication tools. It teaches how to write professional documents: CV, articles, memorandum, e-mail, letter, master’s…
Moreover, it proposes a training specialised in scientific report writing using written communication techniques and tools and provides the skills to publish reviews or scientific reports (for example technicians). That course will enable people to do a work of quality that they can publish further in scientific magazines.
UE Programming project (OS)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
The aim of this project is to develop a simple compiler. That is, a translator from a source language to a target language. The source 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 (TER)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 cryptology
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 Introduction to Modeling and Verification of Digital Systems
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
Skills
- Recognize a situation where Operations Research is relevant.
- Know the main tools of Operations Research.
- Have the methodological elements to choose the solution methods and the tools the most adapted for a given practical problem.
- Know how to manipulate the software tools to solve a discrete optimization problem.
The course covers various topics:
- Linear Programming (modelling, solving, duality)
- Mixed Integer Linear Programming (modelling techniques, solving with Branch and Bound)
- Dynamic Programming
- Bonus (riddles, elsewhere on the web, OR News)
More details : https://moodle.caseine.org/course/view.php?id=42
UE Data base foundations
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 Intelligent systems: reasoning and recognition
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
This course brings together programming techniques for recognition and symbolic reasoning. Techniques for symbolic reasoning are provided based on rule based programming and structured knowledge representations using schema. Programming of rules and schema are illustrated with exercises in the CLIPS Expert-System environment (developed by NASA). Techniques for recognition are presented based on Bayesian pattern recognition and machine learning. Linear and quadratic discrimination functions are presented, followed by feature space reduction techniques based on the Fisher discriminant function and principal Components analysis. An introduction to learning theory is provided using the EM algorithm to estimate Gaussian Mixture Models.
UE Computer networks principles
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
Learn basic concepts of computer networking and acquire practical notions of protocols with an emphasis on TCP/IP.
UE 3D Graphics
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 Parallel Algorithms and Programming
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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.
----------------------
L'usage des machines multiprocesseurs est devenu incontournable et la plupart des applications s'exécutent aujourd'hui sur des machines disposant de plusieurs unités de traitement s'exécutant en parallèle, depuis les tablettes jusqu'aux supercalculateurs. Ces applications concernent à la fois la recherche scientifique (physique, chimie, biologie,...), mais également les entreprises industrielles et commerciales. Ce domaine s'appelle le calcul haute performance (High Performance Computing, HPC).
Cet enseignement d'informatique présente le domaine du HPC sous différents aspects : architecturaux, algorithmiques, langages de programmation parallèle, évaluation de performances, ... Plusieurs exemples d'algorithmes parallèles, issus de différents domaines scientifiques, sont disséqués et étudiés.
Le contenu de cet enseignement permet de comprendre comment concevoir, programmer et exécuter efficacement une application parallèle sur un large spectre de plates-formes, allant d'un simple processeur multicore en passant par une machine multiprocesseurs à 200 coeurs et jusqu'à une grappe (cluster) de serveurs multiprocesseurs. Les travaux pratiques sur machines parallèles représentent une partie importante de cet enseignement et vont mettre en oeuvre les concepts étudiés en cours, en particulier en utilisant les extensions de langages OpenMP et MPI.
UE Fundamental Computer Science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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.
Course opened in 2018/2019
UE Foundations of Data Science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE Embodying the shift: digital in the age of low-tech
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE Programming language and compiler design
Niveau d'étude
Bac +4
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This module introduces the main concepts available in programming languages to execute a program on a machine. Moreover, it presents compilers, the programs used to transform human-readable programs into machine-readable programs.
More specifically, this module 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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This course introduces some of the main concepts of software engineering (lifecycle/development process, requirements, specification architecture, global and detailed design, test, project supervision and management).
The first part of this course focuses on the Unified Modeling Language and presents the object and class diagrams, use cases, state-transition and sequence diagrams. The second part focuses on the development phases and presents the development process, how to manage requirements, the notion of software architecture, design patterns, tests, and project management.
UE Principles of operating systems
Niveau d'étude
Bac +4
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This class is an introduction to general operating systems concepts that every programmer and computer scientist must know.
The course presents the main roles of an operating system and the challenges associated with the design of an operating system. The main components of an operating system are studied, including: memory management, task management, management of storage devices.
For each component, we present the main design choices in existing operating systems. We study how these design choices are guided by the characteristics of the underlying hardware and how the components interact with the hardware.
Additionally, a special focus is given to concurrent programming. The challenges and pitfalls of concurrent programming are introduced. Using the POSIX thread interface, we study the main programming concepts and methodologies to write correct and efficient concurrent programs.
Organization:
The class is based on an 11-week semester, with 3 hours of lectures and 3 hours of in-class lab sessions per week.
The labs are based on the C language, the Linux operating system and the POSIX programming standard.
Remark : For the interested students wishing to study the detailed design and implementation of an operating system, an optional (1-month) programming project is available at the end of the semester in a separate class (see GBX7MO08 - Programming project/OS).
UE Algorithmic Problem Solving
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This course has for objectives to develop proficiencies in algorithms analysis, algorithm writing, and problem solving in general using algorithms.
This course uses Problem Based Learning methods for teaching, so students are expected to work in groups of 5-6 people during class sessions, and will do homework alone between sessions.
Students will solve four big problems during the semester, spanning about 4-6 sessions each. The problems will cover the following topics: advanced data structures (designing data structures to help solving a problem), greedy algorithms, dynamic programming, approximation algorithms, and more importantly the orthogonal notions of algorithm complexity and algorithm quality (in terms of solution produced).
UE Mathematics for computer science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
The objective of this course is to provide the basis This way, every student can use the adequate mathematical tools for designing well-founded reasoning and prove properties. More precisely, the content is the following: Overview of proving techniques, Induction, Counting, Basics on enumeration and combinatorics , Divisibility, Discrete structures and graphs, Probability, Modeling and classical laws, Random walks.
UE Introduction to Visual Computing
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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 Technical writing and speaking
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This module about the English language includes oral and written communication tools. It teaches how to write professional documents: CV, articles, memorandum, e-mail, letter, master’s…
Moreover, it proposes a training specialised in scientific report writing using written communication techniques and tools and provides the skills to publish reviews or scientific reports (for example technicians). That course will enable people to do a work of quality that they can publish further in scientific magazines.
UE Programming project (OS)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
The aim of this project is to develop a simple compiler. That is, a translator from a source language to a target language. The source 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 (TER)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 Operations Research
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
Skills
- Recognize a situation where Operations Research is relevant.
- Know the main tools of Operations Research.
- Have the methodological elements to choose the solution methods and the tools the most adapted for a given practical problem.
- Know how to manipulate the software tools to solve a discrete optimization problem.
The course covers various topics:
- Linear Programming (modelling, solving, duality)
- Mixed Integer Linear Programming (modelling techniques, solving with Branch and Bound)
- Dynamic Programming
- Bonus (riddles, elsewhere on the web, OR News)
More details : https://moodle.caseine.org/course/view.php?id=42
UE Introduction to Modeling and Verification of Digital Systems
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 Data base foundations
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 Intelligent systems: reasoning and recognition
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
This course brings together programming techniques for recognition and symbolic reasoning. Techniques for symbolic reasoning are provided based on rule based programming and structured knowledge representations using schema. Programming of rules and schema are illustrated with exercises in the CLIPS Expert-System environment (developed by NASA). Techniques for recognition are presented based on Bayesian pattern recognition and machine learning. Linear and quadratic discrimination functions are presented, followed by feature space reduction techniques based on the Fisher discriminant function and principal Components analysis. An introduction to learning theory is provided using the EM algorithm to estimate Gaussian Mixture Models.
UE Computer networks principles
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
Learn basic concepts of computer networking and acquire practical notions of protocols with an emphasis on TCP/IP.
UE 3D Graphics
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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.
----------------------
L'usage des machines multiprocesseurs est devenu incontournable et la plupart des applications s'exécutent aujourd'hui sur des machines disposant de plusieurs unités de traitement s'exécutant en parallèle, depuis les tablettes jusqu'aux supercalculateurs. Ces applications concernent à la fois la recherche scientifique (physique, chimie, biologie,...), mais également les entreprises industrielles et commerciales. Ce domaine s'appelle le calcul haute performance (High Performance Computing, HPC).
Cet enseignement d'informatique présente le domaine du HPC sous différents aspects : architecturaux, algorithmiques, langages de programmation parallèle, évaluation de performances, ... Plusieurs exemples d'algorithmes parallèles, issus de différents domaines scientifiques, sont disséqués et étudiés.
Le contenu de cet enseignement permet de comprendre comment concevoir, programmer et exécuter efficacement une application parallèle sur un large spectre de plates-formes, allant d'un simple processeur multicore en passant par une machine multiprocesseurs à 200 coeurs et jusqu'à une grappe (cluster) de serveurs multiprocesseurs. Les travaux pratiques sur machines parallèles représentent une partie importante de cet enseignement et vont mettre en oeuvre les concepts étudiés en cours, en particulier en utilisant les extensions de langages OpenMP et MPI.
UE Fundamental Computer Science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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.
Course opened in 2018/2019
UE Foundations of Data Science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE Embodying the shift: digital in the age of low-tech
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE Programming language and compiler design
Niveau d'étude
Bac +4
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This module introduces the main concepts available in programming languages to execute a program on a machine. Moreover, it presents compilers, the programs used to transform human-readable programs into machine-readable programs.
More specifically, this module 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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This course introduces some of the main concepts of software engineering (lifecycle/development process, requirements, specification architecture, global and detailed design, test, project supervision and management).
The first part of this course focuses on the Unified Modeling Language and presents the object and class diagrams, use cases, state-transition and sequence diagrams. The second part focuses on the development phases and presents the development process, how to manage requirements, the notion of software architecture, design patterns, tests, and project management.
UE Principles of operating systems
Niveau d'étude
Bac +4
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This class is an introduction to general operating systems concepts that every programmer and computer scientist must know.
The course presents the main roles of an operating system and the challenges associated with the design of an operating system. The main components of an operating system are studied, including: memory management, task management, management of storage devices.
For each component, we present the main design choices in existing operating systems. We study how these design choices are guided by the characteristics of the underlying hardware and how the components interact with the hardware.
Additionally, a special focus is given to concurrent programming. The challenges and pitfalls of concurrent programming are introduced. Using the POSIX thread interface, we study the main programming concepts and methodologies to write correct and efficient concurrent programs.
Organization:
The class is based on an 11-week semester, with 3 hours of lectures and 3 hours of in-class lab sessions per week.
The labs are based on the C language, the Linux operating system and the POSIX programming standard.
Remark : For the interested students wishing to study the detailed design and implementation of an operating system, an optional (1-month) programming project is available at the end of the semester in a separate class (see GBX7MO08 - Programming project/OS).
UE Algorithmic Problem Solving
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This course has for objectives to develop proficiencies in algorithms analysis, algorithm writing, and problem solving in general using algorithms.
This course uses Problem Based Learning methods for teaching, so students are expected to work in groups of 5-6 people during class sessions, and will do homework alone between sessions.
Students will solve four big problems during the semester, spanning about 4-6 sessions each. The problems will cover the following topics: advanced data structures (designing data structures to help solving a problem), greedy algorithms, dynamic programming, approximation algorithms, and more importantly the orthogonal notions of algorithm complexity and algorithm quality (in terms of solution produced).
UE Mathematics for computer science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
The objective of this course is to provide the basis This way, every student can use the adequate mathematical tools for designing well-founded reasoning and prove properties. More precisely, the content is the following: Overview of proving techniques, Induction, Counting, Basics on enumeration and combinatorics , Divisibility, Discrete structures and graphs, Probability, Modeling and classical laws, Random walks.
UE Introduction to Visual Computing
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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 Technical writing and speaking
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This module about the English language includes oral and written communication tools. It teaches how to write professional documents: CV, articles, memorandum, e-mail, letter, master’s…
Moreover, it proposes a training specialised in scientific report writing using written communication techniques and tools and provides the skills to publish reviews or scientific reports (for example technicians). That course will enable people to do a work of quality that they can publish further in scientific magazines.
UE Programming project (OS)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
The aim of this project is to develop a simple compiler. That is, a translator from a source language to a target language. The source 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 (TER)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 distributed systems
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 Introduction to Modeling and Verification of Digital Systems
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
Skills
- Recognize a situation where Operations Research is relevant.
- Know the main tools of Operations Research.
- Have the methodological elements to choose the solution methods and the tools the most adapted for a given practical problem.
- Know how to manipulate the software tools to solve a discrete optimization problem.
The course covers various topics:
- Linear Programming (modelling, solving, duality)
- Mixed Integer Linear Programming (modelling techniques, solving with Branch and Bound)
- Dynamic Programming
- Bonus (riddles, elsewhere on the web, OR News)
More details : https://moodle.caseine.org/course/view.php?id=42
UE Data base foundations
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 Human computer interaction
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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 Intelligent systems: reasoning and recognition
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
This course brings together programming techniques for recognition and symbolic reasoning. Techniques for symbolic reasoning are provided based on rule based programming and structured knowledge representations using schema. Programming of rules and schema are illustrated with exercises in the CLIPS Expert-System environment (developed by NASA). Techniques for recognition are presented based on Bayesian pattern recognition and machine learning. Linear and quadratic discrimination functions are presented, followed by feature space reduction techniques based on the Fisher discriminant function and principal Components analysis. An introduction to learning theory is provided using the EM algorithm to estimate Gaussian Mixture Models.
UE Computer networks principles
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
Learn basic concepts of computer networking and acquire practical notions of protocols with an emphasis on TCP/IP.
UE 3D Graphics
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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.
----------------------
L'usage des machines multiprocesseurs est devenu incontournable et la plupart des applications s'exécutent aujourd'hui sur des machines disposant de plusieurs unités de traitement s'exécutant en parallèle, depuis les tablettes jusqu'aux supercalculateurs. Ces applications concernent à la fois la recherche scientifique (physique, chimie, biologie,...), mais également les entreprises industrielles et commerciales. Ce domaine s'appelle le calcul haute performance (High Performance Computing, HPC).
Cet enseignement d'informatique présente le domaine du HPC sous différents aspects : architecturaux, algorithmiques, langages de programmation parallèle, évaluation de performances, ... Plusieurs exemples d'algorithmes parallèles, issus de différents domaines scientifiques, sont disséqués et étudiés.
Le contenu de cet enseignement permet de comprendre comment concevoir, programmer et exécuter efficacement une application parallèle sur un large spectre de plates-formes, allant d'un simple processeur multicore en passant par une machine multiprocesseurs à 200 coeurs et jusqu'à une grappe (cluster) de serveurs multiprocesseurs. Les travaux pratiques sur machines parallèles représentent une partie importante de cet enseignement et vont mettre en oeuvre les concepts étudiés en cours, en particulier en utilisant les extensions de langages OpenMP et MPI.
UE Fundamental Computer Science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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.
Course opened in 2018/2019
UE Foundations of Data Science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE Embodying the shift: digital in the age of low-tech
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE Programming language and compiler design
Niveau d'étude
Bac +4
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This module introduces the main concepts available in programming languages to execute a program on a machine. Moreover, it presents compilers, the programs used to transform human-readable programs into machine-readable programs.
More specifically, this module 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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This course introduces some of the main concepts of software engineering (lifecycle/development process, requirements, specification architecture, global and detailed design, test, project supervision and management).
The first part of this course focuses on the Unified Modeling Language and presents the object and class diagrams, use cases, state-transition and sequence diagrams. The second part focuses on the development phases and presents the development process, how to manage requirements, the notion of software architecture, design patterns, tests, and project management.
UE Principles of operating systems
Niveau d'étude
Bac +4
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This class is an introduction to general operating systems concepts that every programmer and computer scientist must know.
The course presents the main roles of an operating system and the challenges associated with the design of an operating system. The main components of an operating system are studied, including: memory management, task management, management of storage devices.
For each component, we present the main design choices in existing operating systems. We study how these design choices are guided by the characteristics of the underlying hardware and how the components interact with the hardware.
Additionally, a special focus is given to concurrent programming. The challenges and pitfalls of concurrent programming are introduced. Using the POSIX thread interface, we study the main programming concepts and methodologies to write correct and efficient concurrent programs.
Organization:
The class is based on an 11-week semester, with 3 hours of lectures and 3 hours of in-class lab sessions per week.
The labs are based on the C language, the Linux operating system and the POSIX programming standard.
Remark : For the interested students wishing to study the detailed design and implementation of an operating system, an optional (1-month) programming project is available at the end of the semester in a separate class (see GBX7MO08 - Programming project/OS).
UE Algorithmic Problem Solving
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This course has for objectives to develop proficiencies in algorithms analysis, algorithm writing, and problem solving in general using algorithms.
This course uses Problem Based Learning methods for teaching, so students are expected to work in groups of 5-6 people during class sessions, and will do homework alone between sessions.
Students will solve four big problems during the semester, spanning about 4-6 sessions each. The problems will cover the following topics: advanced data structures (designing data structures to help solving a problem), greedy algorithms, dynamic programming, approximation algorithms, and more importantly the orthogonal notions of algorithm complexity and algorithm quality (in terms of solution produced).
UE Mathematics for computer science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
The objective of this course is to provide the basis This way, every student can use the adequate mathematical tools for designing well-founded reasoning and prove properties. More precisely, the content is the following: Overview of proving techniques, Induction, Counting, Basics on enumeration and combinatorics , Divisibility, Discrete structures and graphs, Probability, Modeling and classical laws, Random walks.
UE Introduction to Visual Computing
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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)
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
The aim of this project is to develop a simple compiler. That is, a translator from a source language to a target language. The source 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_Démarche Scientifique
Niveau d'étude
Bac +4
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
UE Technical writing and speaking
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
This module about the English language includes oral and written communication tools. It teaches how to write professional documents: CV, articles, memorandum, e-mail, letter, master’s…
Moreover, it proposes a training specialised in scientific report writing using written communication techniques and tools and provides the skills to publish reviews or scientific reports (for example technicians). That course will enable people to do a work of quality that they can publish further in scientific magazines.
UE Introduction to Modeling and Verification of Digital Systems
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
Skills
- Recognize a situation where Operations Research is relevant.
- Know the main tools of Operations Research.
- Have the methodological elements to choose the solution methods and the tools the most adapted for a given practical problem.
- Know how to manipulate the software tools to solve a discrete optimization problem.
The course covers various topics:
- Linear Programming (modelling, solving, duality)
- Mixed Integer Linear Programming (modelling techniques, solving with Branch and Bound)
- Dynamic Programming
- Bonus (riddles, elsewhere on the web, OR News)
More details : https://moodle.caseine.org/course/view.php?id=42
UE Data base foundations
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
Learn basic concepts of computer networking and acquire practical notions of protocols with an emphasis on TCP/IP.
UE 3D Graphics
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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.
----------------------
L'usage des machines multiprocesseurs est devenu incontournable et la plupart des applications s'exécutent aujourd'hui sur des machines disposant de plusieurs unités de traitement s'exécutant en parallèle, depuis les tablettes jusqu'aux supercalculateurs. Ces applications concernent à la fois la recherche scientifique (physique, chimie, biologie,...), mais également les entreprises industrielles et commerciales. Ce domaine s'appelle le calcul haute performance (High Performance Computing, HPC).
Cet enseignement d'informatique présente le domaine du HPC sous différents aspects : architecturaux, algorithmiques, langages de programmation parallèle, évaluation de performances, ... Plusieurs exemples d'algorithmes parallèles, issus de différents domaines scientifiques, sont disséqués et étudiés.
Le contenu de cet enseignement permet de comprendre comment concevoir, programmer et exécuter efficacement une application parallèle sur un large spectre de plates-formes, allant d'un simple processeur multicore en passant par une machine multiprocesseurs à 200 coeurs et jusqu'à une grappe (cluster) de serveurs multiprocesseurs. Les travaux pratiques sur machines parallèles représentent une partie importante de cet enseignement et vont mettre en oeuvre les concepts étudiés en cours, en particulier en utilisant les extensions de langages OpenMP et MPI.
UE Fundamental Computer Science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
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.
Course opened in 2018/2019
UE Foundations of Data Science
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE Embodying the shift: digital in the age of low-tech
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE Algebraic Algorithms for Cryptology
Niveau d'étude
Bac +4
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE Process Engineering
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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 vizualisation
Niveau d'étude
Bac +5
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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.
- Introduction to parallelism
- Introduction to general context of parallelism
- Models of parallel programming
- Description of various model of parallelism
- Paradigm of parallelism
- Templates of parallelism
- Parallel architectures
- Programming tools: Cuda
UE From Basic Machine Learning models to Advanced Kernel Learning
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
0 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
Cours de remise à niveau.
UE Human Computer Interaction
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
UE Next Generation Software Development
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
UE Safety Critical Systems: from design to verification
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
UE Research project
Niveau d'étude
Bac +5
ECTS
30 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
UE GS_MSTIC_Ethique de la recherche
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
Cette UE est obligatoire pour les étudiant.e.s inscrit.e.s dans le PT MSTIC.
Elle est constituée d'une projet tutoré et d'un MOOC consacré à l'éthique de la Science.
UE Process Engineering
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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 vizualisation
Niveau d'étude
Bac +5
ECTS
3 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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.
- Introduction to parallelism
- Introduction to general context of parallelism
- Models of parallel programming
- Description of various model of parallelism
- Paradigm of parallelism
- Templates of parallelism
- Parallel architectures
- Programming tools: Cuda
UE From Basic Machine Learning models to Advanced Kernel Learning
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
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
Niveau d'étude
Bac +5
ECTS
0 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
Cours de remise à niveau.
UE Human Computer Interaction
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
UE Next Generation Software Development
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
UE Safety Critical Systems: from design to verification
Niveau d'étude
Bac +5
ECTS
6 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Automne (sept. à dec./janv.)
UE Research project
Niveau d'étude
Bac +5
ECTS
30 crédits
Composante
UFR IM2AG (informatique, mathématiques et mathématiques appliquées)
Période de l'année
Printemps (janv. à avril/mai)
Admission
Conditions d'admission
La 1re année de master est accessible sur dossier (et/ou entretien) aux candidats justifiant d'un diplôme national conférant le grade de licence dans un domaine compatible avec celui du master ou bien via une validation d'études ou d'acquis selon les conditions déterminées par l’université ou la formation.
La 2e année de master est accessible sur dossier (et / ou entretien) aux candidats ayant validé la 1ère année d'un parcours compatible ou bien via une validation d'études ou d'acquis selon les conditions déterminées par l’université ou la formation.
Public formation continue : Vous relevez de la formation continue :
- si vous reprenez vos études après 2 ans d'interruption d'études
- ou si vous suiviez une formation sous le régime formation continue l’une des 2 années précédentes
- ou si vous êtes salarié, demandeur d'emploi, travailleur indépendant
Si vous n'avez pas le diplôme requis pour intégrer la formation, vous pouvez entreprendre une démarche de validation des acquis personnels et professionnels (VAPP)
Pour plus d'informations, consultez la page web de la Direction de la formation continue et de l’apprentissage
Candidature
Vous souhaitez candidater et vous inscrire ? Sachez que la procédure diffère selon le diplôme envisagé, le diplôme obtenu, ou le lieu de résidence pour les étudiants étrangers.