Compulsory courses (18 ECTS)
- QIIntro: Quantum information overview, 6 ECTS, The objective is to give the student a broad overview of theoretical quantum information, including fundamental concepts (entanglement, teleportation, nonlocality, decoherence), quantum communication protocol (teleportation, quantum key distribution), quantum algorithms (Shor, Grover and VQE) and some notions of quantum error correction.
- PQIG: Quantum Information Group Project, 3 ECTS, Project with physics students: Work in small groups with students from various backgrounds on a Quantum information problem, performing a short review of the state-of-the-art and an experimentation.<
- PQIA: Advanced Quantum Information Project, 9 ECTS, Project work on Quantum information problem, performing a review, an analysis and an implementation of one or several solutions.
Elective courses (12ECTS) (subject to availability)
- ANum, 3ECTS, This unit is the natural continuation of MODEL. Provide the knowledge in mathematical tools and algorithms in order to be able to solve concrete problems of large sizes. We will study in particular algorithms and their implementation frequently used in the field of scientific computing and data science. The applications will be very diverse and may change each year: for example, we will see applications in finance (calculation of the price of options), in simulation of structures for 3D printing, in imagery (image compression), in deep learning (stochastic gradient algorithm), etc. We will endeavor for each algorithm to propose versions allowing an efficient implementation on parallel machines. The algorithms will be coded in MATLAB or in Python.
- FLAG: Basics of Algebraic Algorithms, 6 ECTS, This course present algebraic algorithms for basic and building blocks problems, targeting quasi-optimal complexity. To do so, we shall rely on linear algebra modeling of the problem. However, we shall show that this modeling yields a linear system with a structure that can actually be solved faster than general algorithms allow us to. These problems find applications in computer algebra, cryptography, coding theory or robotics. A thorough implementation of these algorithms will also be studied.
- IG3D: Introduction to Computer Graphics, 6 ECTS,This course introduces the domain of 3D computer graphics, including geometric modeling and processing, image synthesis, with implementation in OpenGL and C/C++.
- NDM: Network Design and Modeling, 6 ECTS, Introduction to the problem of modeling and performance evaluation of systems. It aims at answering the following questions: Why models are important? When do we need to evaluate the performance of a system? How? What kinds of models and techniques are useful?
- HPC: High Performance Computing (only in French), 6 ECTS, Introduction au calcul haute performance et au parallélisme pour concevoir, implémenter et optimiser les programmes parallèles sur des architectures classiques (multi- processeurs et multi-cœurs). Les points suivants sont abordés : architecture des machines parallèles, algorithmique parallèle, parallélisme de données et de tâches, décomposition et équilibrage de charge, paradigmes standards de programmation parallèle sur machines à mémoire distribuée ou partagée (standards MPI et OpenMP), programmation mixte multi-thread / multi-processus, optimisation de code séquentiel pour le calcul haute performance, programmation vectorielle (SIMD), introduction à la parallélisation automatique. Mise en pratique sur une application réelle (projet).
- PC2R: Programmation Concurrente, Réactive et Répartie (only in French), 6 ECTS, L’objectif de ce cours est de comprendre la programmation concurrente et son utilisation pour l’expression d’algorithmes dans les modèles à mémoire partagée, distincte et répartie. Dans le modèle à mémoire partagée, on s’intéresse aux modèles de threads coopératifs et préemptifs puis à la programmation réactive pour récupérer la propriété de déterminisme. Dans le modèle à mémoire répartie on cherche à maîtriser le modèle client/serveur et de savoir déployer des objets répartis.