CS 1C:
Introduction to Computing at Stanford (VPTL 1)
For those who want to learn more about Stanford's computing environment. Topics include: computer maintenance and security, computing resources, Internet privacy, and copyright law. Onehour lecture/demonstration in dormitory clusters prepared and administered weekly by the Resident Computer Consultant (RCC). Final project. Not a programming course.
Terms: Aut

Units: 1

Grading: Satisfactory/No Credit
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 7:
Personal Finance for Engineers
Introduction to the fundamentals and analysis specifically needed by engineers to make informed and intelligent financial decisions. Course will focus on actual industrybased financial information from technology companies and realistic financial issues. Topics include: behavioral finance, budgeting, debt, compensation, stock options, investing and real estate. No prior finance or economics experience required.
Terms: Aut

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. Students will work in groups to present a final project in building an application for the Oculus Go headset. Enrollment is limited and by application only. See https://cs11si.stanford.edu for more information. Prerequisite: CS 106A or equivalent.
Terms: Aut

Units: 2

Grading: Satisfactory/No Credit
CS 28:
Artificial Intelligence, Entrepreneurship and Society in the 21st Century and Beyond
Technical developments in artificial intelligence (AI) have opened up new opportunities for entrepreneurship, as well as raised profound longer term questions about how human societal and economic systems may be reorganized to accommodate the rise of intelligent machines. In this course, closely cotaught by a Stanford professor and a leading Silicon Valley venture capitalist, we will examine the current state of the art capabilities of existing artificial intelligence systems, as well as economic challenges and opportunities in early stage startups and large companies that could leverage AI. We will focus on gaps between business needs and current technical capabilities to identify high impact directions for the development of future AI technology. Simultaneously, we will explore the longer term societal impact of AI driven by inexorable trends in technology and entrepreneurship. The course includes guest lectures from leading technologists and entrepreneurs who employ AI in a variety of fields, including healthcare, education, selfdriving cars, computer security, natural language interfaces, computer vision systems, and hardware acceleration.
Terms: Aut

Units: 2

Grading: Satisfactory/No Credit
CS 45N:
Computers and Photography: From Capture to Sharing
Preference to freshmen with experience in photography and use of computers. Elements of photography, such as lighting, focus, depth of field, aperture, and composition. How a photographer makes photos available for computer viewing, reliably stores them, organizes them, tags them, searches them, and distributes them online. No programming experience required. Digital SLRs and editing software will be provided to those students who do not wish to use their own.
Terms: Aut, Spr

Units: 4

UG Reqs: WAYCE

Grading: Letter or Credit/No Credit
CS 47:
CrossPlatform Mobile Development
The fundamentals of crossplatform mobile application development using the React Native framework (RN). Primary focus on developing best practices in creating apps for both iOS and Android by using Javascript and existing web + mobile development paradigms. Students will explore the unique aspects that made RN a primary tool for mobile development within Facebook, Instagram, Walmart, Tesla, and UberEats. Skills developed over the course will be consolidated by the completion of a final project. Required Prerequisites: CS106A or CS106B. Website: web.stanford.edu/class/cs47/. To enroll in the class, please show up to the first day of class and fill the following application: https://forms.gle/WM3SDd3qyF3eQC3x5
Terms: Aut

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 is required.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 57N:
Randomness: Computational and Philosophical Approaches (PHIL 3N)
Is it ever reasonable to make a decision randomly? For example, would you ever let an important choice depend on the flip of a coin? Can randomness help us answer difficult questions more accurately or more efficiently? What is randomness anyway? Can an object be random? Are there genuinely random processes in the world, and if so, how can we tell? In this seminar, we will explore these questions through the lenses of philosophy and computation. By the end of the quarter students should have an appreciation of the many roles that randomness plays in both humanities and sciences, as well as a grasp of some of the key analytical tools used to study the concept. The course will be selfcontained, and no prior experience with randomness/probability is necessary.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 80Q:
Race and Gender in Silicon Valley (AFRICAAM 80Q)
Join us as we go behind the scenes of some of the big headlines about trouble in Silicon Valley. We'll start with the basic questions like who decides who gets to see themselves as "a computer person," and how do early childhood and educational experiences shape our perceptions of our relationship to technology? Then we'll see how those questions are fundamental to a wide variety of recent events from #metoo in tech companies, to the ways the underrepresentation of women and people of color in tech companies impacts the kinds of products that Silicon Valley brings to market. We'll see how data and the coming age of AI raise the stakes on these questions of identity and technology. How can we ensure that AI technology will help reduce bias in human decisionmaking in areas from marketing to criminal justice, rather than amplify it?
Terms: Aut

Units: 3

UG Reqs: WAYED

Grading: Letter or Credit/No Credit
CS 91SI:
Digital Canvas: An Introduction to UI/UX Design
Become familiar with prototypedesign tools like Sketch and Marvel while also learning important design concepts in a lowstress environment. Focus is on the application of UI/UX design concepts to actual user interfaces: the creation of wireframes, highfidelity mockups, and clickable prototypes. We will look at what makes a good or bad user interface, effective design techniques, and how to employ these techniques using Sketch and Marvel to make realistic prototypes. This course is ideal for anyone with little to no visual design experience who would like to build their skill set in UI/UX for app or web design. Also ideal for anyone with experience in front or backend web development or humancomputer interaction that would want to sharpen their visual design and analysis skills for UI/UX.
Terms: Win

Units: 2

Grading: Satisfactory/No Credit
CS 93:
Teaching AI
For graduate students who are TAing an AI course. This course prepares new AI section leaders to teach, write, and evaluate AI content. In class, you will be evaluating final projects individually and as a group. You will have discussions criticizing papers and assigning grades to them. You will analyze and solve discussion session problems on the board, explain algorithmsnlike backpropagation, and learn how to give constructive feedback to students. The class will also include a guest speaker who will give teaching advice and talk about AI. Focus is on teaching skills, techniques, and final projects grading. The class meets once a week for the first 6 weeks of the quarter.
Terms: Aut

Units: 1

Grading: Satisfactory/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: Aut, 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: Aut, Win, Spr

Units: 1

Grading: Satisfactory/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
CS 103A:
Mathematical Problemsolving Strategies
Problem solving strategies and techniques in discrete mathematics and computer science. Additional problem solving practice for CS103. Inclass participation required. Prerequisite: consent of instructor. Corequisite: CS103.
Terms: Aut, Win

Units: 1

Grading: Satisfactory/No Credit
CS 105:
Introduction to Computers
For nontechnical majors. What computers are and how they work. Practical experience in programming. Construction of computer programs and basic design techniques. A survey of Internet technology and the basics of computer hardware. Students in technical fields and students looking to acquire programming skills should take 106A or 106X. Students with prior computer science experience at the level of 106 or above require consent of instructor. Prerequisite: minimal math skills.
Terms: Aut, Spr

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

Grading: Letter or Credit/No Credit
CS 106A:
Programming Methodology
Introduction to the engineering of computer applications emphasizing modern software engineering principles: program design, decomposition, encapsulation, abstraction, and testing. Emphasis is on good programming style and the builtin facilities of respective languages. Uses the Python programming language. No prior programming experience required. Summer quarter enrollment is limited.
Terms: Aut, Win, Spr, Sum

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

Grading: Letter or Credit/No Credit
CS 106AX:
Programming Methodologies in JavaScript and Python (Accelerated)
Introduction to the engineering of computer applications emphasizing modern software engineering principles: objectoriented design, decomposition, encapsulation, abstraction, and testing. This course targets an audience with prior programming experience, and that prior experience is leveraged so material can be covered in greater depth.
Terms: Aut

Units: 35

UG Reqs: WAYFR

Grading: Letter or Credit/No Credit
CS 106B:
Programming Abstractions
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.
Terms: Aut, Win, Spr, Sum

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

Grading: Letter or Credit/No Credit
CS 106L:
Standard C++ Programming Laboratory
Supplemental lab to 106B and 106X. Additional features of standard C++ programming practice. Possible topics include advanced C++ language features, standard libraries, STL containers and algorithms, object memory management, operator overloading, and inheritance. Prerequisite: consent of instructor. Corequisite: 106B or 106X.
Terms: Aut, Spr

Units: 1

Grading: Satisfactory/No Credit
CS 106X:
Programming Abstractions (Accelerated)
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
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: Aut, Win, Spr

Units: 1

Grading: Satisfactory/No Credit
CS 109:
Introduction to Probability for Computer Scientists
Topics include: counting and combinatorics, random variables, conditional probability, independence, distributions, expectation, point estimation, and limit theorems. Applications of probability in computer science including machine learning and the use of probability in the analysis of algorithms. Prerequisites: 103, 106B or X, multivariate calculus at the level of MATH 51 or CME 100 or equivalent.
Terms: Aut, Win, Spr

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYAQR, WAYFR

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. Prerequisite: 107.
Terms: Aut, Win, Spr

Units: 35

UG Reqs: GER:DBEngrAppSci

Grading: Letter or Credit/No Credit
CS 129:
Applied Machine Learning
(Previously numbered CS 229A.) 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 131:
Computer Vision: Foundations and Applications
Robots that can navigate space and perform duties, search engines that can index billions of images and videos, algorithms that can diagnose medical images for diseases, or smart cars that can see and drive safely: Lying in the heart of these modern AI applications are computer vision technologies that can perceive, understand and reconstruct the complex visual world. This course is designed for students who are interested in learning about the fundamental principles and important applications of computer vision. Course will introduce a number of fundamental concepts in computer vision and expose students to a number of realworld applications, plus guide students through a series of projects such that they will get to implement cuttingedge computer vision algorithms. Prerequisites: Students should be familiar with Python (i.e. have programmed in Python before) and Linux; plus Calculus & Linear Algebra.
Terms: Aut

Units: 34

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: Aut

Units: 34

UG Reqs: GER:DBEngrAppSci

Grading: Letter or Credit/No Credit
CS 145:
Data Management and Data Systems
Introduction to the use, design, and implementation of database and dataintensive systems, including data models; schema design; data storage; query processing, query optimization, and cost estimation; concurrency control, transactions, and failure recovery; distributed and parallel execution; semistructured databases; and data system support for advanced analytics and machine learning. Prerequisites: 103 and 107 (or equivalent).
Terms: Aut

Units: 34

UG Reqs: GER:DBEngrAppSci

Grading: Letter or Credit/No Credit
CS 147:
Introduction to HumanComputer Interaction Design
Introduces fundamental methods and principles for designing, implementing, and evaluating user interfaces. Topics: usercentered design, rapid prototyping, experimentation, direct manipulation, cognitive principles, visual design, social software, software tools. Learn by doing: work with a team on a quarterlong design project, supported by lectures, readings, and studios. Prerequisite: 106B or X or equivalent programming experience. Recommended that CS Majors have also taken one of 142, 193P, or 193A.
Terms: Aut

Units: 35

Grading: Letter (ABCD/NP)
CS 148:
Introduction to Computer Graphics and Imaging
Introductory prerequisite course in the computer graphics sequence introducing students to the technical concepts behind creating synthetic computer generated images. Begins with OpenGL/scanline rendering including discussions of underlying mathematical concepts including triangles, normals, interpolation, texture/bump mapping, etc. Importantly, the course will discuss handling light/color for image formats, computer displays, printers, etc., as well as how light interacts with the environment, constructing engineering models such as the BRDF, and various simplifications into more basic lighting and shading models. Ray tracing is introduced and compared to real world cameras to illustrate various concepts, and both antialiasing and acceleration structures are discussed. The final class miniproject consists of building out a ray tracer to create visually compelling images. Starter codes and code bits will be provided to aid in development, but this class focuses on what you can do with the code as opposed to what the code itself looks like. Therefore grading is weighted toward in person "demos" of the code in action  creativity and the production of impressive visual imagery are highly encouraged/rewarded. Prerequisites: CS 107, MATH 51.
Terms: Aut

Units: 34

UG Reqs: GER:DBEngrAppSci, WAYCE

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: Aut

Units: 34

UG Reqs: GER:DBEngrAppSci

Grading: Letter or Credit/No Credit
CS 152:
Trust and Safety Engineering
An introduction to the ways consumer internet services are abused to cause real human harm and the potential operational, product and engineering responses. Students will learn about spam, fraud, account takeovers, the use of social media by terrorists, misinformation, child exploitation, harassment, bullying and selfharm. This will include studying both the technical and sociological roots of these harms and the ways various online providers have responded. Our goal is to provide students with an understanding of how the technologies they may build have been abused in the past and how they might spot future abuses earlier. The class will be taught by a longtime practitioner and supplemented by guest lecturers from local companies. Content note: This class will cover realworld harmful behavior and expose students to potentially upsetting material. Submit an application for the class at: http://cs152app.stanford.edu
Terms: Aut, Win

Units: 3

Grading: Letter or Credit/No Credit
CS 154:
Introduction to Automata and Complexity Theory
This course provides a mathematical introduction to the following questions: What is computation? Given a computational model, what problems can we hope to solve in principle with this model? Besides those solvable in principle, what problems can we hope to efficiently solve? In many cases we can give completely rigorous answers; in other cases, these questions have become major open problems in computer science and mathematics. By the end of this course, students will be able to classify computational problems in terms of their computational complexity (Is the problem regular? Not regular? Decidable? Recognizable? Neither? Solvable in P? NPcomplete? PSPACEcomplete?, etc.). Students will gain a deeper appreciation for some of the fundamental issues in computing that are independent of trends of technology, such as the ChurchTuring Thesis and the P versus NP problem. Prerequisites: CS 103 or 103B.
Terms: Aut

Units: 34

UG Reqs: GER:DBEngrAppSci

Grading: Letter or Credit/No Credit
CS 157:
Computational Logic
Rigorous introduction to Symbolic Logic from a computational perspective. Encoding information in the form of logical sentences. Reasoning with information in this form. Overview of logic technology and its applications  in mathematics, science, engineering, business, law, and so forth. Topics include the syntax and semantics of Propositional Logic, Relational Logic, and Herbrand Logic, validity, contingency, unsatisfiability, logical equivalence, entailment, consistency, natural deduction (Fitch), mathematical induction, resolution, compactness, soundness, completeness.
Terms: Aut

Units: 3

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
CS 183E:
Effective Leadership in HighTech
You will undoubtedly leave Stanford with the technical skills to excel in your first few jobs. But nontechnical skills are just as critical to making a difference. This seminar is taught by two industry veterans in engineering leadership and product management. In a small group setting, we will explore how you can be a great individual contributor (communicating with clarity, getting traction for your ideas, resolving conflict, and delivering your best work) and how you can transition into leadership roles (finding leadership opportunities, creating a great team culture, hiring and onboarding new team members). We will end by turning back to your career (picking your first job and negotiating your offer, managing your career changes, building a great network, and succeeding with mentors). Prerequisites: Preference given to seniors and coterms in Computer Science and related majors. Enrollment limited and application required for admittance.
Terms: Aut

Units: 1

Grading: Satisfactory/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);
Gregg, C. (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);
Ma, T. (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);
Yamins, D. (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);
Goel, S. (PI);
Goodman, N. (PI);
Gregg, C. (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);
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);
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 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);
Leskovec, J. (PI);
Levis, P. (PI);
Li, F. (PI);
Mitchell, J. (PI);
Ng, A. (PI);
Piech, C. (PI);
Savarese, S. (PI);
Troccoli, N. (PI);
Valiant, G. (PI);
Wodtke, C. (PI)
CS 197:
Computer Science Research
An onramp for students interested in breaking new ground in the frontiers of computer science. Students select a research area (AI, HCI, Systems, etc.), and are matched with a quarterlong project and a Ph.D. student mentor. Lectures by faculty introduce the fundamentals of computer science research; special interest group meetings provide peer mentorship and feedback. Alumni of the course are given the opportunity to be connected to faculty for ongoing research, or to repeat the class under CS197A for credit (but no lecture component) to continue work on their projects. Prerequisites: Enrollment is by application. CS106B is required; CS107 is strongly recommended. Team projects will involve programming.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 197A:
Computer Science Research Seminar
Students attend weekly CS 197 Special Interest Group meetings and remain actively involved in research. Prerequisite: CS 197.
Terms: Aut

Units: 1

Repeatable for credit

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);
Bohg, J. (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);
Patrignani, M. (PI);
Pavone, M. (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);
Saxena, A. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Stanford, J. (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);
Yamins, D. (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);
Brunskill, E. (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);
Grimes, A. (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);
Pavone, M. (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 202:
Law for Computer Science Professionals
An overview of intellectual property law as it relates to computer science and other disciplines, including discussions of patents, trademarks, copyrights, trade secrets, computer fraud litigation and interesting historical tidbits. Emphasis on topics of current interest such as software and business method patents, copyright issues concerning software, music, art and artificial intelligence, and current disputes of note including the recentlysettled Waymo v. Uber lawsuit and the ongoing Oracle v. Google, Apple v. Samsung and hiQ v. LinkedIn sagas. Guest lectures typically have covered open source and the free software movement, practical issues for business founders (including corporate formation issues and nondisclosure, noncompete, workmadeforhire and license agreements), and other pertinent topics. Classes are presented in an open discussion format broadly directed to students with both technical and nontechnical backgrounds.
Terms: Win

Units: 1

Grading: Satisfactory/No Credit
CS 206:
Exploring Computational Journalism (COMM 281)
This projectbased course will explore the field of computational journalism, including the use of Data Science, Info Visualization, AI, and emerging technologies to help journalists discover and tell stories, understand their audience, advance free speech, and build trust. Admission by application; please email R.B. Brenner at rbbrenner@stanford.edu to request application.
Terms: Aut

Units: 3

Grading: Letter (ABCD/NP)
CS 208E:
Great Ideas in Computer Science
Great Ideas in Computer Science Covers the intellectual tradition of computer science emphasizing ideas that reflect the most important milestones in the history of the discipline. Topics include programming and problem solving; implementing computation in hardware; algorithmic efficiency; the theoretical limits of computation; cryptography and security; computer networks; machine learning; and the philosophy behind artificial intelligence. Readings will include classic papers along with additional explanatory material.
Terms: Aut

Units: 3

Grading: Letter (ABCD/NP)
CS 221:
Artificial Intelligence: Principles and Techniques
Artificial intelligence (AI) has had a huge impact in many areas, including medical diagnosis, speech recognition, robotics, web search, advertising, and scheduling. This course focuses on the foundational concepts that drive these applications. In short, AI is the mathematics of making good decisions given incomplete information (hence the need for probability) and limited computation (hence the need for algorithms). Specific topics include search, constraint satisfaction, game playing, Markov decision processes, graphical models, machine learning, and logic. Prerequisites: CS 103 or CS 103B/X, CS 106B or CS 106X, CS 107, and CS 109 (algorithms, probability, and programming experience).
Terms: Aut, Spr

Units: 34

Grading: Letter or Credit/No Credit
CS 224W:
Machine Learning with Graphs
Networks are a fundamental tool for modeling complex social, technological, and biological systems. Coupled with the emergence of online social networks and largescale data availability in biological sciences, this course focuses on the analysis of massive networks which provide several computational, algorithmic, and modeling challenges. Students are introduced to machine learning techniques and data mining tools apt to reveal insights on the social, technological, and natural worlds, by means of studying their underlying network structure and interconnections. Topics include: robustness and fragility of food webs and financial markets; algorithms for the World Wide Web; graph neural networks and representation learning; identification of functional modules in biological networks; disease outbreak detection.
Terms: Aut

Units: 34

Grading: Letter or Credit/No Credit
CS 229:
Machine Learning (STATS 229)
Topics: statistical pattern recognition, linear and nonlinear regression, nonparametric methods, exponential family, GLMs, support vector machines, kernel methods, deep learning, model/feature selection, learning theory, ML advice, clustering, density estimation, EM, dimensionality reduction, ICA, PCA, reinforcement learning and adaptive control, Markov decision processes, approximate dynamic programming, and policy search. Prerequisites: linear algebra, and basic probability and statistics.
Terms: Aut, 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
CS 236:
Deep Generative Models
Generative models are widely used in many subfields of AI and Machine Learning. Recent advances in parameterizing these models using neural networks, combined with progress in stochastic optimization methods, have enabled scalable modeling of complex, highdimensional data including images, text, and speech. In this course, we will study the probabilistic foundations and learning algorithms for deep generative models, including Variational Autoencoders (VAE), Generative Adversarial Networks (GAN), and flow models. The course will also discuss application areas that have benefitted from deep generative models, including computer vision, speech and natural language processing, and reinforcement learning. Prerequisites: Basic knowledge about machine learning from at least one of CS 221, 228, 229 or 230. Students will work with computational and mathematical models and should have a basic knowledge of probabilities and calculus. Proficiency in some programming language, preferably Python, required.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 237A:
Principles of Robot Autonomy I (AA 174A, AA 274A, EE 260A)
Basic principles for endowing mobile autonomous robots with perception, planning, and decisionmaking capabilities. Algorithmic approaches for robot perception, localization, and simultaneous localization and mapping; control of nonlinear systems, learningbased control, and robot motion planning; introduction to methodologies for reasoning under uncertainty, e.g., (partially observable) Markov decision processes. Extensive use of the Robot Operating System (ROS) for demonstrations and handson activities. Prerequisites: CS 106A or equivalent, CME 100 or equivalent (for linear algebra), and CME 106 or equivalent (for probability theory).
Terms: Aut

Units: 34

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

Units: 34

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

Units: 34

Grading: Letter or Credit/No Credit
CS 247I:
Design for Understanding
Complex problems require sophisticated approaches. In this projectbased handson course, students explore the design of systems, information and interface for human use. We will model the flow of interactions, data and context, and crafting a design that is useful, appropriate and robust. Students will create utility apps or games as a response to the challenges presented. We will also examine the ethical consequences of design decisions and explore current issues arising from unintended consequences. Prerequisite: CS 147 or equivalent.
Terms: Aut

Units: 34

Grading: Letter (ABCD/NP)
CS 251:
Cryptocurrencies and blockchain technologies
For advanced undergraduates and for graduate students. The potential applications for Bitcoinlike technologies is enormous. The course will cover the technical aspects of cryptocurrencies, blockchain technologies, and distributed consensus. Students will learn how these systems work and how to engineer secure software that interacts with the Bitcoin network and other cryptocurrencies. Prerequisite: CS110. Recommended: CS255.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 253:
Web Security
Principles of web security. The fundamentals and stateoftheart in web security. Attacks and countermeasures. Topics include: the browser security model, web app vulnerabilities, injection, denialofservice, TLS attacks, privacy, fingerprinting, sameorigin policy, cross site scripting, authentication, JavaScript security, emerging threats, defenseindepth, and techniques for writing secure code. Course projects include writing security exploits, defending insecure web apps, and implementing emerging web standards. Prerequisite: CS 142 or equivalent web development experience.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 265:
Randomized Algorithms and Probabilistic Analysis (CME 309)
Randomness pervades the natural processes around us, from the formation of networks, to genetic recombination, to quantum physics. Randomness is also a powerful tool that can be leveraged to create algorithms and data structures which, in many cases, are more efficient and simpler than their deterministic counterparts. This course covers the key tools of probabilistic analysis, and application of these tools to understand the behaviors of random processes and algorithms. Emphasis is on theoretical foundations, though we will apply this theory broadly, discussing applications in machine learning and data analysis, networking, and systems. Topics include tail bounds, the probabilistic method, Markov chains, and martingales, with applications to analyzing random graphs, metric embeddings, random walks, and a host of powerful and elegant randomized algorithms. Prerequisites: CS 161 and STAT 116, or equivalents and instructor consent.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 269O:
Introduction to Optimization Theory (MS&E 213)
Introduction of core algorithmic techniques and proof strategies that underlie the best known provable guarantees for minimizing high dimensional convex functions. Focus on broad canonical optimization problems and survey results for efficiently solving them, ultimately providing the theoretical foundation for further study in optimization. In particular, focus will be on firstorder methods for both smooth and nonsmooth convex function minimization as well as methods for structured convex function minimization, discussing algorithms such as gradient descent, accelerated gradient descent, mirror descent, Newton's method, interior point methods, and more. Prerequisite: multivariable calculus and linear algebra.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 273B:
Deep Learning in Genomics and Biomedicine (BIODS 237, BIOMEDIN 273B, GENE 236)
Recent breakthroughs in highthroughput genomic and biomedical data are transforming biological sciences into "big data" disciplines. In parallel, progress in deep neural networks are revolutionizing fields such as image recognition, natural language processing and, more broadly, AI. This course explores the exciting intersection between these two advances. The course will start with an introduction to deep learning and overview the relevant background in genomics and highthroughput biotechnology, focusing on the available data and their relevance. It will then cover the ongoing developments in deep learning (supervised, unsupervised and generative models) with the focus on the applications of these methods to biomedical data, which are beginning to produced dramatic results. In addition to predictive modeling, the course emphasizes how to visualize and extract interpretable, biological insights from such models. Recent papers from the literature will be presented and discussed. Students will be introduced to and work with popular deep learning software frameworks. Students will work in groups on a final class project using real world datasets. Prerequisites: College calculus, linear algebra, basic probability and statistics such as CS 109, and basic machine learning such as CS 229. No prior knowledge of genomics is necessary.
Terms: Aut

Units: 3

Grading: Medical Option (MedLtrCR/NC)
CS 274:
Representations and Algorithms for Computational Molecular Biology (BIOE 214, BIOMEDIN 214, GENE 214)
Topics: introduction to bioinformatics and computational biology, algorithms for alignment of biological sequences and structures, computing with strings, phylogenetic tree construction, hidden Markov models, basic structural computations on proteins, protein structure prediction, protein threading techniques, homology modeling, molecular dynamics and energy minimization, statistical analysis of 3D biological data, integration of data sources, knowledge representation and controlled terminologies for molecular biology, microarray analysis, machine learning (clustering and classification), and natural language text processing. Prerequisite: CS 106B; recommended: CS161; consent of instructor for 3 units.
Terms: Aut

Units: 34

Grading: Medical Option (MedLtrCR/NC)
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: Aut

Units: 4

Grading: Medical Option (MedLtrCR/NC)
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: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 300:
Departmental Lecture Series
Priority given to firstyear Computer Science Ph.D. students. CS Masters students admitted if space is available. Presentations by members of the department faculty, each describing informally his or her current research interests and views of computer science as a whole.
Terms: Aut

Units: 1

Grading: Satisfactory/No Credit
CS 309A:
Cloud Computing Seminar
For science, engineering, computer science, business, education, medicine, and law students. Cloud computing is bringing information systems out of the back office and making it core to the entire economy. Furthermore with the advent of smarter machines cloud computing will be integral to building a more precision planet. This class is intended for all students who want to begin to understand the implications of this technology. Guest industry experts are public company CEOs who are either delivering cloud services or using cloud services to transform their businesses.
Terms: Aut

Units: 1

Repeatable for credit

Grading: Satisfactory/No Credit
CS 325B:
Data for Sustainable Development (EARTHSYS 162, EARTHSYS 262)
The sustainable development goals (SDGs) encompass many important aspects of human and ecosystem wellbeing that are traditionally difficult to measure. This projectbased course will focus on ways to use inexpensive, unconventional data streams to measure outcomes relevant to SDGs, including poverty, hunger, health, governance, and economic activity. Students will apply machine learning techniques to various projects outlined at the beginning of the quarter. The main learning goals are to gain experience conducting and communicating original research. Prior knowledge of machine learning techniques, such as from CS 221, CS 229, CS 231N, STATS 202, or STATS 216 is required. Open to both undergraduate and graduate students. Enrollment limited to 24. Students must apply for the class by filling out the form at https://goo.gl/forms/9LSZF7lPkHadix5D3. A permission code will be given to admitted students to register for the class.
Terms: Aut

Units: 35

Repeatable for credit

Grading: Letter or Credit/No Credit
CS 326:
Topics in Advanced Robotic Manipulation
This course provides a survey of the most important and influential concepts in autonomous robotic manipulation. It includes classical concepts that are still widely used and recent approaches that have changed the way we look autonomous manipulation. We cover approaches towards motion planning and control using visual and tactile perception as well as machine learning. This course is especially concerned with new approaches for overcoming challenges in generalization from experience, exploration of the environment, and learning representation so that these methods can scale to real problems. Students are expected to present one paper in a tutorial, debate a paper once from the Pro and once from the Con side. They are also expected to propose an original research project and work on it towards a research paper. Recommended: CS 131, 223A, 229 or equivalents.
Terms: Aut

Units: 34

Grading: Letter or Credit/No Credit
CS 330:
Deep Multitask and Meta Learning
While deep learning has achieved remarkable success in supervised and reinforcement learning problems, such as image classification, speech recognition, and game playing, these models are, to a large degree, specialized for the single task they are trained for. This course will cover the setting where there are multiple tasks to be solved, and study how the structure arising from multiple tasks can benleveraged to learn more efficiently or effectively. This includes: goalconditioned reinforcement learning techniques that leverage the structure of the provided goal space to learn many tasks significantly faster; metalearning methods that aim to learn efficient learning algorithms that can learn new tasks quickly; curriculum and lifelong learning, where the problem requires learning a sequence of tasks, leveraging their shared structure to enable knowledge transfer. This is a graduatelevel course. By the end of the course, students should be able to understand andnimplement the stateoftheart multitask learning algorithms and be ready to conduct research on these topics. Prerequisites: CS 229 or equivalent. Familiarity with deep learning, reinforcement learning, and machine learning is assumed.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 336:
Robot Perception and DecisionMaking: Optimal and Learningbased Approaches
How can robots perceive the world and their own motion so that they can accomplish navigation and manipulation tasks? In this course, we will study how this question has been approached specifically if the robot is equipped with visual sensing capabilities. We focus on studying how a robot can make decisions based on raw, highdimensional sensory data that represents only partial, noisy observations of the environment. Therefore, the course is divided into two main themes (i) Estimation and (ii) DecisionMaking and Control where in each theme we will study traditional approaches, learningbased methods and combinations of those. Prerequisites: CS106B, MATH 51 or CME 100, CS109, CS 221 or CS 229.
Terms: Aut

Units: 34

Grading: Letter or Credit/No Credit
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, Object 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

Units: 1

Grading: Medical Option (MedLtrCR/NC)
Instructors: ;
Downing, N. (PI);
Landay, J. (PI);
Li, F. (PI);
Niebles Duque, J. (PI);
Landay, J. (SI);
Li, F. (SI);
Li, J. (SI);
Milstein, A. (SI);
Murnane, E. (SI);
Niebles Duque, J. (SI)
CS 342:
Building for Digital Health (MED 253)
This projectbased course will provide a comprehensive overview of key requirements in the design and fullstack implementation of a digital health research application. Several prevetted and approved projects from the Stanford School of Medicine will be available for students to select from and build. Student teams learn about all necessary approval processes to deploy a digital health solution (data privacy clearance/I RB approval, etc.) and be guided in the development of frontend and backend infrastructure using best practices. The final project will be the presentation and deployment of a fully approved digital health research application. CS106A, CS106B, Recommended: CS193P/A, CS142, CS47, CS110. Limited enrollment for this course. Students need to submit their application online via: https://docs.google.com/forms/d/e/1FAIpQLSfENFanSf9TL8fvCS9RSLOQ90g_NF2_lETx3pQ8Y8BjxToR7g/viewform
Terms: Aut

Units: 3

Grading: Medical Option (MedLtrCR/NC)
CS 356:
Topics in Computer and Network Security
Research seminar covering foundational work and current topics in computer and network security. Students will read and discuss published research papers as well as complete an original research project in small groups. Open to Ph.D. and masters students as well as advanced undergraduate students. Prerequisites: While the course has no official prerequisites, students need a mature understanding of software systems and networks to be successful. We strongly encourage students to first take CS155: Computer and Network Security.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 357:
Advanced Topics in Formal Methods
Topics vary annually. Recent offerings have covered the foundations of static analysis, including decision procedures for important theories (SAT, linear integer constraints, SMT solvers), model checking, abstract interpretation, and constraintbased analysis. May be repeated for credit.
Terms: Aut

Units: 3

Repeatable for credit

Grading: Letter or Credit/No Credit
CS 375:
LargeScale Neural Network Modeling for Neuroscience (PSYCH 249)
Introduction to designing, building, and training largescale neural networks for modeling brain and behavioral data, including: deep convolutional neural network models of sensory systems (vision, audition, somatosensation); variational and generative methods for neural interpretation; recurrent neural networks for dynamics, memory and attention; interactive agentbased deep reinforcement learning for cognitive modeling; and methods and metrics for comparing such models to realworld neural data. Attention will be given both to established methods as well as cuttingedge techniques. Students will learn conceptual bases for deep neural network models and will also implement learn to implement and train largescale models in Tensorflow using GPUs. Requirements: Fluency in Unix shell and Python programming; familiarity with differential equations, linear algebra, and probability theory; priori experience with modern machine learning concepts (e.g. CS229) and basic neural network training tools (eg. CS230 and/or CS231n). Prior knowledge of basic cognitive science or neuroscience not required but helpful.
Terms: Aut

Units: 13

Grading: Letter or Credit/No Credit
CS 377T:
Topics in HumanComputer Interaction: Teaching Studio Classes
Studio teaching is a practice that dates back to the apprentice days of art studios. In this course, you will learn to teach project based classes that include critique. We will also cover effective coaching, design of projects and exercises, and curating material in order to maximize the effectiveness of a flipped classroom. Recommended for TAs in HCI.
Terms: Aut

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 under their faculty advisor 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. CS390A, CS390B, and CS390C 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);
Pavone, M. (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 under their faculty advisor 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. CS390A, CS390B, and CS390C 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);
Pavone, M. (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);
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);
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 under their faculty advisor 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. CS 390A, CS390B, and CS390C 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);
Pavone, M. (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 195. Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science PhD students engage in research and integrate that work into their academic program. Students register under their faculty advisor 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

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);
Durumeric, Z. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fatahalian, K. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Finn, C. (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);
Hayden, 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);
Liu, C. (PI);
Ma, T. (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);
Pavone, M. (PI);
Piech, C. (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);
Rubinstein, A. (PI);
Saberi, A. (PI);
Sadigh, D. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Schwarz, K. (PI);
Shoham, Y. (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);
Yan, L. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI)
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 398:
Computational Education
This course covers cuttingedge education algorithms used to model students, assess learning, and design widely deployable tools for open access education. The goal of the course is for you to be ready to lead your own computation education research project. Topics include knowledge tracing, generative grading, teachable agents, and challenges and opportunities implementing computational education in diverse contexts around the world. The course will consist of group and individual work and encourages creativity. Recommended: CS 142 and/or CS 221. Prerequisites: CS 106B and 109.
Terms: Aut

Units: 4

Grading: Letter or Credit/No Credit
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);
Bohg, J. (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);
Montgomery, 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);
Sidford, A. (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 476A:
Music, Computing, Design I: The Art of Design (MUSIC 256A)
Creative design for computer music software. Programming, audiovisual design, as well as software design for musical tools, instruments, toys, and games. Provides paradigms and strategies for designing and building music software, with emphases on interactive systems, aesthetics, and artful product design. Course work includes several programming assignments and a "design+implement" final project. Prerequisite: experience in C/C++ and/or Java.See https://ccrma.stanford.edu/courses/256a/
Terms: Aut

Units: 34

Grading: Letter (ABCD/NP)
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);
Finn, C. (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);
Pavone, M. (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);
Utterback, C. (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);
Durumeric, Z. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fatahalian, K. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Finn, C. (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);
Pavone, M. (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);
Utterback, C. (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 522:
Seminar in Artificial Intelligence in Healthcare
Artificial intelligence is poised to make radical changes in healthcare, transforming areas such as diagnosis, genomics, surgical robotics, and drug discovery. In the coming years, artificial intelligence has the potential to lower healthcare costs, identify more effective treatments, and facilitate prevention and early detection of diseases. This class is a seminar series featuring prominent researchers, physicians, entrepreneurs, and venture capitalists, all sharing their thoughts on the future of healthcare. We highly encourage students of all backgrounds to enroll (no AI/healthcare background necessary). Speakers and more at shift.stanford.edu/healthai.
Terms: Aut

Units: 1

Grading: Satisfactory/No Credit
CS 529:
Robotics and Autonomous Systems Seminar (AA 289)
Seminar talks by researchers and industry professionals on topics related to modern robotics and autonomous systems. Broadly, talks will cover robotic design, perception and navigation, planning and control, and learning for complex robotic systems. May be repeated for credit.
Terms: Aut, Win, Spr

Units: 1

Repeatable for credit

Grading: Satisfactory/No Credit
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 581:
Media Innovation
This course will introduce students interested in computer science, engineering, and media to what¿s possible and probable when it comes to media innovation. nnSpeakers from multiple disciplines and industry will discuss a range of topics in the context of evolving media with a focus on the technical trends, opportunities and challenges surfacing in the unfolding media ecosystem. Speakers will underscore the need to innovate to survive in the media and information industries. Open to both undergraduates and graduate students.
Terms: Aut

Units: 1

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);
Finn, C. (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);
Pavone, M. (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);
Utterback, C. (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)