This course introduces the basics of cryptography. We review several types of cryptographic primitives, when it is safe to use them and how to select the appropriate security parameters. We detail how they work and sketch how they can be implemented. ...
In computational complexity we study the computational resources needed to solve problems and understand the relation between different types of computation.This course advances the students knowledge of computational complexity, and develop an understa ...
A 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 their own decentralized system featuring messaging, file sha ...
Machine learning methods are becoming increasingly central in many sciences and applications. In this course, fundamental principles and methods of machine learning will be introduced, analyzed and practically implemented. ...
Introduction to the path integral formulation of quantum mechanics. Derivation of the perturbation expansion of Green's functions in terms of Feynman diagrams. Several applications will be presented, including non-perturbative effects, such as tunneling an ...