CS-428: Interactive theorem provingA hands-on introduction to interactive theorem proving, computer-checked mathematics, compiler verification, proofs as programs, dependent types, and proof automation.
Come learn how to write computer-checked proofs and certified bug-free code! ...
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 ...
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 ...
ME-443: Hydroacoustic for hydropower plantsIntroduction to pressure wave propagation phenomena in hydraulic circuits, water hammer calculations, transient behaviour of hydroelectric plants, 1D numerical simulation of the dynamic behaviour of Francis, Pelton and Kaplan turbines, and study of the sta ...
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 ...
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-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 ...
COM-502: Dynamical system theory for engineersLinear and nonlinear dynamical systems are found in all fields of science and engineering. After a short review of linear system theory, the class will explain and develop the main tools for the qualitative analysis of nonlinear systems, both in discrete-t ...
FIN-406: MacrofinanceThis course provides students with a working knowledge of macroeconomic models that explicitly incorporate financial markets. The goal is to develop a broad and analytical framework for analyzing the interaction of financial decisions, macroeconomic events ...
CS-628: Interactive Theorem Proving CSA hands-on introduction to interactive theorem proving, proofs as programs, dependent types, and to the Coq proof assistant. Come learn how to write bug-free code! ...
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 ...
MATH-604: Some Aspects of Calculus of VariationsThe goal of this course is to present an overview on the solvability and the regularity of relevant models of physical, technological and economical systems, which may be formulated as minimization problems of suitable integral functionals. ...
MATH-495: Mathematical quantum mechanicsQuantum mechanics is one of the most successful physical theories. This course presents the mathematical formalism (functional analysis and spectral theory) that underlies quantum mechanics. It is simultaneously an introduction to mathematical physics and ...