CS-522: Principles of computer systemsThis advanced graduate course teaches the key design principles underlying successful computer and communication systems, and shows how to solve real problems with ideas, techniques, and algorithms from operating systems, networks, databases, programming l ...
CS-471: Advanced multiprocessor architectureMultiprocessors are basic building blocks for all computer systems. This course covers the architecture and organization of modern multiprocessors, prevalent accelerators (e.g., GPU, TPU), and datacenters. It includes a research project on multiprocessors ...
CS-476: Embedded system designHardware-software co-design is a well known concept in embedded system design.It is also a concept required in designing FPGA-accelerators in data-centers.This course teaches how to transform algorithms in smart hardware-software solutions. ...
EE-334: Digital systems designStudents will acquire basic knowledge about methodologies and tools for the design, optimization, and verification of custom digital systems/hardware.
They learn how to design synchronous digital circuits on register transfer level, analyse their timing a ...
CS-472: Design technologies for integrated systemsHardware compilation is the process of transforming specialized hardware description languages into circuit descriptions, which are iteratively refined, detailed and optimized. The course presents algorithms, tools and methods for hardware compilation an ...
ME-213: Programmation pour ingénieurMettre en pratique les bases de la programmation vues au semestre précédent. Développer un logiciel structuré. Méthode de debug d'un logiciel. Introduction à la programmation scientifique. Introduction à l'instrumentation virtuelle. ...
MICRO-452: Basics of mobile roboticsThis course gives an overview of the field of mobile robotics, introducing to the main techniques and allowing to test them in exercises and a team-based project. ...
CH-335: Asymmetric synthesis and retrosynthesisThe first part of the course presents the classical methods of asymmetric synthesis. The second part of the course introduces retrosynthesis strategies based on the disconnection approach. ...
MSE-305: Introduction to atomic-scale modelingThis course provides an introduction to the modeling of matter at the atomic scale, using interactive Jupyter notebooks to see several of the core concepts of materials science in action. ...
CS-597: Master project in CybersecurityThe student carries out an academic or industrial master's project. The student will use skills and knowledge to accomplish an independent Master in Cybersecurity ...
CS-599: Master project in Computer ScienceThe student carries out an academic or industrial master's project. The student will use the required skills and knowledge to accomplish an independent Master in Computer Science. ...
COM-401: Cryptography and securityThis course introduces the basics of cryptography. We review several types of cryptographic primitives, when it is safe to use them and how to select the appropriate security parameters. We detail how they work and sketch how they can be implemented. ...
CS-470: Advanced computer architectureThis course explores techniques for exploiting instruction-level parallelism both statically and dynamically. It also addresses the generation of hardware accelerators from programming languages and investigates security issues related to microarchitectura ...
ChE-403: Heterogeneous reaction engineeringThe theoretical background and practical aspects of heterogeneous reactions including the basic knowledge of heterogeneous catalysis are introduced. The fundamentals are given to allow the design of multiphase chemical reactors. ...
CS-723: Topics in Machine Learning SystemsThis course will cover the latest technologies, platforms and research contributions in the area of machine learning systems. The students
will read, review and present papers from recent venues across the systems for ML spectrum. ...
CS-119(c): Information, Computation, CommunicationL'objectif de ce cours est d'introduire les étudiants à la pensée algorithmique, de les familiariser avec les fondamentaux de l'Informatique et de développer une première compétence en programmation (langage C++). ...
MICRO-621: MOOC: Micro and Nanofabrication (MEMS)Micro- and nanofabrication can be taught to students and professionals by textbooks and ex-cathedra lectures, but the real learning comes from seeing the manufacturing steps as they happen. This MOOC will not only explain the basics of microfabrication but ...
EE-390(a): Lab on hardware-software digital systems codesignThis course explores hardware-software co-design techniques to develop heterogeneous multi-core embedded systems running Linux on FPGAs. The course explores high-level synthesis tools (HLS) to design hardware accelerators that reduce total execution time a ...
MATH-251(a): Numerical analysisThis course presents numerical methods to solve mathematical problems such as systems of linear and nonlinear equations, function approximation, integration and differentiation, and differential equations. ...