CS 293N: ML For Networked Systems

In recent years, we have witnessed the widespread usage of ML tools for various classification, detection, and control problems. More recently, we have witnessed the use of ML for various networking problems as well. However, operationalizing ML solutions for networked systems is more nuanced than simply calibrating existing tools, developed for other domains (image classification, NLP, etc.). More in-depth exploration to develop flexible, scalable, and generalizable ML-based networked systems.

CS 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: 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. Programming experience in Python/C#/C++ is required.

CS 292C: Formal Semantics and Type Systems

This course will investigate the formal specification of programming languages, focusing on their semantics (the behavior of a program when it is executed) and type systems (providing a static guarantee about how a well-typed program will behave), and connecting the two via a formal proof of type system soundness (i.e., that the guarantee provided by a type system correctly describes program behavior according to the programming language semantics).

CS 292G: Graduate Course in Cryptography

Recent breakthrough of "quantum supremacy" by Google has brought us one step closer to building quantum computers that pose a threat to secure systems being used in practice. The main goal of this course is to study the theory of post-quantum cryptographic systems -- those that are secure even if quantum computers come into existence. We will introduce different types of cryptographic schemes and show how to build them from mathematical assumptions that resist known quantum attacks.

CS 291I: Bionic Vision

What would the world look like with a bionic eye? This graduate course will introduce students to the multidisciplinary field of bionic vision, with an emphasis on both the computer science and neuroscience of the field. The course will give an overview of current bionic eye technology designed to restore vision to people living with incurable blindness.

CS 293G: Computing on Encrypted Data

The course will cover systems that handle and compute on encrypted data: databases that work over encrypted data, media streaming services that work on encrypted client requests, email services, anonymous messaging services, ML systems that perform training and inference on encrypted data, and so on. There are no official prerequisites; however, background in systems and/or cryptography will be very helpful. The course will be structured around paper readings, class discussions, high-quality paper review writing, quizzes, and perhaps an individual research project.