CS-453: Concurrent computingWith the advent of modern architectures, it becomes crucial to master the underlying algorithmics of concurrency. The objective of this course is to study the foundations of concurrent algorithms 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 in
CS-438: Decentralized systems engineeringA decentralized system is one that works when no single party is in charge or fully trusted. This course teaches decentralized systems principles while guiding students through the engineering of thei
CS-208: Computer architecture IThe course introduces the students to the basic notions
of computer architecture and, in particular, to the
choices of the Instruction Set Architecture and to the
memory hierarchy of modern systems.
CS-322: Introduction to database systemsThis course provides a deep understanding of the concepts behind data management systems. It covers fundamental data management topics such as system architecture, data models, query processing and op
CS-305: Software engineeringThis course teaches the basics of modern software development: designing software, working in a team, writing good code, shipping software, and evolving software. It emphasizes building software that
CS-449: Systems for data scienceThe course covers fundamental principles for understanding and building systems for managing and analyzing large amounts of data.
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