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 ...
CS-119(c): Information, Computation, CommunicationL'objectif de ce cours est d'introduire les étudiants à la pensée algorithmique, de les familiariser avec les fondamentaux de l'Informatique et de développer une première compétence en programmation (langage C++). ...
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-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. ...
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-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. ...
MATH-611: Scientific programming for EngineersThe students will acquire a solid knowledge on the processes necessary to design, write and use scientific software. Software design techniques will be used to program a multi-usage particles code, aiming at providing the link between algorithmic/complexit ...
ME-213: Programmation pour ingénieurMettre en pratique les bases de la programmation vues au semestre précédent. Développer un logiciel structuré. Méthode de debug d'un logiciel. Introduction à la programmation scientifique. Introduction à l'instrumentation virtuelle. ...
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 ...
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. ...
CS-119(a): Information, Computation, CommunicationD'une part, le cours aborde: (1) la notion d'algorithme et de représentation de l'information, (2) l'échantillonnage d'un signal et la compression de données et (3) des aspects
liés aux systèmes: ordinateur, mémoire, etc. D'autre part, le cours donne une i ...
AR-480: UE X : Experience designExperience Design examines the effects of digitalization on architectural typologies in the contemporary city. The course questions traditional typologies by focusing on an understanding and re-design of social, geographic, temporal and emotional experienc ...
EE-361: Electrical machines (for EL)L'objectif de ce cours est d'acquérir les connaissances de base liées aux machines électriques (conversion électromécanique). Le cours porte sur le circuit magnétique, le transformateur, les machines synchrones, asynchrones, à courant continu et les moteur ...
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-471: Economic growth and sustainability IThis course examines growth from various angles: economic growth, growth in the use of resources, need for growth, limits to growth, sustainable growth, population growth. Although grounded in economics, it takes up elements from many other disciplines. ...
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 ...
EE-530: Test of VLSI systemsTest of VLSI Systems covers theoretical knowledge related to the major algorithms used in VLSI test, and design for test techniques. Basic knowledge related to computer-aided design for test techniques, and their integration into a design-flow are presente ...
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 ...