290I - Special Topics in Image Synthesis

Image synthesis is the process of generating an image from a scene
description and is one of the fundamental problems in computer graphics.
This course focuses on the theory of image synthesis as applied in modern
film studios today, and covers both high-end scanline rendering algorithms
as well as physically-based rendering systems such as ray tracing and
radiosity methods.

Topics include radiometry, the REYES algorithm and Renderman API,
stochastic ray tracing, the Rendering Equation, Monte Carlo integration,

290I - Mixed and Augmented Reality

Mixed and Augmented Reality, an active research field since the 1990s, has recently gained significant popularity because of the possibility of being implemented on smart phones. Many people see it as one of the most important computer interfaces in the future of computing. Augmented Reality is the concept of overlaying computer-generated information on top of the physical world. Mixed Reality is a bit broader and subsumes the fields of Augmented Reality, Augmented Virtuality, and Virtual Reality. This class provides a hands-on introduction to these novel interface technologies.

290I - Mobile Imaging

Mobile imaging is becoming increasingly important in computer- and communication-related fields. As the computational power and bandwidth of mobile devices increase, more and more use is being made of images, video, and 3D in a wide range of applications and environments. Mobile computing and imaging are central to communications, entertainment, human-computer interaction, medicine, meteorology, space exploration, etc.

290G - Research Topics in Cryptography

This class will study current research topics in cryptography. In this edition, we will focus on the applied side of cryptography, i.e., we will look at the research surrounding cryptographic methods that are either currently in use, or that are candidates for future deployment. We will adopt a rigorous lens, learning to reason formally about security requirements, and whether these goals are achieved.

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.