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 ...
AR-503: Digital design and making: A critical introductionThe course introduces digital design and fabrication methods by combining the transfer of technical skills with theoretical knowledge and critical reflection. Topics include: scripting/programming for design, mass customisation through digital fabrication ...
CS-112(g): Programmation orientée objetCe cours approfondit les connaissances en programmation présentées dans le cours ICC du 1er semestre. L'accent est
mis sur l'approche «orientée objet» (en C++), la conception et la spécification de programmes via la réalisation d'une
mini-application dans ...
EE-110: Systèmes logiques (pour MT)Ce cours couvre les fondements des systèmes numériques. Sur la base d'algèbre Booléenne et de circuitscombinatoires et séquentiels incluant les machines d'états finis, les methodes d'analyse et de synthèse de systèmelogiques sont étudiées et appliquée ...
BIO-410: Bioimage informaticsThe course provides a comprehensive overview of methods, algorithms, and computer tools used in bioimage analysis. It exposes fundamental concepts and practical computer solutions to extract quantitative information from multidimensional images, both using ...
CS-411: Digital educationThis course addresses the relationship between specific technological features and the learners' cognitive processes. It also covers the methods and results of empirical studies: do student actually learn due to technologies? In fall 2025, P. Dillenbourg w ...
BIO-512: Digital epidemiologyEpidemiology is foundational to medicine and public health. This course starts with the key principles of classical epidemiology, progressing through computational modeling techniques, and concluding with the digital approaches of today. Students will also ...
MATH-458: Programming concepts in scientific computingThe aim of this course is to provide the background in scientific computing. The class includes a brief introduction to basic programming in c++, it then focuses on object-oriented programming and c++ specific programming techniques. Typical class hierarch ...
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-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. ...
MICRO-510: Commande embarquée de moteursL'étudiant sera capable de concevoir, de réaliser et de programmer une électronique complète de commande de moteur ou d'actionneur. Il saura appliquer la théorie de la commande de moteur sur des systèmes réels. ...
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 ...
NX-436: Advanced methods for human neuromodulationNeuromodulation is an expending field especially in human translational neuroscience and neurotechnology. This course will introduce to different approaches / technologies for neuromodulation, their underlying mechanisms of action and application in humans ...
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 ...
HUM-412: The ethics of engineering IThis course provides engineers entering the workforce with a hands-on approach to figuring out what to do in ethically challenging professional situations. ...
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-462: Learning and adaptive control for robotsTo cope with constant and unexpected changes in their environment, robots need to adapt their paths rapidly and appropriately without endangering humans. this course presents method to react within millisecunds. ...
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 ...