Special Topic Courses (290) & Graduate Seminars (595)

CS 291I: Bionic Vision

Quarter: 
Winter 2020
Course area: 
Applications
Location: 
Phelps 3526
Day and time: 
Tuesday and Thursday 9-10:50 AM
Units: 
4

Description

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. Students will be exposed to the neuroscience of the human visual system, key engineering concepts for designing a brain-computer interface, and computational principles underlying the encoding of a visual scene into an artificial stimulus that the brain can interpret. We will cover recent advances in theory and applications, and discuss outstanding challenges with existing devices. The course will conclude with a team project giving students the opportunity to gain hands-on experience of working on open problems in the field using methods and tools best suited to their scientific background. The course is targeted to a diverse audience spanning from computer science (human factors, computer vision, neural networks) to psychology (vision, psychophysics) and brain sciences (computational neuroscience, neuroengineering).

CS 291I: Future User Interfaces

Quarter: 
Winter 2020
Course area: 
Applications
Location: 
Phelps 2510
Day and time: 
Tuesday and Thursday 11-12:50 PM
Enrollment code: 
08607
Units: 
4

Description

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

Quarter: 
Winter 2020
Course area: 
Foundations
Location: 
Phelps 3526
Day and time: 
Tuesday and Thursday 3-4:50 PM
Enrollment code: 
58453
Units: 
4

Description

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). We will start by examining some simple semantics and type systems to illustrate the theoretical concepts, then students will define their own projects in which they will extend this simple language to be more expressive in some manner determined by the student and approved by the instructor, while proving that the extensions are sound. Examples of possible extensions include enforcing security properties via secure type systems, verifying program properties via dependent types, enforcing communication protocols via session types, exploring unconventional language abstractions, etc. The projects are expected to include executable implementations of language interpreters and type checkers. Most class lectures will involve students presenting concepts from their projects to the rest of the class.

Recommended textbook: Benjamin Pierce, "Types and Programming Languages"

CS 293G: Computing on Encrypted Data

Quarter: 
Winter 2020
Course area: 
Systems
Location: 
Phelps 2510
Day and time: 
Monday and Wednesday 1-2:50PM
Enrollment code: 
58479
Units: 
4

Description

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. It will fall under systems. Course website from the Spring 19' edition of the course is here: https://sites.cs.ucsb.edu/~trinabh/classes/s19/index.html

CS 293N: ML For Networked Systems

Quarter: 
Winter 2020
Course area: 
Networking
Location: 
Phelps
Day and time: 
Tuesday and Thursday 5-6:50 PM
Enrollment code: 
58487
Units: 
4

Description

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. In this course, we will cover recent research, published at top networked systems (USENIX NSDI, ACM SIGCOMM) and ML conferences (NeurIPS, ICML, etc.), that developed new ML tools/techniques for networked systems. In the process, we will learn how to identify problems that can (or cannot) benefit from ML, decide which tool/algorithm to use, and how to do interdisciplinary research covering networking, ML, and systems.

There are no official prerequisites; however, a basic familiarity with networking, ML, and distributed systems concepts will be very helpful. The course will be structured around paper readings, class discussions, high-quality paper review writing, quizzes, and a term-long individual (or group) research project. The class will cover approximately 10-12 research papers. Students are expected to read papers before the class, write reviews, and participate in the discussions during the class.