CS 1U:
Practical Unix
A practical introduction to using the Unix operating system with a focus on Linux command line skills. Class will consist of video tutorials and weekly handson lab sections. Topics include: grep and regular expressions, ZSH, Vim and Emacs, basic and advanced GDB features, permissions, working with the file system, revision control, Unix utilities, environment customization, and using Python for shell scripts. Topics may be added, given sufficient interest. Course website: http://cs1u.stanford.edu
Terms: Aut, Win, Spr

Units: 1

Grading: Satisfactory/No Credit
CS 11SI:
How to Make VR: Introduction to Virtual Reality Design and Development
In this handson, experiential course, students will design and develop virtual reality applications. You'll learn how to use the Unity game engine, the most popular platform for creating immersive applications. The class will teach the design bestpractices and the creation pipeline for VR applications, and will include tangents that explore sister fields such as augmented reality and 360 video. Students will work in groups to present a final project in building an application for the Oculus Go headset. Enrollment is limited and by rolling application only. Prerequisite: CS 106A or equivalent.
Terms: Aut, Win

Units: 2

Grading: Satisfactory/No Credit
CS 22A:
The Social & Economic Impact of Artificial Intelligence (INTLPOL 200)
(Formerly IPS 200.) Recent advances in computing may place us at the threshold of a unique turning point in human history. Soon we are likely to entrust management of our environment, economy, security, infrastructure, food production, healthcare, and to a large degree even our personal activities, to artificially intelligent computer systems. The prospect of "turning over the keys" to increasingly autonomous systems raises many complex and troubling questions. How will society respond as versatile robots and machinelearning systems displace an everexpanding spectrum of blue and whitecollar workers? Will the benefits of this technological revolution be broadly distributed or accrue to a lucky few? How can we ensure that these systems respect our ethical principles when they make decisions at speeds and for rationales that exceed our ability to comprehend? What, if any, legal rights and responsibilities should we grant them? And should we regard them merely as sophisticated tools or as a newly emerging form of life? The goal of CS22 is to equip students with the intellectual tools, ethical foundation, and psychological framework to successfully navigate the coming age of intelligent machines.
Terms: Win

Units: 1

Grading: Satisfactory/No Credit
CS 43:
Functional Programming Abstractions
This course explores the philosophy and fundamentals of functional programming, with a focus on the Haskell and Clojure programming languages. Topics include: functional abstractions (function composition, higher order functions), immutable data structures, type systems, Lisp macros, homoiconicity, and monads. The course interweaves a theoretical description of fundamentals with handson projects in Haskell and Clojure. Prerequisites: CS107 (or equivalent experience)
Terms: Win

Units: 2

Grading: Satisfactory/No Credit
CS 51:
CS + Social Good Studio: Designing Social Impact Projects
Introduces students to the tech + social good space. Students work in small teams to develop highimpact projects around problem domains provided by partner organizations, under the guidance and support of design/technical coaches from industry and nonprofit domain experts. Main class components are workshops, community discussions, guest speakers and mentorship. Studio provides an outlet for students to create social change through CS while engaging in the full product development cycle on realworld projects. The class culminates in a showcase where students share their project ideas and Minimum Viable Product prototypes with stakeholders and the public. Prerequisite: CS 147, equivalent experience, or consent of instructors.
Terms: Win

Units: 2

Grading: Satisfactory/No Credit
CS 56N:
Great Discoveries and Inventions in Computing
This seminar will explore some of both the great discoveries that underlie computer science and the inventions that have produced the remarkable advances in computing technology. Key questions we will explore include: What is computable? How can information be securely communicated? How do computers fundamentally work? What makes computers fast? Our exploration will look both at the principles behind the discoveries and inventions, as well as the history and the people involved in those events. Some exposure to programming will be helpful, but it not strictly necessary.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 58:
You Say You Want a Revolution (Blockchain Edition)
This projectbased course will give creative students an opportunity to work together on revolutionary change leveraging blockchain technology. The course will provide opportunities for students to become operationally familiar with blockchain concepts, supported by presentation of blockchain fundamentals at a level accessible to those with or without a strong technical background. Specific topics include: incentives, ethics, cryptocommons, values, FOMO 3D, risks, implications and social good. Students will each discover a new possible usecase for blockchain and prototype their vision for the future accordingly. Application and impact areas may come from medicine, law, economics, history, anthropology, or other sectors. Student diversity of background will be valued highly.
Terms: Win

Units: 2

Grading: Letter or Credit/No Credit
CS 83:
Playback Theater For Research
Playback combines elements of theater, community work and storytelling. In a playback show, a group of actors and musicians create an improvised performance based on the audience's personal stories. A playback show brings about a powerful listening and sharing experience. During the course, we will tell, listen, play together, and train in playback techniques. We will write diaries to process our experience in the context of education and research. The course is aimed to strengthen listening abilities, creativity and the collaborative spirit, all integral parts of doing great science. In playback, as in research, we are always moving together, from the known, to the unknown, and back. There is limited enrollment for this class. Application is required.
Terms: Win

Units: 3

UG Reqs: WAYCE

Grading: Letter or Credit/No Credit
CS 100A:
Problemsolving Lab for CS106A
Additional problem solving practice for the introductory CS course CS 106A. Sections are designed to allow students to acquire a deeper understanding of CS and its applications, work collaboratively, and develop a mastery of the material. Limited enrollment, permission of instructor required. Concurrent enrollment in CS 106A required.
Terms: Win, Spr

Units: 1

Grading: Satisfactory/No Credit
CS 100B:
Problemsolving Lab for CS106B
Additional problem solving practice for the introductory CS course CS106B. Sections are designed to allow students to acquire a deeper understanding of CS and its applications, work collaboratively, and develop a mastery of the material. Limited enrollment, permission of instructor required. Concurrent enrollment in CS 106B required.
Terms: Win, Spr

Units: 1

Grading: Satisfactory/No Credit
CS 102:
Big Data  Tools and Techniques
Aimed at nonCS undergraduate and graduate students who want to learn the basics of big data tools and techniques and apply that knowledge in their areas of study. Many of the world's biggest discoveries and decisions in science, technology, business, medicine, politics, and society as a whole, are now being made on the basis of collecting and analyzing large volumes of data. At the same time, it is surprisingly easy to make errors or come to false conclusions from data analysis alone. This course provides a broad and practical introduction to big data: data analysis techniques including databases, data mining, and machine learning; data analysis tools including spreadsheets, relational databases and SQL, Python, and R; data visualization techniques and tools; pitfalls in data collection and analysis. Tools and techniques are handson but at a cursory level, providing a basis for future exploration and application. Prerequisites: comfort with basic logic and mathematical concepts, along with high school AP computer science, CS106A, or other equivalent programming experience.
Terms: Win

Units: 34

UG Reqs: WAYAQR

Grading: Letter or Credit/No Credit
CS 103:
Mathematical Foundations of Computing
What are the theoretical limits of computing power? What problems can be solved with computers? Which ones cannot? And how can we reason about the answers to these questions with mathematical certainty? This course explores the answers to these questions and serves as an introduction to discrete mathematics, computability theory, and complexity theory. At the completion of the course, students will feel comfortable writing mathematical proofs, reasoning about discrete structures, reading and writing statements in firstorder logic, and working with mathematical models of computing devices. Throughout the course, students will gain exposure to some of the most exciting mathematical and philosophical ideas of the late nineteenth and twentieth centuries. Specific topics covered include formal mathematical proofwriting, propositional and firstorder logic, set theory, binary relations, functions (injections, surjections, and bijections), cardinality, basic graph theory, the pigeonhole principle, mathematical induction, finite automata, regular expressions, the MyhillNerode theorem, contextfree grammars, Turing machines, decidable and recognizable languages, selfreference and undecidability, verifiers, and the P versus NP question. Students with significant proofwriting experience are encouraged to instead take CS154. Students interested in extra practice and support with the course are encouraged to concurrently enroll in CS103A. Prerequisite: CS106B or equivalent. CS106B may be taken concurrently with CS103.
Terms: Aut, Win, Spr

Units: 35

UG Reqs: GER:DBMath, WAYFR

Grading: Letter or Credit/No Credit
Instructors: ;
Lee, C. (PI);
Schwarz, K. (PI);
Alvarez, J. (TA);
Brickner, A. (TA);
Hoag, E. (TA);
Kravitz, J. (TA);
Le, T. (TA);
MayerHirshfeld, R. (TA);
Melloni, J. (TA);
Noyola, T. (TA);
Saini, D. (TA);
Saleh, M. (TA);
Smith, R. (TA);
Sriram, P. (TA);
Zhu, M. (TA)
CS 106A:
Programming Methodology (ENGR 70A)
Introduction to the engineering of computer applications emphasizing modern software engineering principles: objectoriented design, decomposition, encapsulation, abstraction, and testing. Emphasis is on good programming style and the builtin facilities of respective languages. No prior programming experience required. Summer quarter enrollment is limited. Alternative versions of CS106A may be available which cover most of the same material but in different programming languages.
Terms: Aut, Win, Spr, Sum

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

Grading: Letter or Credit/No Credit
CS 106AP:
Programming Methodology in Python
Introduction to the engineering of computer applications in Python, emphasizing modern software engineering principles: decomposition, abstraction, testing and good programming style. This course covers most of the same material as the other versions of CS106A, but using the Python programming language which is popular for general engineering and web development. Required readings will all be available for free on the web. Students are encouraged to bring a laptop to lecture to do the live exercises which are integrated with lecture. No prior programming experience required. To enroll in this class, enroll in CS 106A Section 3.
Terms: Win, Spr

Units: 35

Grading: Letter or Credit/No Credit
CS 106B:
Programming Abstractions (ENGR 70B)
Abstraction and its relation to programming. Software engineering principles of data abstraction and modularity. Objectoriented programming, fundamental data structures (such as stacks, queues, sets) and datadirected design. Recursion and recursive data structures (linked lists, trees, graphs). Introduction to time and space complexity analysis. Uses the programming language C++ covering its basic facilities. Prerequisite: 106A or equivalent. Summer quarter enrollment is limited.
Terms: Aut, Win, Spr, Sum

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

Grading: Letter or Credit/No Credit
CS 106S:
Coding for Social Good
Survey course on applications of fundamental computer science concepts from CS 106B/X to problems in the social good space (such as health, government, education, and environment). Each week consists of inclass activities designed by student groups, local tech companies, and nonprofits. Introduces students to JavaScript and the basics of web development. Topics have included mental health chatbots, tumor classification with basic machine learning, sentiment analysis of tweets on refugees, and storytelling through virtual reality. Corequisite: 106B or 106X.
Terms: Aut, Win, Spr

Units: 1

Grading: Satisfactory/No Credit
CS 106X:
Programming Abstractions (Accelerated) (ENGR 70X)
Intensive version of 106B for students with a strong programming background interested in a rigorous treatment of the topics at an accelerated pace. Significant amount of additional advanced material and substantially more challenging projects. Some projects may relate to CS department research. Prerequisite: excellence in 106A or equivalent, or consent of instructor.
Terms: Aut, Win

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

Grading: Letter or Credit/No Credit
CS 107:
Computer Organization and Systems
Introduction to the fundamental concepts of computer systems. Explores how computer systems execute programs and manipulate data, working from the C programming language down to the microprocessor. Topics covered include: the C programming language, data representation, machinelevel code, computer arithmetic, elements of code compilation, memory organization and management, and performance evaluation and optimization. Prerequisites: 106B or X, or consent of instructor.
Terms: Aut, Win, Spr

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

Grading: Letter or Credit/No Credit
Instructors: ;
Lee, C. (PI);
Troccoli, N. (PI);
Cherivirala, S. (TA);
Culberg, K. (TA);
Lam, M. (TA);
Ling, E. (TA);
Marx, E. (TA);
Penkov, P. (TA);
Plattner, C. (TA);
Rashid, R. (TA);
VazquezGuzman, R. (TA);
Wegrzynski, M. (TA)
CS 107A:
Problemsolving Lab for CS107
Additional problem solving practice for the introductory CS course CS107. Sections are designed to allow students to acquire a deeper understanding of CS and its applications, work collaboratively, and develop a mastery of the material. Limited enrollment, permission of instructor required. Concurrent enrollment in CS 107 required.
Terms: Win, Spr

Units: 1

Grading: Satisfactory/No Credit
CS 107E:
Computer Systems from the Ground Up
Introduction to the fundamental concepts of computer systems through bare metal programming on the Raspberry Pi. Explores how five concepts come together in computer systems: hardware, architecture, assembly code, the C language, and software development tools. Students do all programming with a Raspberry Pi kit and several addons (LEDs, buttons). Topics covered include: the C programming language, data representation, machinelevel code, computer arithmetic, compilation, memory organization and management, debugging, hardware, and I/O. Prerequisite: 106B or X, and consent of instructor. There is a $75 required course fee.
Terms: Aut, Win

Units: 35

UG Reqs: WAYFR

Grading: Letter or Credit/No Credit
CS 108:
ObjectOriented Systems Design
Software design and construction in the context of large OOP libraries. Taught in Java. Topics: OOP design, design patterns, testing, graphical user interface (GUI) OOP libraries, software engineering strategies, approaches to programming in teams. Prerequisite: 107.
Terms: Aut, Win

Units: 34

UG Reqs: GER:DBEngrAppSci

Grading: Letter or Credit/No Credit
CS 110:
Principles of Computer Systems
Principles and practice of engineering of computer software and hardware systems. Topics include: techniques for controlling complexity; strong modularity using clientserver design, virtual memory, and threads; networks; atomicity and coordination of parallel activities; security, and encryption; and performance optimizations. Prerequisite: 107.
Terms: Aut, Win, Spr

Units: 35

UG Reqs: GER:DBEngrAppSci

Grading: Letter or Credit/No Credit
CS 124:
From Languages to Information (LINGUIST 180, LINGUIST 280)
Extracting meaning, information, and structure from human language text, speech, web pages, social networks. Methods include: string algorithms, edit distance, language modeling, the noisy channel, machine learning classifiers, inverted indices, collaborative filtering, neural embeddings, PageRank. Applications such as question answering, sentiment analysis, information retrieval, text classification, social network models, spell checking, recommender systems, chatbots. Prerequisites: CS103, CS107, CS109.
Terms: Win

Units: 34

UG Reqs: WAYAQR

Grading: Letter or Credit/No Credit
CS 140:
Operating Systems and Systems Programming
Operating systems design and implementation. Basic structure; synchronization and communication mechanisms; implementation of processes, process management, scheduling, and protection; memory organization and management, including virtual memory; I/O device management, secondary storage, and file systems. Prerequisite: CS 110.
Terms: Win, Spr

Units: 34

UG Reqs: GER:DBEngrAppSci

Grading: Letter or Credit/No Credit
CS 140E:
Operating systems design and implementation
This is an experimental course offering. Students will implement a simple, clean operating system (virtual memory, processes, file system) on a rasberry pi computer and use the result to run a variety of devices. Enrollment is limited, and students should expect the course to have rough edges since it is the first offering.
Terms: Win

Units: 34

Grading: Letter or Credit/No Credit
CS 142:
Web Applications
Concepts and techniques used in constructing interactive web applications. Browserside web facilities such as HTML, cascading stylesheets, the document object model, and JavaScript frameworks and Serverside technologies such as serverside JavaScript, sessions, and objectoriented databases. Issues in web security and application scalability. New models of web application deployment. Prerequisites: CS 107 and CS 108.
Terms: Win, Spr

Units: 3

Grading: Letter or Credit/No Credit
CS 144:
Introduction to Computer Networking
Principles and practice. Structure and components of computer networks, packet switching, layered architectures. Applications: web/http, voiceoverIP, p2p file sharing and socket programming. Reliable transport: TCP/IP, reliable transfer, flow control, and congestion control. The network layer: names and addresses, routing. Local area networks: ethernet and switches. Wireless networks and network security. Prerequisite: CS 110.
Terms: Win

Units: 34

UG Reqs: GER:DBEngrAppSci

Grading: Letter or Credit/No Credit
CS 149:
Parallel Computing
This course is an introduction to parallelism and parallel programming. Most new computer architectures are parallel; programming these machines requires knowledge of the basic issues of and techniques for writing parallel software. Topics: varieties of parallelism in current hardware (e.g., fast networks, multicore, accelerators such as GPUs, vector instruction sets), importance of locality, implicit vs. explicit parallelism, shared vs. nonshared memory, synchronization mechanisms (locking, atomicity, transactions, barriers), and parallel programming models (threads, data parallel/streaming, MapReduce, Apache Spark, SPMD, message passing, SIMT, transactions, and nested parallelism). Significant parallel programming assignments will be given as homework. The course is open to students who have completed the introductory CS course sequence through 110.
Terms: Win

Units: 34

UG Reqs: GER:DBEngrAppSci

Grading: Letter or Credit/No Credit
CS 161:
Design and Analysis of Algorithms
Worst and average case analysis. Recurrences and asymptotics. Efficient algorithms for sorting, searching, and selection. Data structures: binary search trees, heaps, hash tables. Algorithm design techniques: divideandconquer, dynamic programming, greedy algorithms, amortized analysis, randomization. Algorithms for fundamental graph problems: minimumcost spanning tree, connected components, topological sort, and shortest paths. Possible additional topics: network flow, string searching. Prerequisite: 103 or 103B; 109 or STATS 116.
Terms: Aut, Win, Sum

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

Grading: Letter or Credit/No Credit
Instructors: ;
Rubinstein, A. (PI);
Wootters, M. (PI);
Baby, S. (TA);
Deaton, J. (TA);
Fosli, I. (TA);
Gupta, A. (TA);
Li, H. (TA);
Mu, R. (TA);
Murphy, D. (TA);
Narayanan, D. (TA);
Navarro, J. (TA);
Redondo, E. (TA);
Shi, A. (TA);
Starosta, A. (TA)
CS 181:
Computers, Ethics, and Public Policy (COMM 181, ETHICSOC 181X, PHIL 75C, POLISCI 181, PUBLPOL 181)
Ethical and social issues related to the development and use of computer technology. Ethical theory, and social, political, and legal considerations. Scenarios in problem areas: privacy, reliability and risks of complex systems, and responsibility of professionals for applications and consequences of their work. Prerequisite: 106A.
Terms: Aut, Win

Units: 4

UG Reqs: GER:ECEthicReas, WAYER

Grading: Letter or Credit/No Credit
Instructors: ;
Berke, A. (PI);
Reich, R. (PI);
Sahami, M. (PI);
Weinstein, J. (PI);
Winstein, K. (PI);
Gottlieb, D. (TA);
Hall, N. (TA);
McGregor, L. (TA);
Pierson, E. (TA);
Radzihovsky, S. (TA);
Slate, D. (TA);
Somshekar, I. (TA);
Stowell, C. (TA);
Tollman, S. (TA)
CS 181W:
Computers, Ethics, and Public Policy (WIM)
Writingintensive version of CS181. Satisfies the WIM requirement for Computer Science, Engineering Physics, STS, and Math/Comp Sci undergraduates. To take this course, students need permission of instructor and may need to complete an assignment due at the first day of class.
Terms: Aut, Win

Units: 4

UG Reqs: GER:ECEthicReas, WAYER

Grading: Letter (ABCD/NP)
Instructors: ;
Berke, A. (PI);
Reich, R. (PI);
Sahami, M. (PI);
Weinstein, J. (PI);
Winstein, K. (PI);
Gottlieb, D. (TA);
Hall, N. (TA);
McGregor, L. (TA);
Pierson, E. (TA);
Radzihovsky, S. (TA);
Somshekar, I. (TA);
Tollman, S. (TA)
CS 190:
Software Design Studio
This course teaches the art of software design: how to decompose large complex systems into classes that can be implemented and maintained easily. Topics include the causes of complexity, modular design, techniques for creating deep classes, minimizing the complexity associated with exceptions, incode documentation, and name selection. The class involves significant system software implementation and uses an iterative approach consisting of implementation, review, and revision. The course is taught in a studio format with inclass discussions and code reviews in addition to lectures. Prerequisite: CS 140 or equivalent. Apply at: https://web.stanford.edu/class/cs190
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 191:
Senior Project
Restricted to Computer Science and Computer Systems Engineering students. Group or individual projects under faculty direction. Register using instructor's section number. A project can be either a significant software application or publishable research. Software application projects include substantial programming and modern userinterface technologies and are comparable in scale to shareware programs or commercial applications. Research projects may result in a paper publishable in an academic journal or presentable at a conference. Required public presentation of final application or research results. Prerequisite: Completion of at least 135 units.
Terms: Aut, Win, Spr, Sum

Units: 16

Repeatable for credit

Grading: Letter (ABCD/NP)
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Angst, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Borenstein, J. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goel, S. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Lee, C. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Montanari, A. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Niebles Duque, J. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Pande, V. (PI);
Parlante, N. (PI);
Pea, R. (PI);
Piech, C. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Poldrack, R. (PI);
Potts, C. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Saxena, A. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Sosic, R. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Wang, G. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wootters, M. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI)
CS 191W:
Writing Intensive Senior Project (WIM)
Restricted to Computer Science and Computer Systems Engineering students. Writingintensive version of CS191. Register using the section number of an Academic Council member. Prerequisite: Completion of at least 135 units.
Terms: Aut, Win, Spr

Units: 36

Repeatable for credit

Grading: Letter (ABCD/NP)
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Borenstein, J. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Brunskill, E. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Durumeric, Z. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fatahalian, K. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Mackey, L. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Montanari, A. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Pande, V. (PI);
Parlante, N. (PI);
Pea, R. (PI);
Piech, C. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Potts, C. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Saberi, A. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Saxena, A. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Wang, G. (PI);
Wetzstein, G. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wodtke, C. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI)
CS 192:
Programming Service Project
Restricted to Computer Science students. Appropriate academic credit (without financial support) is given for volunteer computer programming work of public benefit and educational value.
Terms: Aut, Win, Spr, Sum

Units: 14

Repeatable for credit

Grading: Letter or Credit/No Credit
Instructors: ;
Aiken, A. (PI);
Altman, R. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Boneh, D. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Cao, P. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Gregg, C. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Lam, M. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Parlante, N. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Winograd, T. (PI);
Young, P. (PI);
Zelenski, J. (PI)
CS 193A:
Android Programming
Introduction to building applications for Android platform. Examines key concepts of Android programming: tool chain, application lifecycle, views, controls, intents, designing mobile UIs, networking, threading, and more. Features weekly lectures and a series of small programming projects. Phone not required, but a phone makes the projects more engaging. Prerequisites: 106B or Java experience at 106B level. Enrollment limited and application required.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 194:
Software Project
Design, specification, coding, and testing of a significant team programming project under faculty supervision. Documentation includes capture of project rationale, design and discussion of key performance indicators, a weekly progress log and a software architecture diagram. Public demonstration of the project at the end of the quarter. Preference given to seniors. May be repeated for credit. Prerequisites: CS 110 and CS 161.
Terms: Win, Spr

Units: 3

Repeatable for credit

Grading: Letter (ABCD/NP)
CS 194H:
User Interface Design Project
Advanced methods for designing, prototyping, and evaluating user interfaces to computing applications. Novel interface technology, advanced interface design methods, and prototyping tools. Substantial, quarterlong course project that will be presented in a public presentation. Prerequisites: CS 147, or permission of instructor.
Terms: Win

Units: 34

Grading: Letter (ABCD/NP)
CS 194W:
Software Project (WIM)
Restricted to Computer Science and Electrical Engineering undergraduates. Writingintensive version of CS194. Preference given to seniors.
Terms: Win, Spr

Units: 3

Grading: Letter (ABCD/NP)
CS 195:
Supervised Undergraduate Research
Directed research under faculty supervision. Students are required to submit a written report and give a public presentation on their work.
Terms: Aut, Win, Spr, Sum

Units: 34

Repeatable for credit

Grading: Letter (ABCD/NP)
Instructors: ;
Barrett, C. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Engler, D. (PI);
Fatahalian, K. (PI);
Genesereth, M. (PI);
Landay, J. (PI);
Ng, A. (PI);
Piech, C. (PI);
Savarese, S. (PI);
Valiant, G. (PI);
Wodtke, C. (PI)
CS 196:
Computer Consulting (VPTL 196)
Focus is on Macintosh and Windows operating system maintenance and troubleshooting through hardware and software foundation and concepts. Topics include operating systems, networking, security, troubleshooting methodology with emphasis on Stanford's computing environment. Not a programming course. Prerequisite: 1C or equivalent.
Terms: Win, Spr

Units: 2

Grading: Satisfactory/No Credit
CS 198:
Teaching Computer Science
Students lead a discussion section of 106A while learning how to teach a programming language at the introductory level. Focus is on teaching skills, techniques, and course specifics. Application and interview required; see http://cs198.stanford.edu.
Terms: Aut, Win, Spr

Units: 34

Grading: Satisfactory/No Credit
CS 198B:
Additional Topics in Teaching Computer Science
Students build on the teaching skills developed in CS198. Focus is on techniques used to teach topics covered in CS106B. Prerequisite: successful completion of CS198.
Terms: Aut, Win, Spr

Units: 1

Grading: Satisfactory/No Credit
CS 199:
Independent Work
Special study under faculty direction, usually leading to a written report. Letter grade; if not appropriate, enroll in 199P.
Terms: Aut, Win, Spr, Sum

Units: 16

Repeatable for credit

Grading: Letter (ABCD/NP)
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Borenstein, J. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Brunskill, E. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Durumeric, Z. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fatahalian, K. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goodman, N. (PI);
Grimes, A. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Lee, C. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Lin, H. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Niebles Duque, J. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Pande, V. (PI);
Parlante, N. (PI);
Pea, R. (PI);
Piech, C. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Potts, C. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sadigh, D. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Saxena, A. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wodtke, C. (PI);
Wootters, M. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI)
CS 199P:
Independent Work
(Staff)
Terms: Aut, Win, Spr, Sum

Units: 16

Repeatable for credit

Grading: Satisfactory/No Credit
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Altman, R. (PI);
Angst, R. (PI);
Baker, M. (PI);
Barrett, C. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Borenstein, J. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Cao, P. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Durumeric, Z. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Lee, C. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Lin, H. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Parlante, N. (PI);
Piech, C. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Saxena, A. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Socher, R. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wootters, M. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI)
CS 205L:
Continuous Mathematical Methods with an Emphasis on Machine Learning
A survey of numerical approaches to the continuous mathematics used in computer vision and robotics with emphasis on machine and deep learning. Although motivated from the standpoint of machine learning, the course will focus on the underlying mathematical methods including computational linear algebra and optimization, as well as special topics such as automatic differentiation via backward propagation, momentum methods from ordinary differential equations, CNNs, RNNs, etc. (Replaces CS205A, and satisfies all similar requirements.) Prerequisites: Math 51; Math 104 or 113 or equivalent or comfortable with the associated material.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 210A:
Software Project Experience with Corporate Partners
Twoquarter project course. Focus is on realworld software development. Corporate partners seed projects with loosely defined challenges from their R&D labs; students innovate to build their own compelling software solutions. Student teams are treated as startup companies with a budget and a technical advisory board comprised of instructional staff and corporate liaisons. Teams will typically travel to the corporate headquarters of their collaborating partner, meaning some teams will travel internationally. Open loft classroom format such as found in Silicon Valley software companies. Exposure to: current practices in software engineering; techniques for stimulating innovation; significant development experience with creative freedoms; working in groups; realworld software engineering challenges; public presentation of technical work; creating written descriptions of technical work. Prerequisites: CS 109 and 110.
Terms: Win

Units: 34

Grading: Letter (ABCD/NP)
CS 223A:
Introduction to Robotics (ME 320)
Robotics foundations in modeling, design, planning, and control. Class covers relevant results from geometry, kinematics, statics, dynamics, motion planning, and control, providing the basic methodologies and tools in robotics research and applications. Concepts and models are illustrated through physical robot platforms, interactive robot simulations, and video segments relevant to historical research developments or to emerging application areas in the field. Recommended: matrix algebra.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 224N:
Natural Language Processing with Deep Learning (LINGUIST 284)
Methods for processing human language information and the underlying computational properties of natural languages. Focus on deep learning approaches: understanding, implementing, training, debugging, visualizing, and extending neural network models for a variety of language understanding tasks. Exploration of natural language tasks ranging from simple word level and syntactic processing to coreference, question answering, and machine translation. Examination of representative papers and systems and completion of a final project applying a complex neural network model to a largescale NLP problem. Prerequisites: calculus and linear algebra; CS124 or CS121/221.
Terms: Win

Units: 34

Grading: Letter or Credit/No Credit
CS 228:
Probabilistic Graphical Models: Principles and Techniques
Probabilistic graphical modeling languages for representing complex domains, algorithms for reasoning using these representations, and learning these representations from data. Topics include: Bayesian and Markov networks, extensions to temporal modeling such as hidden Markov models and dynamic Bayesian networks, exact and approximate probabilistic inference algorithms, and methods for learning models from data. Also included are sample applications to various domains including speech recognition, biological modeling and discovery, medical diagnosis, message encoding, vision, and robot motion planning. Prerequisites: basic probability theory and algorithm design and analysis.
Terms: Win

Units: 34

Grading: Letter or Credit/No Credit
CS 229A:
Applied Machine Learning
You will learn to implement and apply machine learning algorithms. This course emphasizes practical skills, and focuses on giving you skills to make these algorithms work. You will learn about commonly used learning techniques including supervised learning algorithms (logistic regression, linear regression, SVM, neural networks/deep learning), unsupervised learning algorithms (kmeans), as well as learn about specific applications such as anomaly detection and building recommender systems. This class is taught in the flippedclassroom format. You will watch videos and complete indepth programming assignments and online quizzes at home, then come to class for discussion sections. This class will culminate in an openended final project, which the teaching team will help you on. Prerequisites: Programming at the level of CS106B or 106X, and basic linear algebra such as Math 51.
Terms: Aut, Win, Spr

Units: 34

Grading: Letter or Credit/No Credit
CS 230:
Deep Learning
Deep Learning is one of the most highly sought after skills in AI. We will help you become good at Deep Learning. In this course, you will learn the foundations of Deep Learning, understand how to build neural networks, and learn how to lead successful machine learning projects. You will learn about Convolutional networks, RNNs, LSTM, Adam, Dropout, BatchNorm, Xavier/He initialization, and more. You will work on case studies from healthcare, autonomous driving, sign language reading, music generation, and natural language processing. You will master not only the theory, but also see how it is applied in industry. You will practice all these ideas in Python and in TensorFlow, which we will teach. AI is transforming multiple industries. After this course, you will likely find creative ways to apply it to your work. This class is taught in the flippedclassroom format. You will watch videos and complete indepth programming assignments and online quizzes at home, then come in to class for advanced discussions and work on projects. This class will culminate in an openended final project, which the teaching team will help you on. Prerequisites: Familiarity with programming in Python and Linear Algebra (matrix / vector multiplications). CS 229 may be taken concurrently.
Terms: Aut, Win, Spr

Units: 34

Grading: Letter or Credit/No Credit
Instructors: ;
Katanforoosh, K. (PI);
Ng, A. (PI);
Bagul, A. (TA);
Bartolome Aramburu, C. (TA);
Batra, S. (GP);
Chen, S. (TA);
Cho, P. (TA);
Dery, L. (TA);
Eng, D. (TA);
Garzon, P. (TA);
Koochak, Z. (TA);
Kunin, D. (TA);
Momeni, A. (TA);
Najmark, S. (TA);
Shenoi, A. (TA);
Whang, J. (TA);
Yang, B. (TA);
Yu, W. (TA)
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 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
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
CS 246:
Mining Massive Data Sets
Availability of massive datasets is revolutionizing science and industry. This course discusses data mining and machine learning algorithms for analyzing very large amounts of data. The focus is on algorithms and systems for mining big data. nTopics include: Big data systems (Hadoop, Spark, Hive); Link Analysis (PageRank, spam detection, hubsandauthorities); Similarity search (localitysensitive hashing, shingling, minhashing, random hyperplanes); Stream data processing; Analysis of socialnetwork graphs; Association rules; Dimensionality reduction (UV, SVD, and CUR decompositions); Algorithms for verylargescale mining (clustering, nearestneighbor search); Largescale machine learning (gradient descent, supportvector machines, classification, and regression); Submodular function optimization; Computational advertising. Prerequisites: At least one of CS107 or CS145.
Terms: Win

Units: 34

Grading: Letter or Credit/No Credit
CS 246H:
Mining Massive Data Sets Hadoop Lab
Supplement to CS 246 providing additional material on Hadoop. Students will learn how to implement data mining algorithms using Hadoop, how to implement and debug complex MapReduce jobs in Hadoop, and how to use some of the tools in the Hadoop ecosystem for data mining and machine learning. Topics: Hadoop, MapReduce, HDFS, combiners, secondary sort, distributed cache, SQL on Hadoop, Hive, Cloudera ML/Oryx, Mahout, Hadoop streaming, implementing Hadoop jobs, debugging Hadoop jobs, TFIDF, Pig, Sqoop, Oozie, HBase, Impala. Prerequisite: CS 107 or equivalent.
Terms: Win

Units: 1

Grading: Satisfactory/No Credit
CS 247:
HumanComputer Interaction Design Studio
Projectbased focus on interaction design process, especially earlystage design and rapid prototyping. Methods used in interaction design including needs analysis, user observation, sketching, concept generation, scenario building, and evaluation. Prerequisites: 147 or equivalent background in design thinking; 106B or equivalent background in programming. This course takes place entirely in studios; enroll in a studio section with an instructor.
Terms: Win, Spr

Units: 34

Grading: Letter (ABCD/NP)
CS 248:
Interactive Computer Graphics
This course provides a comprehensive introduction to interactive computer graphics, focusing on fundamental concepts and techniques, as well as their crosscutting relationship to multiple problem domains in interactive graphics (such as rendering, animation, geometry, image processing). Topics include: 2D and 3D drawing, sampling theory, interpolation, rasterization, image compositing, the realtime GPU graphics pipeline (and parallel rendering), VR rendering, geometric transformations, curves and surfaces, geometric data structures, subdivision, meshing, spatial hierarchies, image processing, time integration, physicallybased animation, and inverse kinematics. The course will involve several indepth programming assignments and a selfselected final project that explores concepts covered in the class. Prerequisite: CS 107, MATH 51.
Terms: Win

Units: 34

Grading: Letter or Credit/No Credit
CS 250:
Algebraic Error Correcting Codes (EE 387)
Introduction to the theory of error correcting codes, emphasizing algebraic constructions, and diverse applications throughout computer science and engineering. Topics include basic bounds on error correcting codes; ReedSolomon and ReedMuller codes; listdecoding, listrecovery and locality. Applications may include communication, storage, complexity theory, pseudorandomness, cryptography, streaming algorithms, group testing, and compressed sensing. Prerequisites: Linear algebra, basic probability (at the level of, say, CS109, CME106 or EE178) and "mathematical maturity" (students will be asked to write proofs). Familiarity with finite fields will be helpful but not required.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 254:
Computational Complexity
An introduction to computational complexity theory. Topics include the P versus NP problem; diagonalization; space complexity: PSPACE, Savitch's theorem, and NL=coNL; counting problems and #Pcompleteness; circuit complexity; pseudorandomness and derandomization; complexity of approximation; quantum computing; complexity barriers. Prerequisites: 154 or equivalent; mathematical maturity.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 255:
Introduction to Cryptography
For advanced undergraduates and graduate students. Theory and practice of cryptographic techniques used in computer security. Topics: encryption (symmetric and public key), digital signatures, data integrity, authentication, key management, PKI, zeroknowledge protocols, and realworld applications. Prerequisite: basic probability theory.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 261:
Optimization and Algorithmic Paradigms
Algorithms for network optimization: maxflow, mincost flow, matching, assignment, and mincut problems. Introduction to linear programming. Use of LP duality for design and analysis of algorithms. Approximation algorithms for NPcomplete problems such as Steiner Trees, Traveling Salesman, and scheduling problems. Randomized algorithms. Introduction to sublinear algorithms and decision making under uncertainty. Prerequisite: 161 or equivalent.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 270:
Modeling Biomedical Systems: Ontology, Terminology, Problem Solving (BIOMEDIN 210)
Methods for modeling biomedical systems and for building modelbased software systems. Emphasis is on intelligent systems for decision support and Semantic Web applications. Topics: knowledge representation, controlled terminologies, ontologies, reusable problem solvers, and knowledge acquisition. Students learn about current trends in the development of advanced biomedical software systems and acquire handson experience with several systems and tools. Prerequisites: CS106A, basic familiarity with biology, probability, and logic.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 273A:
The Human Genome Source Code (BIOMEDIN 273A, DBIO 273A)
A computational introduction to the most amazing programming language on the planet: your genome. Topics include genome sequencing (assembling source code from code fragments); the human genome functional landscape: variable assignments (genes), controlflow logic (gene regulation) and runtime stack (epigenomics); human disease and personalized genomics (as a hunt for bugs in the human code); genome editing (code injection) to cure the incurable; and the source code behind amazing animal adaptations. Algorithmic approaches will introduce ideas from computational genomics, machine learning and natural language processing. Course includes primers on molecular biology, and text processing languages. No prerequisites.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 275:
Translational Bioinformatics (BIOE 217, BIOMEDIN 217, GENE 217)
Computational methods for the translation of biomedical data into diagnostic, prognostic, and therapeutic applications in medicine. Topics: multiscale omics data generation and analysis, utility and limitations of public biomedical resources, machine learning and data mining, issues and opportunities in drug discovery, and mobile/digital health solutions. Case studies and course project. Prerequisites: programming ability at the level of CS 106A and familiarity with biology and statistics.
Terms: Win

Units: 4

Grading: Medical Option (MedLtrCR/NC)
CS 275A:
Symbolic Musical Information (MUSIC 253)
Focus on symbolic data for music applications including advanced notation systems, optical music recognition, musical data conversion, and internal structure of MIDI files.
Terms: Win

Units: 24

Grading: Letter or Credit/No Credit
CS 279:
Computational Biology: Structure and Organization of Biomolecules and Cells (BIOE 279, BIOMEDIN 279, BIOPHYS 279, CME 279)
Computational techniques for investigating and designing the threedimensional structure and dynamics of biomolecules and cells. These computational methods play an increasingly important role in drug discovery, medicine, bioengineering, and molecular biology. Course topics include protein structure prediction, protein design, drug screening, molecular simulation, cellularlevel simulation, image analysis for microscopy, and methods for solving structures from crystallography and electron microscopy data. Prerequisites: elementary programming background (CS 106A or equivalent) and an introductory course in biology or biochemistry.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 334A:
Convex Optimization I (CME 364A, EE 364A)
Convex sets, functions, and optimization problems. The basics of convex analysis and theory of convex programming: optimality conditions, duality theory, theorems of alternative, and applications. Leastsquares, linear and quadratic programs, semidefinite programming, and geometric programming. Numerical algorithms for smooth and equality constrained problems; interiorpoint methods for inequality constrained problems. Applications to signal processing, communications, control, analog and digital circuit design, computational geometry, statistics, machine learning, and mechanical engineering. Prerequisite: linear algebra such as EE263, basic probability.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
Instructors: ;
Boyd, S. (PI);
Barratt, S. (TA);
CreusCosta, J. (TA);
Dean, J. (TA);
Diamond, S. (TA);
Garg, S. (TA);
Kim, J. (TA);
Mani, N. (TA);
Pathak, R. (TA);
Sholar, J. (TA);
Spear, L. (TA)
CS 337:
AIAssisted Care (MED 277)
AI has been advancing quickly, with its impact everywhere. In healthcare, innovation in AI could help transforming of our healthcare system. This course offers a diverse set of research projects focusing on cutting edge computer vision and machine learning technologies to solve some of healthcare's most important problems. The teaching team and teaching assistants will work closely with students on research projects in this area. Research projects include Care for Senior at Senior Home, Surgical Quality Analysis, AI Assisted Parenting, Burn Analysis & Assessment and more. AI areas include Video Understanding, Image Classification, Objected Detection, Segmentation, Action Recognition, Deep Learning, Reinforcement Learning, HCI, and more. The course is open to students in both school of medicine and school of engineering.
Terms: Aut, Win, Spr

Units: 14

Grading: Medical Option (MedLtrCR/NC)
CS 348C:
Computer Graphics: Animation and Simulation
Core mathematics and methods for computer animation and motion simulation. Traditional animation techniques. Physicsbased simulation methods for modeling shape and motion: particle systems, constraints, rigid bodies, deformable models, collisions and contact, fluids, and fracture. Animating natural phenomena. Methods for animating virtual characters and crowds. Additional topics selected from datadriven animation methods, realism and perception, animation systems, motion control, realtime and interactive methods, and multisensory feedback. Recommended: CS 148 and/or 205A. Prerequisite: linear algebra.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 350:
Secure Compilation
This course explores the field of secure compilation, which sits at the intersection between security and programming languages. The course covers the following topics: threat models for secure compilers, formal criteria for secure compilers to adhere to, security relevance of secure compilation criteria, security architectures employed to achieve secure compilation, proof techniques for secure compilation with a focus on backtranslation.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 369L:
Algorithmic Perspective on Machine Learning
Many problems in machine learning are intractable in the worst case, andnpose a challenge for the design of algorithms with provable guarantees. In this course, we will discuss several success stories at the intersection of algorithm design and machine learning, focusing on devising appropriate models and mathematical tools to facilitate rigorous analysis.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 390A:
Curricular Practical Training
Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in internship work and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and followon projects they expect to perform. 390 A, B, and C may each be taken once.
Terms: Aut, Win, Spr, Sum

Units: 1

Grading: Satisfactory/No Credit
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Barrett, C. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Bohg, J. (PI);
Boneh, D. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Brunskill, E. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Duchi, J. (PI);
Durumeric, Z. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fatahalian, K. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fischer, M. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Follmer, S. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goel, S. (PI);
Goodman, N. (PI);
Gregg, C. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
Icard, T. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Lee, C. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Ma, T. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Niebles Duque, J. (PI);
Nilsson, N. (PI);
Okamura, A. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Pande, V. (PI);
Parlante, N. (PI);
Pea, R. (PI);
Piech, C. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Potts, C. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Rubinstein, A. (PI);
Sadigh, D. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Sidford, A. (PI);
Sosic, R. (PI);
Stanford, J. (PI);
Stepp, M. (PI);
Tan, L. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Wetzstein, G. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wootters, M. (PI);
Yamins, D. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI)
CS 390B:
Curricular Practical Training
Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in internship work and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and followon projects they expect to perform. 390A,B,C may each be taken once.
Terms: Aut, Win, Spr, Sum

Units: 1

Grading: Satisfactory/No Credit
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Barrett, C. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Bohg, J. (PI);
Boneh, D. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Brunskill, E. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Duchi, J. (PI);
Durumeric, Z. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fatahalian, K. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Follmer, S. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goel, S. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
Icard, T. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Lee, C. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Ma, T. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Okamura, A. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Parlante, N. (PI);
Pea, R. (PI);
Piech, C. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Potts, C. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Rubinstein, A. (PI);
Sadigh, D. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Tan, L. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wootters, M. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI)
CS 390C:
Curricular Practical Training
Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in internship work and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and followon projects they expect to perform. 390A,B,C may each be taken once.
Terms: Aut, Win, Spr, Sum

Units: 1

Grading: Satisfactory/No Credit
Instructors: ;
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Lam, M. (PI);
Latombe, J. (PI);
Lee, C. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Parlante, N. (PI);
Pea, R. (PI);
Piech, C. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI)
CS 390D:
Parttime Curricular Practical Training
For qualified computer science PhD students only. Permission number required for enrollment; see the CS PhD program administrator in Gates room 196. May be taken just once; not repeatable. Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in research and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and followon projects they expect to perform. Students on F1 visas should be aware that completing 12 or more months of fulltime CPT will make them ineligible for Optional Practical Training (OPT).
Terms: Aut, Win, Spr, Sum

Units: 1

Grading: Satisfactory/No Credit
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Barrett, C. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Duchi, J. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Follmer, S. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Mackey, L. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Montanari, A. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Pande, V. (PI);
Parlante, N. (PI);
Plotkin, S. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Saberi, A. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wootters, M. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI)
CS 390P:
Parttime Curricular Practical Training
For qualified computer science PhD students only. Permission number required for enrollment; see the CS PhD program administrator in Gates room 196. May be taken just once; not repeatable. Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in research and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and followon projects they expect to perform. Students on F1 visas should be aware that completing 12 or more months of fulltime CPT will make them ineligible for Optional Practical Training (OPT).
Terms: Aut, Win, Spr

Units: 1

Grading: Satisfactory/No Credit
Instructors: ;
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Montanari, A. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Pande, V. (PI);
Parlante, N. (PI);
Plotkin, S. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Young, P. (PI);
Zelenski, J. (PI)
CS 390Q:
PartTime Curricular Practical Training
For qualified computer science PhD students only. Permission number required for enrollment; see the CS PhD program administrator in Gates room 196. May be taken just once; not repeatable. Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in research and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and followon projects they expect to perform. Students on F1 visas should be aware that completing 12 or more months of fulltime CPT will make them ineligible for Optional Practical Training (OPT).
Terms: Win, Spr

Units: 1

Grading: Satisfactory/No Credit
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Barrett, C. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Duchi, J. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Follmer, S. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Mackey, L. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Montanari, A. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Pande, V. (PI);
Parlante, N. (PI);
Plotkin, S. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Saberi, A. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Wetzstein, G. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wootters, M. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI)
CS 390T:
PartTime CPT
For qualified computer science PhD students only. Permission number required for enrollment; see the CS PhD program administrator in Gates room 196. May be taken just once; not repeatable. Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in research and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and followon projects they expect to perform. Students on F1 visas should be aware that completing 12 or more months of fulltime CPT will make them ineligible for Optional Practical Training (OPT).
Terms: Win

Units: 1

Grading: Satisfactory/No Credit
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Boyd, S. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Mackey, L. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Montanari, A. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Pande, V. (PI);
Parlante, N. (PI);
Plotkin, S. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Saberi, A. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Young, P. (PI);
Zelenski, J. (PI)
CS 390V:
Parttime Curricular Practical Training
For qualified computer science PhD students only. Permission number required for enrollment; see the CS PhD program administrator in Gates room 196. May be taken just once; not repeatable. Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in research and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and followon projects they expect to perform. Students on F1 visas should be aware that completing 12 or more months of fulltime CPT will make them ineligible for Optional Practical Training (OPT).
Terms: Aut, Win, Spr, Sum

Units: 1

Grading: Satisfactory/No Credit
CS 390W:
Parttime Curricular Practical Training
For qualified computer science PhD students only. Permission number required for enrollment; see the CS PhD program administrator in Gates room 196. May be taken just once; not repeatable. Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in research and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and followon projects they expect to perform. Students on F1 visas should be aware that completing 12 or more months of fulltime CPT will make them ineligible for Optional Practical Training (OPT).
Terms: Aut, Win, Spr, Sum

Units: 1

Grading: Satisfactory/No Credit
CS 393:
Computer Laboratory
For CS graduate students. A substantial computer program is designed and implemented; written report required. Recommended as a preparation for dissertation research. Register using the section number associated with the instructor. Prerequisite: consent of instructor.
Terms: Aut, Win, Spr, Sum

Units: 19

Repeatable for credit

Grading: Letter or Credit/No Credit
Instructors: ;
Aiken, A. (PI);
Altman, R. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Boneh, D. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Cao, P. (PI);
Cheriton, D. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Lam, M. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Parlante, N. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Shoham, Y. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Winograd, T. (PI);
Young, P. (PI);
Zelenski, J. (PI)
CS 395:
Independent Database Project
For graduate students in Computer Science. Use of database management or file systems for a substantial application or implementation of components of database management system. Written analysis and evaluation required. Register using the section number associated with the instructor. Prerequisite: consent of instructor.
Terms: Aut, Win, Spr, Sum

Units: 16

Repeatable for credit

Grading: Letter or Credit/No Credit
Instructors: ;
Aiken, A. (PI);
Altman, R. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Boneh, D. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Cao, P. (PI);
Cheriton, D. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Lam, M. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Parlante, N. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Shoham, Y. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Winograd, T. (PI);
Young, P. (PI);
Zelenski, J. (PI)
CS 399:
Independent Project
Letter grade only. This course is for graduate students only. Undergraduate students should enroll in CS199.
Terms: Aut, Win, Spr, Sum

Units: 19

Repeatable for credit

Grading: Letter (ABCD/NP)
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Barrett, C. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Borenstein, J. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Brunskill, E. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Durumeric, Z. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fatahalian, K. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goel, S. (PI);
Goodman, N. (PI);
Gregg, C. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
Icard, T. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Lee, C. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Ma, T. (PI);
MacCartney, B. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Niebles Duque, J. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Pande, V. (PI);
Parlante, N. (PI);
Pea, R. (PI);
Piech, C. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Potts, C. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sadigh, D. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Saxena, A. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Socher, R. (PI);
Sosic, R. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Wang, G. (PI);
Wetzstein, G. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wodtke, C. (PI);
Wootters, M. (PI);
Yamins, D. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI)
CS 399P:
Independent Project
Graded satisfactory/no credit. This course is for graduate students only. Undergraduate students should enroll in CS199P.
Terms: Aut, Win, Spr, Sum

Units: 19

Repeatable for credit

Grading: Satisfactory/No Credit
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Brunskill, E. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Lee, C. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Parlante, N. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Saxena, A. (PI);
Shoham, Y. (PI);
Socher, R. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Wang, G. (PI);
Wetzstein, G. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Young, P. (PI);
Zelenski, J. (PI)
CS 402:
Beyond Bits and Atoms: Designing Technological Tools (EDUC 236)
This course is a practicum in the design of technologyenabled curricula and handson learning environments. It focuses on the theories, concepts, and practices necessary to design effective, lowcost educational technologies that support learning in all contexts for a variety of diverse learners. We will explore theories and design frameworks from constructivist and constructionist learning perspectives, as well as the lenses of critical pedagogy, Universal Design for Learning (UDL), and interaction design for children. The course will concretize theories, concepts, and practices in weekly presentations (including examples) from industry experts with significant backgrounds and proven expertise in designing successful, evidencebased, educational technology products. The Practicum provides the design foundation for EDUC 211 / CS 402 L, a handson lab focused on introductory prototyping and the fabrication of incipient interactive, educational technologies. (No prior prototyping experience required.) Interested students must also register for either EDUC 211 or CS 402L, complete the application at http://bit.ly/educ236 by January 4 at 5 p.m., and come to the first class at 8:30 a.m. in CERAS 108.
Terms: Win

Units: 34

Grading: Letter or Credit/No Credit
CS 402L:
Beyond Bits and Atoms  Lab (EDUC 211)
This lab course is a handson introduction to the prototyping and fabrication of tangible, interactive technologies, with a special focus on learning and education. (No prior prototyping experience required.) It focuses on the design and prototyping of lowcost technologies that support learning in all contexts for a variety of diverse learners. You will be introduced to, and learn how to use stateoftheart fabrication machines (3D printers, laser cutters, Go Go Boards, Sensors, etc.) to design educational toolkits, educational toys, science kits, and tangible user interfaces. The lab builds on the the theoretical and evidencebased foundations explored in the EDUC 236 / CS 402 Practicum. Interested students must also register for either EDUC 236 or CS 402, complete the application at http://bit.ly/educ236 by January 4 at 5 p.m., and come to the first class at 8:30 a.m. in CERAS 108.
Terms: Win

Units: 13

Grading: Letter (ABCD/NP)
CS 448I:
Computational Imaging and Display (EE 367)
Spawned by rapid advances in optical fabrication and digital processing power, a new generation of imaging technology is emerging: computational cameras at the convergence of applied mathematics, optics, and highperformance computing. Similar trends are observed for modern displays pushing the boundaries of resolution, contrast, 3D capabilities, and immersive experiences through the codesign of optics, electronics, and computation. This course serves as an introduction to the emerging field of computational imaging and displays. Students will learn to master bits and photons.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 499:
Advanced Reading and Research
Letter grade only. Advanced reading and research for CS graduate students. Register using the section number associated with the instructor. Prerequisite: consent of instructor. This course is for graduate students only. Undergraduate students should enroll in CS199.
Terms: Aut, Win, Spr, Sum

Units: 115

Repeatable for credit

Grading: Letter (ABCD/NP)
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Barrett, C. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Bohg, J. (PI);
Boneh, D. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Brunskill, E. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Duchi, J. (PI);
Durumeric, Z. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fatahalian, K. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Follmer, S. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goel, S. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
Icard, T. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Ma, T. (PI);
Mackey, L. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Montanari, A. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Parlante, N. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Rubinstein, A. (PI);
Saberi, A. (PI);
Sadigh, D. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Saxena, A. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Sidford, A. (PI);
Stepp, M. (PI);
Tan, L. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wootters, M. (PI);
Yamins, D. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI)
CS 499P:
Advanced Reading and Research
Graded satisfactory/no credit. Advanced reading and research for CS graduate students. Register using the section number associated with the instructor. Prerequisite: consent of instructor. This course is for graduate students only. Undergraduate students should enroll in CS199P.
Terms: Aut, Win, Spr, Sum

Units: 115

Repeatable for credit

Grading: Satisfactory/No Credit
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Barrett, C. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Bohg, J. (PI);
Boneh, D. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Brunskill, E. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Duchi, J. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fatahalian, K. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Follmer, S. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goel, S. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
Icard, T. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Ma, T. (PI);
Mackey, L. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Parlante, N. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Rubinstein, A. (PI);
Saberi, A. (PI);
Sadigh, D. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Saxena, A. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Tan, L. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Wang, G. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wootters, M. (PI);
Yamins, D. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI)
CS 547:
HumanComputer Interaction Seminar
Weekly speakers on humancomputer interaction topics. May be repeated for credit.
Terms: Aut, Win, Spr

Units: 1

Repeatable for credit

Grading: Satisfactory/No Credit
CS 571:
Surgical Robotics Seminar (ME 571)
Surgical robots developed and implemented clinically on varying scales. Seminar goal is to expose students from engineering, medicine, and business to guest lecturers from academia and industry. Engineering and clinical aspects connected to design and use of surgical robots, varying in degree of complexity and procedural role. May be repeated for credit.
Terms: Win

Units: 1

Repeatable for credit

Grading: Satisfactory/No Credit
Terms: Aut, Win, Spr, Sum

Units: 0

Repeatable for credit

Grading: TGR
Instructors: ;
Aiken, A. (PI);
Altman, R. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Cao, P. (PI);
Cheriton, D. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Lam, M. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Mackey, L. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Parlante, N. (PI);
Pea, R. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Shoham, Y. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Winograd, T. (PI);
Young, P. (PI);
Zelenski, J. (PI)
Terms: Aut, Win, Spr, Sum

Units: 0

Repeatable for credit

Grading: TGR
Instructors: ;
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Bohg, J. (PI);
Boneh, D. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Brunskill, E. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fatahalian, K. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goel, S. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Ma, T. (PI);
Mackey, L. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McKeown, N. (PI);
Mitchell, J. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Parlante, N. (PI);
Pea, R. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Rubinstein, A. (PI);
Sadigh, D. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Shoham, Y. (PI);
Tan, L. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wootters, M. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI)