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 in
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 progr
MATH-410: Riemann surfacesThis course is an introduction to the theory of Riemann surfaces. Riemann surfaces naturally appear is mathematics in many different ways: as a result of analytic continuation, as quotients of complex
MATH-261: Discrete optimizationThis course is an introduction to linear and discrete optimization.
Warning: This is a mathematics course! While much of the course will be algorithmic in nature, you will still need to be able to p
HUM-224: Graphic Design - Illustrative approachLe cours vise à faire découvrir les bases du design graphique, ses enjeux, ses différents domaines d'application, ses techniques et ses conventions. Il s'agit d'un enseignement pratique qui repose sur
AR-525: Marvelous ArchitectureCe cours explore une définition spécifique de la rationalité architecturale, en empruntant au surréalisme et à l'épistémologie de Bachelard pour tenter de comprendre la manière dont les formes archite