CS-453: Concurrent computingWith the advent of modern architectures, it becomes crucial to master the underlying algorithmics of concurrency. The objective of this course is to study the foundations of concurrent algorithms and
CS-302: Parallelism and concurrency in softwareFrom sensors,to smart phones,to the world's largest datacenters and supercomputers, parallelism & concurrency is ubiquitous in modern computing.There are also many forms of parallel & concurrent execu
CS-451: Distributed algorithmsComputing is nowadays distributed over several machines, in a local IP-like network, a cloud or a P2P network. Failures are common and computations need to proceed despite partial failures of machin
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 datacen
CS-477: Advanced operating systemsThis course teaches advanced OS system design. Using an extensive hands-on approach, the course focuses on traditional and new concepts proposed in the past two decades in the area of operating system
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 cir
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
fundam
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
MATH-454: Parallel and high-performance computingThis course provides insight into a broad variety of High Performance Computing (HPC) concepts and the majority of modern HPC architectures. Moreover, the student will learn to have a feeling about wh
CS-470: Advanced computer architectureThe course studies techniques to exploit Instruction-Level Parallelism (ILP) statically and dynamically. It also addresses some aspects of the design of domain-specific accelerators. Finally, it explo
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
AR-464: Enlighten your design studio projectThis course will support students in integrating daylight concepts into their ongoing studio projects. With an emphasis on the perceptual, qualitative, and emotional aspects of daylight, the objective
COM-304: Communications projectThe course teaches the development of systems that solve real-world challenges in communications, signal processing, AI, and robotics. Students will work in teams, construct their ideas, and either pr
ENG-633: Supervising Students in ProjectsThe combination of practical and reflective activities in this course provide participants with evidence-informed teaching skills for supervising and evaluating students working on projects.
CS-206: Parallelism and concurrencyCourse no longer offered for new students; this edition is only a make-up course for those who repeated the year. Please log in with EPFL credentials and consult the mediaspace link below for course v
CS-322: Introduction to database systemsThis course provides a deep understanding of the concepts behind data management systems. It covers fundamental data management topics such as system architecture, data models, query processing and op
CS-309: Projet de systems-on-chipL'objectif de ce cours est de s'approprier les connaissances nécessaires pour réaliser du développement "full stack" depuis le hardware jusqu'au software application et s'exécutant sur un système d'ex