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-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 ...
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. ...
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. ...
EE-568: Reinforcement learningThis course describes theory and methods for Reinforcement Learning (RL), which revolves around decision making under uncertainty. The course covers classic algorithms in RL as well as recent algorithms under the lens of contemporary optimization. ...
PHYS-100: Advanced physics I (mechanics)La Physique Générale I (avancée) couvre la mécanique du point et du solide indéformable. Apprendre la mécanique, c'est apprendre à mettre sous forme mathématique un phénomène physique, en modélisant la situation et appliquant les lois de la physique. ...
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-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 ...
MICRO-608: Optical ComputingIn this course we will start with a brief history of optical computing, describe methods for implementing optical interconnection and logic and then spend most of our time on learning about the recent efforts in optical computing machines for machine learn ...
MICRO-311(a): Signals and systems II (for MT)Ce cours aborde la théorie des systèmes linéaires discrets invariants par décalage (LID). Leurs propriétés et caractéristiques fondamentales y sont discutées, ainsi que les outils fondamentaux permettant de les étudier (transformée de Fourier et transformé ...
ENG-366: Signals, instruments and systemsThe goal of this course is to transmit knowledge in sensing, computing, communicating, and actuating for programmable
field instruments and, more generally, embedded systems. The student will be able to put in practice the knowledge
acquired using concrete ...
MICRO-311(b): Signals and systems II (for SV)Ce cours aborde la théorie des systèmes linéaires discrets invariants par décalage (LID). Leurs propriétés et caractéristiques fondamentales y sont discutées, ainsi que les outils fondamentaux permettant de les étudier (transformée de Fourier et transformé ...