CS 1C:
Introduction to Computing at Stanford
For those with limited experience with computers or 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 9:
ProblemSolving for the CS Technical Interview
This course will prepare students to interview for software engineering and related internships and fulltime positions in industry. Drawing on multiple sources of actual interview questions, students will learn key problemsolving strategies specific to the technical/coding interview. Students will be encouraged to synthesize information they have learned across different courses in the major. Emphasis will be on the oral and combination writtenoral modes of communication common in coding interviews, but which are unfamiliar settings for problem solving for many students. Prerequisites: CS 106B or X.
Terms: Aut

Units: 1

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

UG Reqs: WAYCE

Grading: Letter or Credit/No Credit
CS 50:
Using Tech for Good
Students in the class will work in small teams to implement highimpact projects for partner organizations. Taught by the CS+Social Good team, the aim of the class is to empower you to leverage technology for social good by inspiring action, facilitating collaboration, and forging pathways towards global change. Recommended: CS 106B, CS 42 or 142. Class is open to students of all years. May be repeated for credit. Cardinal Course certified by the Haas Center.
Terms: Aut, Spr

Units: 2

Repeatable for credit

Grading: Satisfactory/No Credit
CS 53SI:
Discussion in Tech for Good
This course introduces students to various intersections of social good and technology through a weekly discussion and speaker series. Students will be given a space to exchange ideas and experiences regarding a certain social issue. Invited speakers come from industry, academia, and nonprofit organizations. They will share their career paths, what drove them to these fields, and advice for students. The topics examined will span a broad variety of social issues  from race and class to education and sustainability  and help students better understand how to kick off their journey in using computer science for social good.
Terms: Aut

Units: 1

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

Units: 3

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

Units: 34

UG Reqs: WAYAQR

Grading: Letter or Credit/No Credit
Instructors: ;
Widom, J. (PI);
Chen, S. (TA);
Haigh, A. (TA);
Jang, J. (TA);
Kilpatrick, J. (TA);
Kunnasagaran, A. (TA);
Kurtzner, K. (GP);
Meister, C. (TA);
Min, J. (TA);
Pinkerton, R. (TA);
Shen, K. (TA);
Wang, L. (TA)
CS 103:
Mathematical Foundations of Computing
Mathematical foundations required for computer science, including propositional predicate logic, induction, sets, functions, and relations. Formal language theory, including regular expressions, grammars, finite automata, Turing machines, and NPcompleteness. Mathematical rigor, proof techniques, and applications. Prerequisite: CS106B or equivalent. CS106B may be taken concurrently with CS103.
Terms: Aut, Win, Spr

Units: 35

UG Reqs: GER:DBMath, WAYFR

Grading: Letter or Credit/No Credit
Instructors: ;
Lee, C. (PI);
Schwarz, K. (PI);
Agu, C. (TA);
Amdur, G. (TA);
Dasu, G. (TA);
Fosli, I. (TA);
Gulshen, K. (TA);
Guo, N. (TA);
Hernandez, D. (TA);
Liu, A. (TA);
Mistele, M. (TA);
Murphy, D. (TA);
Ostrow, R. (TA);
RottmanYang, S. (TA);
SHAO, L. (TA);
Salgado, F. (TA);
Seshadri, S. (TA);
Suarez Robles, I. (TA);
Valdivia, H. (TA);
Wang, K. (TA);
Wang, Y. (TA);
Xu, K. (TA)
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, Spr

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

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

Grading: Letter or Credit/No Credit
CS 106A:
Programming Methodology (ENGR 70A)
Introduction to the engineering of computer applications emphasizing modern software engineering principles: objectoriented design, decomposition, encapsulation, abstraction, and testing. Emphasis is on good programming style and the builtin facilities of respective languages. No prior programming experience required. Summer quarter enrollment is limited. Alternative versions of CS106A are available which cover most of the same material but in different programming languages: Java [Fall, Win, Spr, or Sum qtr enroll in CS106A Section 1] Javascript [Fall qtr enroll in CS 106A Section 2] Python [Winter or Spring qtr enroll in CS 106A Section 3]
Terms: Aut, Win, Spr, Sum

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

Grading: Letter or Credit/No Credit
Instructors: ;
Cain, J. (PI);
Kincaid, C. (PI);
Parlante, N. (PI);
Piech, C. (PI);
Sahami, M. (PI);
Chen, J. (TA);
Daniel, J. (TA);
Gregory, K. (TA);
Troccoli, N. (TA);
Troccoli, N. (GP)
CS 106AJ:
Programming Methodology in JavaScript
Introduction to the engineering of computer applications emphasizing modern software engineering principles: objectoriented design, decomposition, encapsulation, abstraction, and testing. Uses the JavaScript programming language. Emphasis is on good programming style and the builtin facilities of the JavaScript language. No prior programming experience required. This course covers most of the same material as CS106A Section 1 in Java and CS 106A Section 3 in Python, but this course uses the JavaScript programming language. To enroll in this class, enroll in CS 106A Section 2 for Fall Qtr. May be taken for 3 units by grad students.
Terms: Aut

Units: 35

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

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

Grading: Letter or Credit/No Credit
CS 106X:
Programming Abstractions (Accelerated) (ENGR 70X)
Intensive version of 106B for students with a strong programming background interested in a rigorous treatment of the topics at an accelerated pace. Additional advanced material and more challenging projects. Winter quarter assignments will be based in CS department research. Prerequisite: excellence in 106A or equivalent, or consent of instructor. Winter quarter enrollment limited to 30.
Terms: Aut, Win

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

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

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

Grading: Letter or Credit/No Credit
Instructors: ;
Chang, M. (PI);
Gregg, C. (PI);
Zelenski, J. (PI);
Chute, C. (TA);
Culberg, K. (TA);
Deng, L. (TA);
Drach, M. (TA);
Fisher, G. (TA);
Grazian, D. (TA);
Gross, R. (TA);
KaplanNelson, S. (TA);
Lam, M. (TA);
Lin, C. (TA);
Ling, E. (TA);
Louie, J. (TA);
Marx, E. (TA);
Plattner, C. (TA);
Robert, Z. (TA);
Rodriguez, W. (TA);
Samar, A. (TA);
Tran, C. (TA);
VazquezGuzman, R. (TA);
Wang, C. (TA);
Wegrzynski, M. (TA)
CS 108:
ObjectOriented Systems Design
Software design and construction in the context of large OOP libraries. Taught in Java. Topics: OOP design, design patterns, testing, graphical user interface (GUI) OOP libraries, software engineering strategies, approaches to programming in teams. Prerequisite: 107.
Terms: Aut, Win

Units: 34

UG Reqs: GER:DBEngrAppSci

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

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYAQR, WAYFR

Grading: Letter or Credit/No Credit
Instructors: ;
Piech, C. (PI);
Sahami, M. (PI);
Yan, L. (PI);
Banerjee, O. (TA);
Chartock, E. (TA);
Chen, J. (TA);
Chen, W. (TA);
Corcoran, B. (TA);
Daniel, J. (TA);
Dasu, G. (TA);
Glaser, N. (TA);
Hemmati, S. (TA);
Istrate, A. (TA);
Johnston, L. (TA);
Kim, S. (TA);
Le, Y. (TA);
Liu, Y. (TA);
Moore, D. (TA);
Palamuttam, R. (TA);
Prasetio, M. (TA);
Redondo, E. (TA);
Shukla, A. (TA);
Ulmer, B. (TA);
Wright, D. (TA);
Yan, L. (TA)
CS 110:
Principles of Computer Systems
Principles and practice of engineering of computer software and hardware systems. Topics include: techniques for controlling complexity; strong modularity using clientserver design, virtual memory, and threads; networks; atomicity and coordination of parallel activities; security, and encryption; and performance optimizations. Prerequisite: 107.
Terms: Aut, Spr, Sum

Units: 35

UG Reqs: GER:DBEngrAppSci

Grading: Letter or Credit/No Credit
Instructors: ;
Cain, J. (PI);
Eberhardt, R. (PI);
Akujobi, I. (TA);
Denton, M. (TA);
Dumovic, M. (TA);
Goyal, K. (TA);
Kini, H. (TA);
Lin, C. (TA);
Liu, B. (TA);
Ma, J. (TA);
McKinnon, J. (TA);
Painter, M. (TA);
Tran, C. (TA);
Warshaw, D. (TA);
Wood, S. (TA)
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 142:
Web Applications
Concepts and techniques used in constructing interactive web applications. Browserside web facilities such as HTML, cascading stylesheets, the document object model, and JavaScript frameworks and Serverside technologies such as serverside JavaScript, sessions, and objectoriented databases. Issues in web security and application scalability. New models of web application deployment. Prerequisites: CS 107 and CS 108.
Terms: Aut, Spr

Units: 3

Grading: Letter or Credit/No Credit
Instructors: ;
Rosenblum, M. (PI);
Blaine, E. (TA);
Chen, J. (TA);
Go, C. (TA);
Han, A. (TA);
Lee, H. (TA);
Mai, D. (TA);
Poore, A. (TA);
Prasetio, M. (TA);
Pyke, J. (TA);
Tai, N. (TA);
Wu, H. (TA);
Wu, X. (TA);
Xing, Y. (TA)
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
Instructors: ;
Levis, P. (PI);
McKeown, N. (PI);
Winstein, K. (PI);
Dornadula, A. (TA);
Fisher, G. (TA);
Garcia, G. (TA);
Go, B. (TA);
Nazaroff, L. (GP);
Orbay, E. (TA);
Yan, L. (TA);
Yoshida, K. (TA)
CS 145:
Introduction to Databases
The course covers database design and the use of database management systems for applications. It includes extensive coverage of the relational model, relational algebra, and SQL.The course includes database design and relational design principles based on dependencies and normal forms. Many additional key database topics from the design and applicationbuilding perspective are also covered: indexes, views, transactions, authorization, integrity constraints, triggers, online analytical processing (OLAP), JSON, and emerging NoSQL systems. Class time will include guest speakers from industry and additional advanced topics as time and class interest permits. Prerequisites: 103 and 107 (or equivalent).
Terms: Aut

Units: 34

UG Reqs: GER:DBEngrAppSci

Grading: Letter or Credit/No Credit
Instructors: ;
Bailis, P. (PI);
Bagul, A. (TA);
Balakrishnan, T. (TA);
Bhargava, D. (TA);
Chen, W. (TA);
Hemmati, S. (TA);
Jeong, D. (TA);
Kim, S. (TA);
Shah, P. (TA);
Sun, L. (TA);
Tang, S. (TA);
Vu, A. (TA);
Wang, V. (TA);
Wu, H. (TA)
CS 146:
Introduction to Game Design and Development
This projectbased course provides an introduction to game design covering topics like 2D/3D Art, Audio, User Interfaces, Production, Narrative Design, Marketing, and Publishing. Speakers from the profession will provide relevant context during a weekly seminar. Weekly assignments include indepth materials and require students to independently create small video games. Classroom meetings will be used to foster student project discussions, and deepen understanding of material. The course culminates with students forming project teams to create a final video game. Assignments will be completed within the Unity game development engine; prior Unity experience is not required. Given class size limitations, an online survey will be distributed before class starts and students will be selected so to achieve a diverse class composition. Prerequisite: CS 106A or equivalent programming experience.
Terms: Aut

Units: 3

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. Focuses on using OpenGL to create visual imagery, as well as an understanding of the underlying mathematical concepts including triangles, normals, interpolation, texture mapping, bump mapping, etc. Course will cover fundamental understanding of light and color, as well as how it impacts computer displays and printers. Class will discuss more thoroughly how light interacts with the environment, constructing engineering models such as the BRDF, plus various simplifications into more basic lighting and shading models. Also covers ray tracing technology for creating virtual images, while drawing parallels between ray tracers and real world cameras to illustrate various concepts. Antialiasing and acceleration structures are also 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. Prerequisites: CS 107, MATH 51.
Terms: Aut

Units: 34

UG Reqs: GER:DBEngrAppSci, WAYCE

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:
Logic and Automated Reasoning
An elementary exposition from a computational point of view of propositional and predicate logic, axiomatic theories, and theories with equality and induction. Interpretations, models, validity, proof, strategies, and applications. Automated deduction: polarity, skolemization, unification, resolution, equality. Prerequisite: 103 or 103B.
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
Instructors: ;
Eng, D. (PI);
Guibas, L. (PI);
Wootters, M. (PI);
Blaine, E. (TA);
Chatziafratis, V. (TA);
Chen, J. (TA);
Chen, M. (TA);
Chen, S. (TA);
Chen, W. (TA);
Corcoran, B. (TA);
Diana, E. (TA);
Gabrielsson, R. (TA);
Garcia, A. (TA);
Hu, S. (TA);
Kim, S. (TA);
Murphy, D. (TA);
Paskov, I. (TA);
Redondo, E. (TA);
Su, J. (TA);
Vu, A. (TA);
Warshaw, D. (TA);
Wright, D. (TA);
Wu, X. (TA)
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);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Lee, C. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (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);
Potts, C. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Saxena, A. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Sosic, R. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Wang, G. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wootters, M. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Gallegos, Y. (GP);
George, S. (GP);
Harris, R. (GP);
Savarese, S. (GP)
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);
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);
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);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Montanari, A. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Pande, V. (PI);
Parlante, N. (PI);
Pea, R. (PI);
Piech, C. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Potts, C. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Saberi, A. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Saxena, A. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Wang, G. (PI);
Wetzstein, G. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI);
Gallegos, Y. (GP);
George, S. (GP);
Harris, R. (GP)
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);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (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);
Gallegos, Y. (GP);
George, S. (GP)
CS 193P:
iOS Application Development
Tools and APIs required to build applications for the iPhone and iPad platforms using the iOS SDK. User interface design for mobile devices and unique user interactions using multitouch technologies. Objectoriented design using modelviewcontroller paradigm, memory management, Swift programming language. Other topics include: objectoriented database API, animation, multithreading, networking and performance considerations. nPrerequisites: C language and objectoriented programming experience exceeding 106B or X level. Previous completion of any one of the following is required: CS 107<https://explorecourses.stanford.edu/search?view=catalog&filtercoursestatusActive=on&page=0&q=CS107>, 108 (preferred) or 110. Recommended: UNIX, graphics, databases.
Terms: Aut, Spr

Units: 3

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

Units: 34

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

Units: 1

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

Units: 16

Repeatable for credit

Grading: Letter (ABCD/NP)
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Borenstein, J. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Brunskill, E. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fatahalian, K. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
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);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Niebles Duque, J. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Pande, V. (PI);
Parlante, N. (PI);
Pea, R. (PI);
Piech, C. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Potts, C. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sadigh, D. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Saxena, A. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wootters, M. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Gallegos, Y. (GP);
George, S. (GP);
Harris, R. (GP)
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);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Borenstein, J. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Cao, P. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Lee, C. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Lin, H. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Parlante, N. (PI);
Piech, C. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Saxena, A. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Socher, R. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wootters, M. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI);
Gallegos, Y. (GP);
George, S. (GP)
CS 202:
Law for Computer Science Professionals
Intellectual property law as it relates to computer science including copyright registration, patents, and trade secrets; contract issues such as nondisclosure/noncompete agreements, license agreements, and worksmadeforhire; dispute resolution; and principles of business formation and ownership. Emphasis is on topics of current interest such as open source and the free software movement, peertopeer sharing, encryption, data mining, and spam.
Terms: Aut

Units: 1

Grading: Satisfactory/No Credit
CS 206:
Exploring Computational Journalism (COMM 281)
This course will explore the evolving field of computational journalism. Students will research and discuss the state of the field, and do projects in areas such as understanding the media ecosystem, stimulating media creation, and assessing media impact. Admission by application; please email James Hamilton at jayth@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. Enrollment limited to students in the Master's program in Computer Science Education.
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
Instructors: ;
Ermon, S. (PI);
Liang, P. (PI);
Sadigh, D. (PI);
Baker, D. (TA);
Barnes, Z. (TA);
Beigi, B. (TA);
Bie, Z. (TA);
Blundell, H. (TA);
Despo, O. (TA);
Duan, T. (TA);
Eng, D. (TA);
Gabrielsson, R. (TA);
He, B. (TA);
Holmstrom, M. (TA);
Jiang, H. (TA);
Khandwala, N. (TA);
Kim, H. (TA);
Kurenkov, A. (TA);
Li, S. (TA);
Liu, D. (TA);
Mei, X. (TA);
Mussmann, S. (TA);
Peddada, A. (TA);
Pryzant, R. (TA);
Rege, A. (TA);
Sachidananda, V. (TA);
Sathya Moorthy, M. (TA);
Sauer, C. (TA);
Wang, A. (TA);
Wang, F. (TA);
Xing, M. (TA);
Yuan, Y. (TA)
CS 224W:
Analysis of Networks
Networks are a fundamental tool for modeling complex social, technological, and biological systems. Coupled with emergence of online social networks and largescale data availability in biological sciences, this course focuses on the analysis of massive networks which provide many computational, algorithmic, and modeling challenges. This course develops computational tools that reveal how the social, technological, and natural worlds are connected, and how the study of networks sheds light on these connections. nTopics include: how information spreads through society; robustness and fragility of food webs and financial markets; algorithms for the World Wide Web; friend prediction in online social networks; 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, model/feature selection, learning theory, VC dimension, 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

Units: 34

Grading: Letter or Credit/No Credit
Instructors: ;
Boneh, D. (PI);
Ng, A. (PI);
Qu, S. (PI);
Avati, A. (TA);
Cho, P. (TA);
Dery, L. (TA);
Dwaracherla, V. (TA);
Genthial, G. (TA);
Haque, A. (TA);
Heereguppe Radhakrishna, S. (TA);
Huang, J. (TA);
Irvin, J. (TA);
Jiang, Q. (TA);
Koochak, Z. (TA);
Le Calonnec, Y. (TA);
Legros, F. (TA);
Li, H. (TA);
Liu, V. (TA);
Liu, X. (TA);
Mahajan, A. (TA);
Mehra, S. (TA);
Meng, C. (TA);
Oshri, B. (TA);
Patil, I. (TA);
Sankar, V. (TA);
Voisin, M. (TA);
Wu, Y. (TA);
Xie, Z. (TA);
Yue, C. (TA);
Zhang, B. (TA)
CS 230:
Deep Learning
Deep Learning is one of the most highly sought after skills in AI. We will help you become good at Deep Learning. In this course, you will learn the foundations of Deep Learning, understand how to build neural networks, and learn how to lead successful machine learning projects. You will learn about Convolutional networks, RNNs, LSTM, Adam, Dropout, BatchNorm, Xavier/He initialization, and more. You will work on case studies from healthcare, autonomous driving, sign language reading, music generation, and natural language processing. You will master not only the theory, but also see how it is applied in industry. You will practice all these ideas in Python and in TensorFlow, which we will teach. AI is transforming multiple industries. After this course, you will likely find creative ways to apply it to your work. This class is taught in the flippedclassroom format. You will watch videos and complete indepth programming assignments and online quizzes at home, then come in to class for advanced discussions and work on projects. This class will culminate in an openended final project, which the teaching team will help you on. Prerequisites: Familiarity with programming in Python and Linear Algebra (matrix / vector multiplications). CS 229 may be taken concurrently.
Terms: Aut, Win, Spr

Units: 34

Grading: Letter or Credit/No Credit
Instructors: ;
Katanforoosh, K. (PI);
Ng, A. (PI);
Bagul, A. (TA);
Barnes, Z. (TA);
Bartolome Aramburu, C. (TA);
Cho, P. (TA);
Dery, L. (TA);
Eng, D. (TA);
Genthial, G. (TA);
Heereguppe Radhakrishna, S. (TA);
Hemmati, S. (TA);
Kaplan, R. (TA);
Keramati, R. (TA);
Koochak, Z. (TA);
Le Calonnec, Y. (TA);
Liu, X. (TA);
Mahajan, A. (TA);
Moindrot, O. (TA);
Momeni, A. (TA);
Nair, S. (TA);
Shenoi, A. (TA);
Whang, J. (TA);
Yang, B. (TA)
CS 238:
Decision Making under Uncertainty (AA 228)
This course is designed to increase awareness and appreciation for why uncertainty matters, particularly for aerospace applications. Introduces decision making under uncertainty from a computational perspective and provides an overview of the necessary tools for building autonomous and decisionsupport systems. Following an introduction to probabilistic models and decision theory, the course will cover computational methods for solving decision problems with stochastic dynamics, model uncertainty, and imperfect state information. Topics include: Bayesian networks, influence diagrams, dynamic programming, reinforcement learning, and partially observable Markov decision processes. Applications cover: air traffic control, aviation surveillance systems, autonomous vehicles, and robotic planetary exploration. Prerequisites: basic probability and fluency in a highlevel programming language.
Terms: Aut

Units: 34

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

Units: 2

Repeatable for credit

Grading: Letter or Credit/No Credit
CS 242:
Programming Languages
Central concepts in modern programming languages, impact on software development, language design tradeoffs, and implementation considerations. Functional, imperative, and objectoriented paradigms. Formal semantic methods and program analysis. Modern type systems, higher order functions and closures, exceptions and continuations. Modularity, objectoriented languages, and concurrency. Runtime support for language features, interoperability, and security issues. Prerequisite: 107, or experience with Lisp, C, and an objectoriented language.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 244B:
Distributed Systems
Distributed operating systems and applications issues, emphasizing highlevel protocols and distributed state sharing as the key technologies. Topics: distributed shared memory, objectoriented distributed system design, distributed directory services, atomic transactions and time synchronization, applicationsufficient consistency, file access, process scheduling, process migration, and storage/communication abstractions on distribution, scale, robustness in the face of failure, and security. Prerequisites: CS 144.
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 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 CS109, and basic machine learning such as CS229. 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 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 315B:
Parallel Computing Research Project
Advanced topics and new paradigms in parallel computing including parallel algorithms, programming languages, runtime environments, library debugging/tuning tools, and scalable architectures. Research project. Prerequisite: consent of instructor.
Terms: Aut

Units: 3

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

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 331B:
Representation Learning in Computer Vision
A representation performs the task of converting an observation in the real world (e.g. an image, a recorded speech signal, a word in a sentence) into a mathematical form (e.g. a vector). This mathematical form is then used by subsequent steps (e.g. a classifier) to produce the outcome, such as classifying an image or recognizing a spoken word. Forming the proper representation for a task is an essential problem in modern AI. In this course, we focus on 1) establishing why representations matter, 2) classical and moderns methods of forming representations in Computer Vision, 3) methods of analyzing and probing representations, 4) portraying the future landscape of representations with generic and comprehensive AI/vision systems over the horizon, and finally 5) going beyond computer vision by talking about nonvisual representations, such as the ones used in NLP or neuroscience. The course will heavily feature systems based on deep learning and convolutional neural networks. We will have several teaching lectures, a number of prominent external guest speakers, as well as presentations by the students on recent papers and their projects. nnRequired Prerequisites: CS131A, CS231A, CS231B, or CS231N. If you do not have the required prerequisites, please contact a member of the course staff before enrolling in this course.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 332:
Advanced Survey of Reinforcement Learning
This class will provide a core overview of essential topics and newnresearch frontiers in reinforcement learning. Planned topics include:nmodel free and model based reinforcement learning, policy search, MontenCarlo Tree Search planning methods, off policy evaluation, exploration,nimitation learning, temporal abstraction/hierarchical approaches, safetynand risk sensitivity, humanintheloop RL, inverse reinforcementnlearning, learning to communicate, and insights from human learning.nStudents are expected to create an original research paper on a relatedntopic. Prerequisites: CS221 or AA238/CS238 or CS234 or CS229 or similarnexperience.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 333:
Safe and Interactive Robotics
Once confined to the manufacturing floor, robots are quickly entering the public space at multiple levels: drones, surgical robots, service robots, and selfdriving cars are becoming tangible technologies impacting the human experience. Our goal in this class is to learn about and design algorithms that enable robots to reason about their actions, interact with one another, the humans, and the environment they live in, as well as plan safe strategies that humans can trust and rely on.nThis is a projectbased graduate course that studies algorithms in formal methods, control theory, and robotics, which can improve the stateoftheart humanrobot systems. We focus on designing new algorithms for enhancing safe and interactive autonomy. nnRecommended: Introductory course in AI and robotics.
Terms: Aut

Units: 34

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

Units: 3

Grading: Letter or Credit/No Credit
CS 349D:
Cloud Computing Technology
The largest change in the computer industry over the past five years has arguably been the emergence of cloud computing: organizations are increasingly moving their workloads to managed public clouds and using new, globalscale services that were simply not possible in private datacenters. However, both building and using cloud systems remains a black art with many difficult research challenges. This research seminar will cover industry and academic work on cloud computing and survey challenges including programming interfaces, cloud native applications, resource management, pricing, availability and reliability, privacy and security. Students will also propose and develop an original research project.n nPrerequisites: For graduate students, background in computer systems (CS 240, 244, 244B or 245) is strongly recommended. Undergrads will need instructor's approval.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 375:
LargeScale Neural Network Modeling for Neuroscience (PSYCH 249)
Introduction to designing, building, and training neural networks for modeling brain and behavioral data, including: deep convolutional neural network models of sensory systems (vision, audition, somatosensation); recurrent neural networks for dynamics, memory and attention; integration of variational and generative methods 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, and one or more courses in cognitive or systems neuroscience.
Terms: Aut

Units: 3

Grading: Letter (ABCD/NP)
CS 376:
HumanComputer Interaction Research
Prepares students to conduct original HCI research by reading and discussing seminal and cuttingedge research papers. Main topics are ubiquitous computing, social computing, and design and creation; breadth topics include HCI methods, programming, visualization, and user modeling. Student pairs perform a quarterlong research project. Prerequisites: For CS and Symbolic Systems undergraduates/masters students, an A or better in CS 147 or CS 247. No prerequisite for PhD students or students outside of CS and Symbolic Systems.
Terms: Aut

Units: 34

Repeatable for credit

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

Units: 1

Grading: Satisfactory/No Credit
Instructors: ;
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);
Bradski, G. (PI);
Brafman, R. (PI);
Brunskill, E. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Chang, 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);
Fischer, M. (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);
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);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Niebles Duque, J. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Pande, V. (PI);
Parlante, N. (PI);
Pea, R. (PI);
Piech, C. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
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);
Schwarz, K. (PI);
Shoham, Y. (PI);
Sosic, R. (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);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI);
Gallegos, Y. (GP);
George, S. (GP)
CS 390B:
Curricular Practical Training
Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in internship work and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and followon projects they expect to perform. 390A,B,C may each be taken once.
Terms: Aut, Win, Spr, Sum

Units: 1

Grading: Satisfactory/No Credit
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (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);
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);
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);
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);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Parlante, N. (PI);
Pea, R. (PI);
Piech, C. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
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);
Gallegos, Y. (GP);
George, S. (GP)
CS 390C:
Curricular Practical Training
Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in internship work and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and followon projects they expect to perform. 390A,B,C may each be taken once.
Terms: Aut, Win, Spr, Sum

Units: 1

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

Units: 1

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

Units: 1

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

Units: 1

Grading: Satisfactory/No Credit
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Dwork, C. (PI);
Engler, D. (PI);
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);
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);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Montanari, A. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Pande, V. (PI);
Parlante, N. (PI);
Plotkin, S. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Saberi, A. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Young, P. (PI);
Zelenski, J. (PI)
CS 390V:
Parttime Curricular Practical Training
For qualified computer science PhD students only. Permission number required for enrollment; see the CS PhD program administrator in Gates room 196. May be taken just once; not repeatable. Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in research and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and followon projects they expect to perform. Students on F1 visas should be aware that completing 12 or more months of fulltime CPT will make them ineligible for Optional Practical Training (OPT).
Terms: Aut, Win, Spr, Sum

Units: 1

Grading: Satisfactory/No Credit
CS 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);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (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);
Gallegos, Y. (GP);
George, S. (GP)
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);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (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);
Gallegos, Y. (GP);
George, S. (GP)
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);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Barrett, C. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
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);
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);
Lee, C. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
MacCartney, B. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (PI);
Mitchell, J. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Niebles Duque, J. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Pande, V. (PI);
Parlante, N. (PI);
Pea, R. (PI);
Piech, C. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Sadigh, D. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Saxena, A. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Socher, R. (PI);
Sosic, R. (PI);
Stepp, M. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Wang, G. (PI);
Wetzstein, G. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wootters, M. (PI);
Yamins, D. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Gallegos, Y. (GP);
George, S. (GP);
Harris, R. (GP)
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);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Lee, C. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (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);
Reingold, O. (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);
Wootters, M. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Gallegos, Y. (GP);
George, S. (GP)
CS 428:
Computation and cognition: the probabilistic approach (PSYCH 204)
This course will introduce the probabilistic approach to cognitive science, in which learning and reasoning are understood as inference in complex probabilistic models. Examples will be drawn from areas including concept learning, causal reasoning, social cognition, and language understanding. Formal modeling ideas and techniques will be discussed in concert with relevant empirical phenomena.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
CS 448B:
Data Visualization
Techniques and algorithms for creating effective visualizations based on principles from graphic design, visual art, perceptual psychology, and cognitive science. Topics: graphical perception, data and image models, visual encoding, graph and tree layout, color, animation, interaction techniques, automated design. Lectures, reading, and project. Prerequisite: one of 147, 148, or equivalent.
Terms: Aut

Units: 3

Repeatable for credit

Grading: Letter or Credit/No Credit
CS 476A:
Music, Computing, Design I: Art of Design for Computer Music (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);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fatahalian, K. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Follmer, S. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goel, S. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
Icard, T. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Ma, T. (PI);
Mackey, L. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Montanari, A. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Parlante, N. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
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);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
Widom, J. (PI);
Wiederhold, G. (PI);
Williams, R. (PI);
Williams, V. (PI);
Winograd, T. (PI);
Winstein, K. (PI);
Wootters, M. (PI);
Yamins, D. (PI);
Young, P. (PI);
Zaharia, M. (PI);
Zelenski, J. (PI);
Zou, J. (PI);
Gallegos, Y. (GP);
George, S. (GP)
CS 499P:
Advanced Reading and Research
Graded satisfactory/no credit. Advanced reading and research for CS graduate students. Register using the section number associated with the instructor. Prerequisite: consent of instructor. This course is for graduate students only. Undergraduate students should enroll in CS199P.
Terms: Aut, Win, Spr, Sum

Units: 115

Repeatable for credit

Grading: Satisfactory/No Credit
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Barrett, C. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Bohg, J. (PI);
Boneh, D. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Brunskill, E. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Duchi, J. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fatahalian, K. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Follmer, S. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goel, S. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
Icard, T. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Ma, T. (PI);
Mackey, L. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (PI);
Mitchell, J. (PI);
Mitra, S. (PI);
Motwani, R. (PI);
Musen, M. (PI);
Nass, C. (PI);
Nayak, P. (PI);
Ng, A. (PI);
Nilsson, N. (PI);
Olukotun, O. (PI);
Ousterhout, J. (PI);
Paepcke, A. (PI);
Parlante, N. (PI);
Plotkin, S. (PI);
Plummer, R. (PI);
Prabhakar, B. (PI);
Pratt, V. (PI);
Raghavan, P. (PI);
Rajaraman, A. (PI);
Re, C. (PI);
Reingold, O. (PI);
Roberts, E. (PI);
Rosenblum, M. (PI);
Roughgarden, T. (PI);
Saberi, A. (PI);
Sadigh, D. (PI);
Sahami, M. (PI);
Salisbury, J. (PI);
Savarese, S. (PI);
Saxena, A. (PI);
Schwarz, K. (PI);
Shoham, Y. (PI);
Thrun, S. (PI);
Tobagi, F. (PI);
Trevisan, L. (PI);
Ullman, J. (PI);
Valiant, G. (PI);
Van Roy, B. (PI);
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);
Gallegos, Y. (GP);
George, S. (GP)
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 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);
McCluskey, E. (PI);
McKeown, N. (PI);
Meng, T. (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);
Gallegos, Y. (GP);
George, S. (GP)
Terms: Aut, Win, Spr, Sum

Units: 0

Repeatable for credit

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