CS 232: Digital Image Processing (EE 368)
Image sampling and quantization color, point operations, segmentation, morphological image processing, linear image filtering and correlation, image transforms, eigenimages, multiresolution image processing, noise reduction and restoration, feature extraction and recognition tasks, image registration. Emphasis is on the general principles of image processing. Students learn to apply material by implementing and investigating image processing algorithms in Matlab and optionally on Android mobile devices. Term project. Recommended:
EE261,
EE278.
Terms: Win

Units: 3

Grading: Letter (ABCD/NP)
CS 233: Geometric and Topological Data Analysis (CME 251)
Mathematical computational tools for the analysis of data with geometric content, such images, videos, 3D scans, GPS traces  as well as for other data embedded into geometric spaces. Global and local geometry descriptors allowing for various kinds of invariances. The rudiments of computational topology and persistent homology on sampled spaces. Clustering and other unsupervised techniques. Spectral methods for geometric data analysis. Nonlinear dimensionality reduction. Alignment, matching, and map computation between geometric data sets. Function spaces and functional maps.Networks of data sets and joint analysis for segmentation and labeling. The emergence of abstractions or concepts from data. Prerequisites: discrete algorithms at the level of 161; linear algebra at the level of
CME103.
Terms: not given this year, last offered Spring 2018

Units: 3

Grading: Letter or Credit/No Credit
CS 234: Reinforcement Learning
To realize the dreams and impact of AI requires autonomous systems that learn to make good decisions. Reinforcement learning is one powerful paradigm for doing so, and it is relevant to an enormous range of tasks, including robotics, game playing, consumer modeling and healthcare. This class will briefly cover background on Markov decision processes and reinforcement learning, before focusing on some of the central problems, including scaling up to large domains and the exploration challenge. One key tool for tackling complex RL domains is deep learning and this class will include at least one homework on deep reinforcement learning. Prerequisites: proficiency in python,
CS 229 or equivalents or permission of the instructor; linear algebra, basic probability.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
Instructors:
Brunskill, E. (PI)
;
Cho, P. (TA)
;
Darke, E. (TA)
;
Gupta, A. (TA)
;
Keramati, R. (TA)
;
Liu, B. (TA)
;
Seshadri, S. (TA)
;
Sidrane, C. (TA)
;
Whang, J. (TA)
;
Wu, Y. (TA)
;
Zanette, A. (TA)
CS 236: Deep Generative Models
Generative models are widely used in many subfields of AI and Machine Learning. Recent advances in parameterizing these models using neural networks, combined with progress in stochastic optimization methods, have enabled scalable modeling of complex, highdimensional data including images, text, and speech. In this course, we will study the probabilistic foundations and learning algorithms for deep generative models, including Variational Autoencoders (VAE), Generative Adversarial Networks (GAN), and flow models. The course will also discuss application areas that have benefitted from deep generative models, including computer vision, speech and natural language processing, and reinforcement learning. Prerequisites: Basic knowledge about machine learning from at least one of
CS 221, 228, 229 or 230. Students will work with computational and mathematical models and should have a basic knowledge of probabilities and calculus. Proficiency in some programming language, preferably Python, required.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
Instructors:
Ermon, S. (PI)
;
Grover, A. (PI)
;
Choi, K. (TA)
;
Chu, C. (TA)
;
Khandwala, N. (TA)
;
Shu, R. (TA)
;
Song, J. (TA)
;
Song, Y. (TA)
CS 238: Decision Making under Uncertainty (AA 228)
This course is designed to increase awareness and appreciation for why uncertainty matters, particularly for aerospace applications. Introduces decision making under uncertainty from a computational perspective and provides an overview of the necessary tools for building autonomous and decisionsupport systems. Following an introduction to probabilistic models and decision theory, the course will cover computational methods for solving decision problems with stochastic dynamics, model uncertainty, and imperfect state information. Topics include: Bayesian networks, influence diagrams, dynamic programming, reinforcement learning, and partially observable Markov decision processes. Applications cover: air traffic control, aviation surveillance systems, autonomous vehicles, and robotic planetary exploration. Prerequisites: basic probability and fluency in a highlevel programming language.
Terms: Aut

Units: 34

Grading: Letter or Credit/No Credit
Instructors:
Kochenderfer, M. (PI)
;
Carroll, H. (TA)
;
Choudhury, S. (TA)
...
more instructors for CS 238 »
Instructors:
Kochenderfer, M. (PI)
;
Carroll, H. (TA)
;
Choudhury, S. (TA)
;
Dressel, L. (TA)
;
Gupta, J. (TA)
;
Ma, X. (TA)
;
Menda, K. (TA)
;
Morton, J. (TA)
CS 239: Advanced Topics in Sequential Decision Making (AA 229)
Survey of recent research advances in intelligent decision making for dynamic environments from a computational perspective. Efficient algorithms for single and multiagent planning in situations where a model of the environment may or may not be known. Partially observable Markov decision processes, approximate dynamic programming, and reinforcement learning. New approaches for overcoming challenges in generalization from experience, exploration of the environment, and model representation so that these methods can scale to real problems in a variety of domains including aerospace, air traffic control, and robotics. Students are expected to produce an original research paper on a relevant topic. Prerequisites:
AA 228/
CS 238 or
CS 221.
Terms: not given this year, last offered Winter 2018

Units: 34

Grading: Letter or Credit/No Credit
CS 240: Advanced Topics in Operating Systems
Recent research. Classic and new papers. Topics: virtual memory management, synchronization and communication, file systems, protection and security, operating system extension techniques, fault tolerance, and the history and experience of systems programming. Prerequisite: 140 or equivalent.
Terms: Spr

Units: 3

Repeatable for credit

Grading: Letter or Credit/No Credit
Instructors:
Engler, D. (PI)
CS 241: Embedded Systems Workshop (EE 285)
Projectcentric building hardware and software for embedded computing systems. Students work on an existing project of their own or join one of these projects. Syllabus topics will be determined by the needs of the enrolled students and projects. Examples of topics include: interrupts and concurrent programming, deterministic timing and synchronization, statebased programming models, filters, frequency response, and highfrequency signals, low power operation, system and PCB design, security, and networked communication. Prerequisite:
CS107 (or equivalent).
Terms: not given this year, last offered Autumn 2017

Units: 2

Repeatable for credit

Grading: Letter or Credit/No Credit
CS 242: Programming Languages
This course explores models of computation, both old, like functional programming with the lambda calculus (circa 1930), and new, like memorysafe systems programming with Rust (circa 2010). Topics include type systems (polymorphism, algebraic data types, static vs. dynamic), control flow (exceptions, continuations), concurrency/parallelism, metaprogramming, and the semantic gap between computational models and modern hardware. The study of programming languages is equal parts systems and theory, looking at how a rigorous understanding of the syntax, structure, and semantics of computation enables formal reasoning about the behavior and properties of complex realworld systems. In light of today's Cambrian explosion of new programming languages, this course also seeks to provide a conceptual clarity on how to compare and contrast the multitude of programming languages, models, and paradigms in the modern programming landscape. Prerequisites: 103, 110.
Terms: Aut

Units: 34

Grading: Letter or Credit/No Credit
CS 243: Program Analysis and Optimizations
Program analysis techniques used in compilers and software development tools to improve productivity, reliability, and security. The methodology of applying mathematical abstractions such as graphs, fixpoint computations, binary decision diagrams in writing complex software, using compilers as an example. Topics include data flow analysis, instruction scheduling, register allocation, parallelism, data locality, interprocedural analysis, and garbage collection. Prerequisites: 103 or 103B, and 107.
Terms: Win

Units: 34

Grading: Letter or Credit/No Credit
Filter Results: