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 ...
EE-320: Analog IC designIntroduction to the design of analog CMOS integrated circuits at the transistor level. Understanding and design of basic structures. ...
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. ...
MSE-305: Introduction to atomic-scale modelingThis course provides an introduction to the modeling of matter at the atomic scale, using interactive Jupyter notebooks to see several of the core concepts of materials science in action. ...
ME-373: Finite element modelling and simulationL'objectif de ce cours est d'apprendre à réaliser de manière rigoureuse et critique des analyses par éléments finis de problèmes concrets en mécanique des solides à l'aide d'un logiciel CAE moderne. ...
HUM-274: Musical theory and creativityThis course provides an introduction into music theory and analysis, composition, and creativity, and combines theoretical teaching with hands-on practical exercises and music making. ...
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 ...
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 ...
CS-107: Introduction to programmingCe cours aborde les concepts fondamentaux de la programmation et de la programmation orientée objet (langage JAVA). Il permet également de se familisarier avec un environnement de développement informatique (par défaut sous Unix). ...
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-423: Distributed information systemsThis course introduces the foundations of information retrieval, data mining and knowledge bases, which constitute the foundations of today's Web-based distributed information systems. ...
CS-452: Foundations of softwareThe course introduces the foundations on which programs and programming languages are built. It introduces syntax, types and semantics as building blocks that together define the properties of a program part or a language. Students will learn how to apply ...
AR-365: Theory and architectural cultureLe cours offre un résumé de la théorie et la culture architecturales depuis 1789 dans le monde occidentale. Le but est de comprendre des textes dans lesquels l'architecture est définie comme une discipline synthétisant une variété de thèmes (sociales, arti ...
CS-210: Functional programmingUnderstanding of the principles and applications of functional programming, the fundamental models of program
execution, application of fundamental methods of program composition, meta-programming through the construction of
interpreters and advanced progr ...
CS-422: Database systemsThis course is intended for students who want to understand modern large-scale data analysis systems and database systems. It covers a wide range of topics and technologies, and will prepare students to be able to build such systems as well as read and und ...