CMPSC 291A Real-Time High Quality Rendering

One of the perennial goals of computer graphics is creating high quality images which are indistinguishable from photographs: a goal referred to as photorealism. Another important goal is interactivity for visualization, simulation, gaming and other real-time applications. These two goals have historically been at odds with each other. In this course, we will review the history and some of the recent ideas that seek to bridge the gap between realism and interactivity. We will focus on the use of complex lighting and shading within limited computation time.

CMPSC 293G Security and Cryptography

The course will cover techniques to compute on encrypted data, particularly homomorphic encryption, both partial homomorphic encryption, and fully homomorphic encryption. The course will have a large theory component. However, it will also discuss how homomorphic encryption is applied to real systems such as databases, media streaming services, anonymous messaging services, and machine learning systems. The course will be structured around paper readings, class discussions, high-quality paper review writing, and perhaps an individual research project.

CMPSC 292A Algorithmic Graph Theory

Graphs are a remarkably versatile combinatorial object, used to model social, neural, road and computer networks, execution flow of programs, relations in databases, and countless other things. In this class we will investigate computational problems whose inputs are graphs, and how algorithms for such problems can exploit the structure of the input graph to improve performance. The focus will be on provable worst-case running time performance of our algorithms. On the way the class will expose students to some of the modern structural graph theory.

CMPSC 291A Future User Interfaces

In this course, we will examine upcoming user interface technologies that will impact how we interact with our devices and digital content in the future. These include: immersive technologies (augmented and virtual reality), physiological interfaces (e.g., brain and body interfaces), wearable computing (e.g., devices both for reading and writing data to the user's body), multisensory and multimodal interactions in mixed, augmented and virtual realities (e.g., spatial audio, body movement), haptics (e.g., force feedback, sensing weight, feeling textures), and others.

CMPSC 291A (Hollerer): 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 smartphones and because of its unique approach of offering context-based computing directly in a person's field of vision. 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.

CMPSC 291A (Bryce Boe): Scalable Internet Services

This course explores advanced topics in highly scalable Internet services and their underlying systems architecture. Software today is primarily delivered as a service: accessible globally via web browsers and mobile applications and backed by millions of servers. Modern web frameworks (e.g., Ruby on Rails, Django, and Express), and continuous improvements to cloud providers (e.g., Amazon Web Services, Google Cloud Platform, and Microsoft Azure) make it increasingly easier to build and deploy these systems.

CMPSC 291A (William Wang): Deep Learning

Deep learning has revolutionized many areas within AI, and it is on track to fundamentally transform many other industries. DeepMind's AlphaGo combined convolutional neural networks together with deep reinforcement learning and MCTS, and won many games against top human Go players. In computer vision, most of the leading systems in ImageNet competitions are based on deep neural networks.