CS-214: Software constructionLearn how to design and implement reliable, maintainable, and efficient software using a mix of programming skills (declarative style, higher-order functions, inductive types, parallelism) and
fundamental software construction concepts (reusability, abstr ...
CS-250: Algorithms IThe students learn the theory and practice of basic concepts and techniques in algorithms. The course covers mathematical induction, techniques for analyzing algorithms, elementary data structures, major algorithmic paradigms such as dynamic programming, s ...
CS-101: Advanced information, computation, communication IDiscrete mathematics is a discipline with applications to almost all areas of study. It provides a set of indispensable tools to computer science in particular. This course reviews (familiar) topics as diverse as mathematical reasoning, combinatorics, disc ...
CS-202: Computer systemsThis course will teach operating systems and networks in an integrated fashion,emphasising the fundamental concepts and techniques that make their interaction possible/practical. Core lectures will be coupled with C programming lectures and assignments for ...
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. ...
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 ...
COM-490: Large-scale data science for real-world dataThis hands-on course covers tools and methods used by data scientists, from researching solutions to scaling prototypes on Spark clusters. Students engage with the full data engineering and data science pipeline, from data acquisition to extracting insight ...
MICRO-436: Computational motor controlThe course gives (1) a review of different types of numerical models of control of locomotion and movement in animals, from fish to humans, (2) a presentation of different techniques for designing models, and (3) an analysis of the use and testing of those ...
CIVIL-321: Modélisation numérique des solides et structuresLa modélisation numérique des solides est abordée à travers la méthode des éléments finis. Les aspects purement analytiques sont d'abord présentés, puis les moyens d'interpolation, d'intégration et de résolution de la mécanique sont étudiés. ...
CS-213: Human-computer interactionLa discipline de l'Interaction Homme-Machine (ou HCI : Human-Computer Interaction) vise à systématiquement placer le facteur humain dans la conception de systèmes interactifs. ...
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. ...
CIVIL-312: Hydraulic analysis and designWater is vital for life but also a powerful natural force. Hydraulic engineering addresses the sustainable management of water for reliable supply, renewable energy, and protection from hazards. ...
ME-341: Heat and mass transferThis course covers fundamentals of heat transfer and applications to practical problems. Emphasis will be on developing a physical and analytical understanding of conductive, convective, and radiative heat transfer. ...
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-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-108: Pratique de la programmation orientée-objetLes étudiants perfectionnent leurs connaissances en Java et les mettent en pratique en réalisant un projet de taille conséquente. Ils apprennent à utiliser et à mettre en œuvre les principaux types de collections (listes, ensembles, tables associatives), e ...
MATH-351: Advanced numerical analysis IIThe student will learn state-of-the-art algorithms for solving differential equations. The analysis and implementation of these algorithms will be discussed in some detail. ...
CIVIL-410: Fluvial hydraulics and river engineeringLe cours donne aux étudiants des solides connaissances théoriques en hydraulique fluviale, et enseigne les bases de l'ingénierie fluviale dans le but de concilier la protection contre les crues et la protection de l'environnement. Le cours est illustré par ...