CS-320: Computer language processingWe teach the fundamental aspects of analyzing and interpreting computer languages, including the techniques to build compilers. You will build a working compiler from an elegant functional language into machine code using a popular backend called LLVM (htt ...
ME-251: Thermodynamics and energetics IThe course introduces the basic concepts of thermodynamics and heat transfer, and thermodynamic properties of matter and their calculation. The students will master the concepts of heat, mass, and momentum conservation, and apply these concepts to thermody ...
CS-550: Formal verificationWe introduce formal verification as an approach for developing highly reliable systems. Formal verification finds proofs that computer systems work under all relevant scenarios. We will learn how to use formal verification tools and explain the theory and ...
ME-466: InstabilityThis course focuses on the physical mechanisms at the origin of the transition of a flow from laminar to turbulent using the hydrodynamic instability theory. ...
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-420: Advanced compiler constructionStudents learn several implementation techniques for modern functional and object-oriented programming languages. They put some of them into practice by developing key parts of a compiler and run time system for a simple functional programming language. ...
PHYS-467: Machine learning for physicistsMachine learning and data analysis are becoming increasingly central in sciences including physics. In this course, fundamental principles and methods of machine learning will be introduced and practised. ...
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 ...
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 ...
MATH-301: Equations différentielles ordinairesCe cours donne une introduction rigoureuse au principaux thèmes de la théorie des équations différentielles ordinaires (EDO). Les EDO sont fondamentales pour l'étude des systèmes dynamiques et des équations aux dérivées partielles. Des applications dans ce ...
ME-444: HydrodynamicsNondimensionalized Navier-Stokes equations result in a great variety of models (Stokes, Lubrication, Euler, Potential) depending on the Reynolds number. The concept of boundary layer enables us then to identify the different components of the hydrodynamic ...
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 ...
COM-402: Information security and privacyThis course provides an overview of information security and privacy topics. It introduces students to the knowledge and tools they will need to deal with the security/privacy challenges they are likely to encounter in today's world. The tools are illustra ...
ChE-408: Process intensification and green chemistryThe first part of the course (~20%) is devoted to green chemistry and life cycle assessment.
The remainder focuses on process intensification (fundamentals, detailed description of a few selected technologies, with a special focus on microreactors).
Exa ...
CS-307: Introduction to multiprocessor architectureMultiprocessors are a core component in all types of computing infrastructure, from phones to datacenters. This course will build on the prerequisites of processor design and concurrency to introduce the essential technologies required to combine multiple ...