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-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
CS-412: Software securityThis course focuses on software security fundamentals, secure coding guidelines and principles, and advanced software security concepts. Students learn to assess and understand threats, learn how to d
CS-510: Topics in software securityMemory corruption and type safety flaws dominate the threat landscape. We will approach current research
from three dimensions: sanitization (finding flaws through runtime monitors); fuzzing (testing
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-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
AR-638: Sensing Like a (Multipli)CityA hands-on approach on how sensing works is complemented with theoretical insights to reflect on the critical zones opened up for urban research by the expansion of coded environments, providing the s
HUM-485: Data in context: Critical Data Studies ILe cours "Critical Data Studies" s'inscrit dans la nouvelle offre d'enseignements TILT qui propose de croiser des savoirs provenant des SHS et des sciences de l'ingénieur afin d'aborder des thématique