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

Units: 1

Grading: Satisfactory/No Credit
CS 42:
Callback Me Maybe: Contemporary Javascript
Introduction to the JavaScript programming language with a focus on building contemporary applications. This course consists of inclass activities and programming assignments that challenge students to create functional web apps (e.g. Yelp, Piazza, Instagram). Topics include syntax/semantics, eventbased programming, document object model (DOM), application programming interfaces (APIs), asynchronous JavaScript and XML (AJAX), Node.js, and MongoDB. Prerequisite: CS 107.
Terms: Win, Spr

Units: 2

Grading: Satisfactory/No Credit
CS 43:
Functional Programming in Clojure
Clojure is a dialect of Lisp that runs on the JVM, CLR, or Javascript engine. This course explores the fundamentals and philosophy of Clojure, with emphasis on the benefits of immutability and functional programming that make it such a powerful and fun language. Topics include: immutability, functional programming (function composition, higher order functions), concurrency (atoms, promises, futures, actors, Software Transactional Memory, etc), LISP (REPLdriven development, homoiconicity, macros), and interop (between Clojure code and code native to the host VM). The course also explores design paradigms and looks at the differences between functional programing and objectoriented programing, as well as bottomup versus topdown design.
Terms: Win

Units: 2

Grading: Satisfactory/No Credit
CS 47SI:
CrossPlatform Mobile Development
The fundamentals of crossplatform mobile application development using the React Native framework (RN). Primary focus on developing best practices in creating apps for both iOS and Android by using Javascript and existing web + mobile development paradigms. Students will explore the unique aspects that made RN a primary tool for mobile development within Facebook, Instagram, Airbnb, Walmart, Tesla, and UberEats. Skills developed over the course will be consolidated by the completion of a final project. Required Prerequisites ¿ at least one of the following: CS142, CS193P, CS193A (Web/Mobile development or heavy projectbased class experience). Apply here: https://goo.gl/forms/sF3TDYd5mN7V8f1W2 by January 13th (Saturday of week one)
Terms: Win

Units: 2

Grading: Credit/No Credit
CS 51:
CS + Social Good Studio: Designing Social Impact Projects
Get realworld experience launching and developing your own social impact projects! Students work in small teams to develop highimpact projects around problem domains provided by partner organizations, under the guidance and support of design/technical coaches from industry and nonprofit domain experts. Along with support, resources, and community discussion, the class provides an outlet for students to create social change through CS while providing students with experience engaging in the full product development cycle on realworld projects. Prerequisite: CS 147, equivalent experience, or consent of instructors.
Terms: Win

Units: 2

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

Units: 3

UG Reqs: WAYCE

Grading: Letter or Credit/No Credit
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 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 106AP:
Programming Methodology in Python
Introduction to the engineering of computer applications in Python, emphasizing modern software engineering principles: decomposition, abstraction, and testing. Emphasis is on good programming style. This course covers most of the same material as CS106A Section 1 in Java and CS 106A Section 2 in JavaScript, but this course uses the Python programming language which is popular for general engineering and web development. Required readings will all be available for free on the web. Students are encouraged to bring a laptop to lecture to do the live exercises which are integrated with lecture. No prior programming experience required. To enroll in this class, enroll in CS 106A Section 3. May be taken for 3 units by grad students. Enrollment is limited for winter quarter 201718 but from spring quarter 201718 enrollment will be unlimited.
Terms: Win, Spr

Units: 35

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

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

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

Units: 1

Grading: Satisfactory/No Credit
CS 106S:
Programming Abstractions and Social Good
Supplemental lab to CS 106B and CS 106X. Students will apply fundamental computer science concepts learned in 106B/X to problems in the social good space (such as health, government, education, and environment). Course consists of inclass activities designed by local tech companies and nonprofits. Corequisite: 106B or 106X.
Terms: Win, Spr

Units: 1

Grading: Satisfactory/No Credit
CS 106X:
Programming Abstractions (Accelerated) (ENGR 70X)
Intensive version of 106B for students with a strong programming background interested in a rigorous treatment of the topics at an accelerated pace. 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 107E:
Computer Systems from the Ground Up
Introduction to the fundamental concepts of computer systems through bare metal programming on the Raspberry Pi. Explores how five concepts come together in computer systems: hardware, architecture, assembly code, the C language, and software development tools. Students do all programming with a Raspberry Pi kit and several addons (LEDs, buttons). Topics covered include: the C programming language, data representation, machinelevel code, computer arithmetic, compilation, memory organization and management, debugging, hardware, and I/O. Prerequisite: 106B or X, and consent of instructor. There is a $50 required lab fee.
Terms: Win, Spr

Units: 35

UG Reqs: WAYFR

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

Units: 34

UG Reqs: GER:DBEngrAppSci

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

Units: 34

Grading: Letter or Credit/No Credit
Instructors: ;
Jurafsky, D. (PI);
Cheng, J. (TA);
Dozat, T. (TA);
Farhangi, A. (TA);
Garcia, G. (TA);
Hamilton, W. (TA);
Jia, R. (TA);
Musa, R. (TA);
Park, K. (TA);
Plattner, C. (TA);
Pyke, J. (TA);
Shen, K. (TA);
Tang, S. (TA);
Voigt, R. (TA);
Wang, L. (TA)
CS 140:
Operating Systems and Systems Programming
Operating systems design and implementation. Basic structure; synchronization and communication mechanisms; implementation of processes, process management, scheduling, and protection; memory organization and management, including virtual memory; I/O device management, secondary storage, and file systems. Prerequisite: CS 110.
Terms: Win, Spr

Units: 34

UG Reqs: GER:DBEngrAppSci

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

Units: 34

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

Units: 34

UG Reqs: GER:DBEngrAppSci

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

Units: 35

UG Reqs: GER:DBEngrAppSci, WAYFR

Grading: Letter or Credit/No Credit
Instructors: ;
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 181:
Computers, Ethics, and Public Policy
Primarily for majors entering computerrelated fields. Ethical and social issues related to the development and use of computer technology. Ethical theory, and social, political, and legal considerations. Scenarios in problem areas: privacy, reliability and risks of complex systems, and responsibility of professionals for applications and consequences of their work. Prerequisite: 106B or X. To take this course, students need permission of instructor and may need to complete an assignment due at the first day of class.
Terms: Win, Spr

Units: 4

UG Reqs: GER:ECEthicReas, WAYER

Grading: Letter or Credit/No Credit
CS 181W:
Computers, Ethics, and Public Policy (WIM)
Writingintensive version of CS181. Satisfies the WIM requirement for Computer Science, Engineering Physics, STS, and Math/Comp Sci undergraduates. To take this course, students need permission of instructor and may need to complete an assignment due at the first day of class.
Terms: Win, Spr

Units: 4

UG Reqs: GER:ECEthicReas, WAYER

Grading: Letter (ABCD/NP)
Instructors: ;
Berke, A. (PI);
Bhargava, D. (PI);
Winstein, K. (PI);
Bhargava, D. (TA);
Das, A. (TA);
Kimes, C. (TA);
MetaxaKakavouli, D. (TA);
Poore, A. (TA);
Robert, Z. (TA);
Wang, A. (TA)
CS 190:
Software Design Studio
This course will teach the art of software design: how to decompose large complex systems into classes that can be implemented and maintained easily. Topics include information hiding, thick classes, API design, managing complexity, and how to write incode documentation. The class will involve significant system software implementation and will use an iterative approach consisting of implementation, review, and revision. The course will be taught in a studio format with inclass discussions and code reviews in addition to lectures. Prerequisites: CS 140. Application and consent of instructor required. Apply at: https://web.stanford.edu/class/cs190
Terms: Win

Units: 3

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

Units: 16

Repeatable for credit

Grading: Letter (ABCD/NP)
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Angst, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Borenstein, J. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Ermon, S. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Goel, S. (PI);
Goodman, N. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
James, D. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Kochenderfer, M. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Kundaje, A. (PI);
Lam, M. (PI);
Landay, J. (PI);
Latombe, J. (PI);
Lee, C. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Liang, P. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
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 194:
Software Project
Design, specification, coding, and testing of a significant team programming project under faculty supervision. Documentation includes a detailed proposal. Public demonstration of the project at the end of the quarter. Preference given to seniors. May be repeat for credit. Prerequisites: CS 110 and CS 161.
Terms: Win, Spr

Units: 3

Repeatable for credit

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

Units: 34

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

Units: 3

Grading: Letter (ABCD/NP)
CS 196:
Computer Consulting
Focus is on Macintosh and Windows operating system maintenance and troubleshooting through hardware and software foundation and concepts. Topics include operating systems, networking, security, troubleshooting methodology with emphasis on Stanford's computing environment. Not a programming course. Prerequisite: 1C or equivalent.
Terms: Win, Spr

Units: 2

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

Units: 34

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

Units: 1

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

Units: 16

Repeatable for credit

Grading: Letter (ABCD/NP)
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Borenstein, J. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Brunskill, E. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
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 205A:
Mathematical Methods for Robotics, Vision, and Graphics
Continuous mathematics background necessary for research in robotics, vision, and graphics. Possible topics: linear algebra; the conjugate gradient method; ordinary and partial differential equations; vector and tensor calculus. Prerequisites: 106B or X; MATH 51; or equivalents.
Terms: Win

Units: 3

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

Units: 34

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

Units: 3

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

Units: 34

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

Units: 34

Grading: Letter or Credit/No Credit
CS 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 231A:
Computer Vision: From 3D Reconstruction to Recognition
(Formerly 223B) An introduction to the concepts and applications in computer vision. Topics include: cameras and projection models, lowlevel image processing methods such as filtering and edge detection; midlevel vision topics such as segmentation and clustering; shape reconstruction from stereo, as well as highlevel vision tasks such as object recognition, scene recognition, face detection and human motion categorization. Prerequisites: linear algebra, basic probability and statistics.
Terms: Win

Units: 34

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

Units: 3

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

Units: 3

Grading: Letter or Credit/No Credit
Instructors: ;
Brunskill, E. (PI);
Gupta, A. (TA);
Harrison, J. (TA);
Homma, Y. (TA);
Jin, A. (TA);
Johnston, L. (TA);
Nie, X. (TA);
Painter, M. (TA);
Qu, S. (TA);
Sarkar, R. (TA);
Tan, T. (TA);
Zanette, A. (TA)
CS 239:
Advanced Topics in Sequential Decision Making (AA 229)
Survey of recent research advances in intelligent decision making for dynamic environments from a computational perspective. Efficient algorithms for single and multiagent planning in situations where a model of the environment may or may not be known. Partially observable Markov decision processes, approximate dynamic programming, and reinforcement learning. New approaches for overcoming challenges in generalization from experience, exploration of the environment, and model representation so that these methods can scale to real problems in a variety of domains including aerospace, air traffic control, and robotics. Students are expected to produce an original research paper on a relevant topic. Prerequisites: AA 228/CS 238 or CS 221.
Terms: Win

Units: 34

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

Units: 34

Grading: Letter or Credit/No Credit
CS 246:
Mining Massive Data Sets
Availability of massive datasets is revolutionizing science and industry. This course discusses data mining and machine learning algorithms for analyzing very large amounts of data. The focus is on algorithms and systems for mining big data. nTopics include: Big data systems (Hadoop, Spark, Hive); Link Analysis (PageRank, spam detection, hubsandauthorities); Similarity search (localitysensitive hashing, shingling, minhashing, random hyperplanes); Stream data processing; Analysis of socialnetwork graphs; Association rules; Dimensionality reduction (UV, SVD, and CUR decompositions); Algorithms for verylargescale mining (clustering, nearestneighbor search); Largescale machine learning (gradient descent, supportvector machines, classification, and regression); Submodular function optimization; Computational advertising. Prerequisites: At least one of CS107 or CS145.
Terms: Win

Units: 34

Grading: Letter or Credit/No Credit
Instructors: ;
Leskovec, J. (PI);
Blundell, H. (TA);
Gallegos, Y. (GP);
Goyal, K. (TA);
Jiang, Q. (TA);
Li, Y. (TA);
Liu, D. (TA);
Mehra, S. (TA);
Sharma, P. (TA);
Shukla, A. (TA);
Su, J. (TA);
Udagawa, H. (TA);
Wu, S. (TA);
Yue, C. (TA);
Zhou, W. (TA)
CS 246H:
Mining Massive Data Sets Hadoop Lab
Supplement to CS 246 providing additional material on Hadoop. Students will learn how to implement data mining algorithms using Hadoop, how to implement and debug complex MapReduce jobs in Hadoop, and how to use some of the tools in the Hadoop ecosystem for data mining and machine learning. Topics: Hadoop, MapReduce, HDFS, combiners, secondary sort, distributed cache, SQL on Hadoop, Hive, Cloudera ML/Oryx, Mahout, Hadoop streaming, implementing Hadoop jobs, debugging Hadoop jobs, TFIDF, Pig, Sqoop, Oozie, HBase, Impala. Prerequisite: CS 107 or equivalent.
Terms: Win

Units: 1

Grading: Satisfactory/No Credit
CS 247:
HumanComputer Interaction Design Studio
Projectbased focus on interaction design process, especially earlystage design and rapid prototyping. Methods used in interaction design including needs analysis, user observation, sketching, concept generation, scenario building, and evaluation. Prerequisites: 147 or equivalent background in design thinking; 106B or equivalent background in programming. Recommended: CS 142 or equivalent background in web programming.
Terms: Win, Spr

Units: 34

Grading: Letter (ABCD/NP)
CS 248:
Interactive Computer Graphics
This is the second course in the computer graphics sequence, and as such it assumes familiarity with rendering and image creation. The course has a strong focus on sampling methods, computational geometry, animation, and simulation. Topics include sampling theory, texture mapping, transformations, splines, implicit surfaces, geometric modeling, animation curves, inverse kinematics, character animation, motion capture and editing, image compression and virtual reality. Students will perform programming assignments and a selfselected final project that explores concepts covered in the class. Prerequisite: CS 107, MATH 51.
Terms: Win, Spr

Units: 34

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

Units: 3

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

Units: 3

Grading: Letter or Credit/No Credit
CS 257:
Logic and Artificial Intelligence (PHIL 356C)
This is a course at the intersection of philosophical logic and artificial intelligence. After reviewing recent work in AI that has leveraged ideas from logic, we will slow down and study in more detail various components of highlevel intelligence and the tools that have been designed to capture those components. Specific areas will include: reasoning about belief and action, causality and counterfactuals, legal and normative reasoning, natural language inference, and Turingcomplete logical formalisms including (probabilistic) logic programming and lambda calculus. Our main concern will be understanding the logical tools themselves, including their formal properties and how they relate to other tools such as probability and statistics. At the end, students should expect to have learned a lot more about logic, and also to have a sense for how logic has been and can be used in AI applications. Prerequisites: A background in logic, at least at the level of Phil 151, will be expected. In case a student is willing to put in the extra work to catch up, it may be possible to take the course with background equivalent to Phil 150 or CS 157. A background in AI, at the level of CS 221, would also be very helpful and will at times be expected. 2 unit option only for PhD students past the second year. Course website: http://web.stanford.edu/class/cs257/
Terms: Win

Units: 24

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

Units: 3

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

Units: 3

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

Units: 3

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

Units: 4

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

Units: 24

Grading: Letter or Credit/No Credit
CS 295:
Software Engineering
Software specification, testing and verification. The emphasis is on automated tools for developing reliable software. The course covers materialdrawn primarily from recent research paperson the technologynunderlying these tools. Assignments supplement the lectures with handson experience in using these tools and customizing them for solving new problems. The course is appropriate for students intending to pursue research in program analysis and verification, as well as for those who wish to add the use of advanced software tools to their skill set. Prerequisites: 108. Recommended: a project course such as 140, 143 or 145.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 316:
Advanced MultiCore Systems
Indepth coverage of the architectural techniques used in modern, multicore chips for mobile and server systems. Advanced processor design techniques (superscalar cores, VLIW cores, multithreaded cores, energyefficient cores), cache coherence, memory consistency, vector processors, graphics processors, heterogeneous processors, and hardware support for security and parallel programming. Students will become familiar with complex tradeoffs between performancepowercomplexity and hardwaresoftware interactions. A central part of CS316 is a project on an open research question on multicore technologies. Prerequisites: EE 180 (formerly 108B) and EE 282. Recommended: CS 149.
Terms: Win

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

Units: 3

Grading: Letter or Credit/No Credit
Instructors: ;
Lall, S. (PI);
Pathak, R. (PI);
Angeris, G. (TA);
Choudhary, D. (TA);
Gu, A. (TA);
Jiang, Q. (TA);
Kim, J. (TA);
Mani, N. (TA);
Momeni, A. (TA);
Pathak, R. (TA);
Shah, K. (TA);
Song, R. (TA);
Tefagh, M. (TA)
CS 348V:
Visual Computing Systems
Visual computing tasks such as computational photography, image/video analysis, 3D reconstruction, and realtime 3D graphics are key responsibilities of modern computer systems ranging from sensorrich smart phones, autonomous robots, and large data centers. These workloads demand exceptional system efficiency and this course examines the key ideas, techniques, and challenges associated with the design of parallel (and heterogeneous) systems that execute and accelerate visual computing applications. This course is intended for graduate and advanced undergraduatelevel systems students interested in architecting efficient graphics, image processing, and computer vision platforms (both new hardware architectures and domainoptimized programming frameworks) and for students in graphics, vision, and ML that seek to understand throughput computing principles so they can develop scalablenalgorithms that map efficiently these future platforms. Students will perform daily research paper readings, complete simple programming assignments, and compete a selfselected term project. Prerequisites: CS 107 or equivalent. Recommended: Parallel computing or computer architecture (CS 149, EE 282), some background in techniques in either deep learning (CS 230, CS 231N), computer vision (CS 231A), digital image processing (CS 232).
Terms: Win

Units: 34

Grading: Letter or Credit/No Credit
CS 371:
Computational Biology in Four Dimensions (BIOMEDIN 371, BIOPHYS 371, CME 371)
Cuttingedge research on computational techniques for investigating and designing the threedimensional structure and dynamics of biomolecules, cells, and everything in between. These techniques, which draw on approaches ranging from physicsbased simulation to machine learning, play an increasingly important role in drug discovery, medicine, bioengineering, and molecular biology. Course is devoted primarily to reading, presentation, discussion, and critique of papers describing important recent research developments. Prerequisite: CS 106A or equivalent, and an introductory course in biology or biochemistry. Recommended: some experience in mathematical modeling (does not need to be a formal course).
Terms: Win

Units: 3

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

Units: 1

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

Units: 1

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

Units: 1

Grading: Satisfactory/No Credit
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Blikstein, P. (PI);
Boneh, D. (PI);
Boyd, S. (PI);
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);
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);
Gallegos, Y. (GP);
George, S. (GP)
CS 390V:
Parttime Curricular Practical Training
For qualified computer science PhD students only. Permission number required for enrollment; see the CS PhD program administrator in Gates room 196. May be taken just once; not repeatable. Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in research and integrate that work into their academic program. Students register during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and followon projects they expect to perform. Students on F1 visas should be aware that completing 12 or more months of fulltime CPT will make them ineligible for Optional Practical Training (OPT).
Terms: Aut, Win, Spr, Sum

Units: 1

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

Units: 1

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

Units: 19

Repeatable for credit

Grading: Letter or Credit/No Credit
Instructors: ;
Aiken, A. (PI);
Altman, R. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Boneh, D. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Cain, J. (PI);
Cao, P. (PI);
Cheriton, D. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dwork, C. (PI);
Engler, D. (PI);
Fedkiw, R. (PI);
Feigenbaum, E. (PI);
Fikes, R. (PI);
Fisher, K. (PI);
Fogg, B. (PI);
Fox, A. (PI);
GarciaMolina, H. (PI);
Genesereth, M. (PI);
Gill, J. (PI);
Girod, B. (PI);
Goel, A. (PI);
Guibas, L. (PI);
Hanrahan, P. (PI);
Heer, J. (PI);
Hennessy, J. (PI);
Horowitz, M. (PI);
Johari, R. (PI);
Johnson, M. (PI);
Jurafsky, D. (PI);
Katti, S. (PI);
Kay, M. (PI);
Khatib, O. (PI);
Klemmer, S. (PI);
Koller, D. (PI);
Koltun, V. (PI);
Konolige, K. (PI);
Kozyrakis, C. (PI);
Lam, M. (PI);
Latombe, J. (PI);
Leskovec, J. (PI);
Levis, P. (PI);
Levitt, M. (PI);
Levoy, M. (PI);
Li, F. (PI);
Manna, Z. (PI);
Manning, C. (PI);
Mazieres, D. (PI);
McCarthy, J. (PI);
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 402:
Beyond Bits and Atoms: Designing Technological Tools (EDUC 236)
Practicum in designing and building technologyenabled curricula and handson learning environments. Students use software toolkits and stateoftheart fabrication machines to design educational software, educational toolkits, and tangible user interfaces. The course will focus on designing lowcost technologies, particularly for urban school in the US and abroad. We will explore theoretical and design frameworks from the constructionist learning perspective, critical pedagogy, interaction design for children. Interested students should complete the application at https://web.stanford.edu/class/educ211 by January 5, and come to the first class at 9am in CERAS 101.
Terms: Win

Units: 34

Grading: Letter or Credit/No Credit
CS 402L:
Beyond Bits and Atoms  Lab (EDUC 211)
This course is a handson lab in the prototyping and fabrication of tangible technologies, with a special focus in learning and education. We will learn how to use stateoftheart fabrication machines (3D printers, 3D scanners, laser cutters, routers) to design educational toolkits, educational toys, science kits, and tangible user interfaces. A special focus of the course will be to design lowcost technologies, particularly for urban school in the US and abroad. Interested students should complete the application at https://web.stanford.edu/class/educ211 by January 5, and come to the first class at 9am in CERAS 101.
Terms: Win

Units: 13

Grading: Letter (ABCD/NP)
CS 448H:
Topics in Computer Graphics: Agile Hardware Design
Topic changes each quarter. Recent topics: computational photography, data visualization, character animation, virtual worlds, graphics architectures, advanced rendering. See http://graphics.stanford.edu/courses for offerings and prerequisites. May be repeated for credit.
Terms: not given this year

Units: 3

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

Units: 3

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

Units: 115

Repeatable for credit

Grading: Letter (ABCD/NP)
Instructors: ;
Agrawala, M. (PI);
Aiken, A. (PI);
Akeley, K. (PI);
Altman, R. (PI);
Bailis, P. (PI);
Baker, M. (PI);
Barbagli, F. (PI);
Barrett, C. (PI);
Batzoglou, S. (PI);
Bejerano, G. (PI);
Bernstein, M. (PI);
Bohg, J. (PI);
Boneh, D. (PI);
Boyd, S. (PI);
Bradski, G. (PI);
Brafman, R. (PI);
Brunskill, E. (PI);
Cain, J. (PI);
Cao, P. (PI);
Casado, M. (PI);
Charikar, M. (PI);
Cheriton, D. (PI);
Cooper, S. (PI);
Dally, B. (PI);
DeMicheli, G. (PI);
Dill, D. (PI);
Dror, R. (PI);
Duchi, J. (PI);
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 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
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)