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.

CS 291I: Computational Systems for Visual Art and Design

Computational systems of rules, relationships, and behaviors can extend traditional art and design practices or support new creative workflows and outcomes. In this course, we will explore the creation of computational systems for visual art and design. Following a studio format, we will learn creative coding platforms and algorithms to create visual works that are flexible, dynamic, and generative. In the process, we will touch on the design philosophy and abstractions of existing creative coding platforms and examine methods to create alternatives.

CS 291A: Scalable Internet Services

This course explores advanced topics in highly scalable Internet services and their underlying systems architecture. Software today is increasingly being delivered as a service: accessible globally via web browsers and mobile applications and backed by millions of servers. Modern frameworks and platforms are making it easier to build and deploy these systems, such as Ruby on Rails and Amazon’s EC2. Yet despite these advances, some concerns just don’t go away.

CS 292C: Computer-Aided Reasoning for Software

This is a graduate-level introduction to automated reasoning techniques and their application in tools for the design, analysis, and synthesis of software. In the first half of the course, we will study the logical foundations and algorithms behind modern SAT solvers, SMT solvers, and finite model finders. In the second half of the course, we will apply these techniques to automatic bug finding, program verification, and program synthesis.

CS 291K: Introduction to Deep Learning

CS291K is a graduate-level introductory course to machine learning, in particular deep learning and will cover mostly DL topics developed in the past 4 to 5 years. While previous exposure to pattern recognition, machine learning, artificial intelligence and neural networks is not required, older topics (more than 4 or 5 years old) will not be discussed in any detail. Graduate-level preparation in math (especially probability, random processes, and linear algebra) is a must and students should know how to program in Python.

CS 293S: Internet of Things


Course Description: In this course students learn basics about the Internet of Things, what it is, why this is happening now and a number of important software platforms, protocols (e.g. MQTT or CoAP) as well as important application verticals such as smart city, eHealth and smart agriculture.
Area: Systems
 

CS 292F: Quantum Information and Quantum Computation

This course gives an 
introduction to quantum computing with an emphasis on the computer science part of the field. 
Topics that will be covered are: elementary quantum mechanics, quantum information, quantum gates and circuits, quantum circuit complexity, teleportation, quantum cryptography, Shor's quantum algorithm for factoring integers and discrete logarithms, Grover's quantum searching algorithm, lower bounds in quantum computation, and the future of the field