290C - Logic, Computation, and Programming Languages

This course will examine the close connection between formal logic, computation, and programming languages. The two primary areas of investigation will be (1) various systems of formal logic and their connection to different type systems via the Curry-Howard Correspondence; and (2) various fragments of first-order logic and their connection to logic programming languages. The class will involve both understanding the theory behind these connections and implementing these ideas in practice. A basic knowledge of first-order logic is assumed, but a deep background in logic is not required.

290G - Foundation of Cryptography

Cryptography provides important tools for ensuring the security of modern digital systems and the privacy of the sensitive information involved in them. Nowadays, core cryptographic tools, such as, encryption, digital signature, key agreement protocols, are used behind millions of daily online transactions. This course will give an introduction to the development and application of cryptographic tools.

290B - Scalable Internet Services

This course explores advanced topics in highly scalable Internet services and the underlying systems architecture. Large scale web sites and software delivered as a service are becoming pervasive, and are running on millions of servers. Web 2.0 has redefined the web user experience and new infrastructure technologies have redefined what it takes to launch a state-of-the-art web site. Amazon's web services, such as Simple Storage Service (S3) and Elastic Compute Cloud (EC2), and Google's Compute Engine are changing the game for hosting scalable fault-tolerant sites.