Print Settings
 

CS 22A: The Social & Economic Impact of Artificial Intelligence (INTLPOL 200, SYMSYS 122)

Recent advances in Generative Artificial Intelligence place us at the threshold of a unique turning point in human history. For the first time, we face the prospect that we are not the only generally intelligent entities, and indeed that we may be less capable than our own creations. As this remarkable new technology continues to advance, 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 and unpredictable machines raises many complex and troubling questions. How will society respond as they displace an ever-expanding spectrum of blue- and white-collar workers? Will the benefits of this technological revolution be broadly distributed or accrue to a lucky few? How can we ensure that these systems are free of bias and align with human ethical principles? What role will they play in our system of justice and the practice of law? How will they be used or abused in democratic societies and autocratic regimes? Will they alter the geopolitical balance of power, and change the nature of warfare? Are we merely a stepping-stone to a new form of non-biological life, or are we just getting better at building useful gadgets? The goal of this course is to equip students with the intellectual tools, ethical foundation, and psychological framework to successfully navigate the coming age of superintelligent machines. (Note: This course is pre-approved for credit at SLS and GSB. No programming or technical knowledge is required.)
Terms: Win | Units: 1
Instructors: ; Kaplan, J. (PI)

CS 24: Minds and Machines (LINGUIST 35, PHIL 99, PSYCH 35, SYMSYS 1, SYMSYS 200)

(Formerly SYMSYS 100). An overview of the interdisciplinary study of cognition, information, communication, and language, with an emphasis on foundational issues: What are minds? What is computation? What are rationality and intelligence? Can we predict human behavior? Can computers be truly intelligent? How do people and technology interact, and how might they do so in the future? Lectures focus on how the methods of philosophy, mathematics, empirical research, and computational modeling are used to study minds and machines. Students must take this course before being approved to declare Symbolic Systems as a major. All students interested in studying Symbolic Systems are urged to take this course early in their student careers. The course material and presentation will be at an introductory level, without prerequisites. If you have any questions about the course, please email symsys1staff@gmail.com.
Terms: Aut, Win | Units: 4 | UG Reqs: GER:DB-SocSci, WAY-FR

CS 29N: Computational Decision Making

Although we make decisions every day, many people base their decisions on initial reactions or ""gut"" feelings. There are, however, powerful frameworks for making decisions more effectively based on computationally analyzing the choices available and their possible outcomes. In this course we give an introduction to some of these frameworks, including utility theory, decision analysis, and game theory. We also discuss why people sometimes make seemingly reasonable, yet irrational, decisions. We begin the class by presenting some of the basics of probability theory, which serves as the main mathematical foundation for the decision making frameworks we will subsequently present. Although we provide a mathematical/computational basis for the decision making frameworks we examine, we also seek to give intuitive (and sometimes counterintuitive) explanations for actual decision making behavior through in-class demonstrations. No prior experience with probability theory is needed (we'll cover what you need to know in class), but students should be comfortable with mathematical manipulation at the level of Math 20 or Math 41.
Terms: Win | Units: 3

CS 40: Cloud Infrastructure and Scalable Application Deployment

Trying to launch your next viral programming project and anticipating substantial user growth? This course will help you learn to implement your ideas in the cloud in a scalable, cost-effective manner. Topics will include cloud AI/ML pipelines, virtual machines, containers, basic networking, expressing infrastructure as code (IaC), data management, security and observability, and continuous integration and deployment (CI/CD). Through hands-on learning and practical examples, you'll learn to effectively deploy and manage cloud infrastructure. There is no out-of-pocket cost associated with this class and cloud credits will be provided for all students. Prerequisites: Programming maturity up to CS 107. Familiarity with the command line, version control, and basic development tools to the level of CS 45/CS 104, in particular: Basic Unix command line utilities and administration; Editing code with a TUI editor such as vim, emacs, or nano; Using Git and GitHub for collaborative projects (i.e. branching and pull requests); Basic familiarity with package managers for languages and operating systems (e.g., pip, apt, homebrew); Prior web development or networking experience helpful but not required.
Terms: Win | Units: 3

CS 51: CS + Social Good Studio: Designing Social Impact Projects

Get real-world experience researching and developing your own social impact project! Students work in small teams to develop high-impact projects around problem domains provided by partner organizations, under the guidance and support of design/technical coaches from industry and non-profit domain experts. Main class components are workshops, community discussions, guest speakers and mentorship. Studio provides an outlet for students to create social change through CS while engaging in the full product development cycle on real-world projects. The class culminates in a showcase where students share their project ideas and Minimum Viable Product prototypes with stakeholders and the public. Application required; please see cs51.stanford.edu for more information.
Terms: Win | Units: 2
Instructors: ; Cain, J. (PI)

CS 83N: Playback Theater

Playback combines elements of theater, community work and storytelling. In a playback show, a group of actors and musicians create an improvised performance based on the audience's personal stories. A playback show brings about a powerful listening and sharing experience. During the course, we will tell, listen, play together, and train in playback techniques. We will write diaries to process our experience in the context of education and research. The course is aimed to strengthen listening abilities, creativity and the collaborative spirit, all integral parts of doing great science. In playback, as in research, we are always moving together, from the known, to the unknown, and back. There is limited enrollment for this class. Application is required.
Terms: Win | Units: 3 | UG Reqs: WAY-CE
Instructors: ; Reingold, O. (PI)

CS 100ACE: Problem-solving Lab for CS106A

Additional problem solving practice for the introductory CS course CS 106A. Sections are designed to allow students to acquire a deeper understanding of CS and its applications, work collaboratively, and develop a mastery of the material. Limited enrollment, permission of instructor required. Concurrent enrollment in CS 106A required.
Terms: Aut, Win, Spr | Units: 1
Instructors: ; King, E. (PI)

CS 100BACE: Problem-solving Lab for CS106B

Additional problem solving practice for the introductory CS course CS106B. Sections are designed to allow students to acquire a deeper understanding of CS and its applications, work collaboratively, and develop a mastery of the material. Limited enrollment, permission of instructor required. Concurrent enrollment in CS 106B required.
Terms: Aut, Win, Spr | Units: 1

CS 103: Mathematical Foundations of Computing

What are the theoretical limits of computing power? What problems can be solved with computers? Which ones cannot? And how can we reason about the answers to these questions with mathematical certainty? This course explores the answers to these questions and serves as an introduction to discrete mathematics, computability theory, and complexity theory. At the completion of the course, students will feel comfortable writing mathematical proofs, reasoning about discrete structures, reading and writing statements in first-order logic, and working with mathematical models of computing devices. Throughout the course, students will gain exposure to some of the most exciting mathematical and philosophical ideas of the late nineteenth and twentieth centuries. Specific topics covered include formal mathematical proofwriting, propositional and first-order logic, set theory, binary relations, functions (injections, surjections, and bijections), cardinality, basic graph theory, the pigeonhole principle, mathematical induction, finite automata, regular expressions, the Myhill-Nerode theorem, context-free grammars, Turing machines, decidable and recognizable languages, self-reference and undecidability, verifiers, and the P versus NP question. Students with significant proofwriting experience are encouraged to instead take CS154. Students interested in extra practice and support with the course are encouraged to concurrently enroll in CS103A. Prerequisite: CS106B or equivalent. CS106B may be taken concurrently with CS103.
Terms: Aut, Win, Spr, Sum | Units: 3-5 | UG Reqs: GER:DB-Math, WAY-FR

CS 103ACE: Mathematical Problem-solving Strategies

Problem solving strategies and techniques in discrete mathematics and computer science. Additional problem solving practice for CS103. In-class participation required. Prerequisite: consent of instructor. Co-requisite: CS103.
Terms: Aut, Win, Spr | Units: 1
Instructors: ; Guan, R. (PI)

CS 104: Introduction to Essential Software Systems and Tools

Concepts that are prerequisites to many different CS classes, such as version control, debugging, and basic cryptography and networking, are either left for students to figure out on their own or are taught in "crash course" form on-the-fly during other, unrelated classes. We propose to develop a course that will teach students the skills necessary to be successful computer scientists, such as the command line, source code management and debugging, security and cryptography, containers and virtual machines, and cloud computing. In this course, students will both become proficient with practical tools and develop a deeper, intuitive understanding of the involved software systems and computer science concepts. With this deeper understanding, students can leverage critical thinking skills to intelligently and efficiently configure and troubleshoot software systems, assess the security and efficiency of particular tool usages, and synthesize new automation pipelines that integrate multiple tools. To summarize, instead of having just a cursory understanding of how to use these tools, students will learn how to most effectively use these tools to become proficient programmers and computer scientists. In addition, this course can provide a gentle introduction to potentially challenging computer science concepts (e.g., networking) that become a focus in subsequent courses and also help motivate some of the tool usages they will see later in the degree program.
Terms: Win | Units: 3

CS 106A: Programming Methodology

Introduction to the engineering of computer applications emphasizing modern software engineering principles: program design, decomposition, encapsulation, abstraction, and testing. Emphasis is on good programming style and the built-in facilities of respective languages. Uses the Python programming language. No prior programming experience required.
Terms: Aut, Win, Spr, Sum | Units: 3-5 | UG Reqs: GER:DB-EngrAppSci, WAY-FR

CS 106B: Programming Abstractions

Abstraction and its relation to programming. Software engineering principles of data abstraction and modularity. Object-oriented programming, fundamental data structures (such as stacks, queues, sets) and data-directed design. Recursion and recursive data structures (linked lists, trees, graphs). Introduction to time and space complexity analysis. Uses the programming language C++ covering its basic facilities. Prerequisite: 106A or equivalent.
Terms: Aut, Win, Spr, Sum | Units: 3-5 | UG Reqs: GER:DB-EngrAppSci, WAY-FR

CS 106L: Standard C++ Programming Laboratory

This class explores features of the C++ programming language beyond what's covered in CS106B. Topics include core C++ language features (e.g. const-correctness, operator overloading, templates, move semantics, and lambda expressions) and standard libraries (e.g. containers, algorithms, and smart pointers). Pre- or corequisite: CS106B or equivalent. Prerequisite: CS106B or equivalent. CS106L may be taken concurrently with CS106B.
Terms: Aut, Win, Spr | Units: 1

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, machine-level 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, Sum | Units: 3-5 | UG Reqs: GER:DB-EngrAppSci, WAY-FR

CS 107ACE: Problem-solving Lab for CS107

Additional problem solving practice for the introductory CS course CS107. Sections are designed to allow students to acquire a deeper understanding of CS and its applications, work collaboratively, and develop a mastery of the material. Limited enrollment, permission of instructor required. Concurrent enrollment in CS 107 required.
Terms: Aut, Win, Spr | Units: 1
Instructors: ; Bear, E. (PI); Yu, J. (PI)

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 add-ons (LEDs, buttons). Topics covered include: the C programming language, data representation, machine-level code, computer arithmetic, compilation, memory organization and management, debugging, hardware, and I/O. Enrollment limited to 40. Check website for details: http://cs107e.stanford.edu on student selection process. Prerequisite: CS106B or CS106X, and consent of instructor. There is a $75 course lab fee.
Terms: Win, Spr | Units: 3-5 | UG Reqs: WAY-FR

CS 108: Object-Oriented 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: Win | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci

CS 109: Introduction to Probability for Computer Scientists

Topics include: counting and combinatorics, random variables, conditional probability, independence, distributions, expectation, point estimation, and limit theorems. Applications of probability in computer science including machine learning and the use of probability in the analysis of algorithms. Prerequisites: 103, 106B or X, multivariate calculus at the level of MATH 51 or CME 100 or equivalent.
Terms: Aut, Win, Spr, Sum | Units: 3-5 | UG Reqs: GER:DB-EngrAppSci, WAY-AQR, WAY-FR

CS 109ACE: Problem-solving Lab for CS109

Additional problem solving practice for the introductory CS course CS109. Sections are designed to allow students to acquire a deeper understanding of CS and its applications, work collaboratively, and develop a mastery of the material. Enrollment limited to 30 students, permission of instructor required. Concurrent enrollment in CS 109 required.
Terms: Aut, Win, Spr | Units: 1
Instructors: ; Qin, M. (PI); Cain, J. (GP)

CS 111: Operating Systems Principles

Explores operating system concepts including concurrency, synchronization, scheduling, processes, virtual memory, I/O, file systems, and protection. Available as a substitute for CS110 that fulfills any requirement satisfied by CS110. Prerequisite: CS107.
Terms: Aut, Win, Spr | Units: 3-5

CS 111ACE: Problem Solving Lab for CS111

Additional design and implementation problems to complement the material taught in CS111. In-class participation is required. Prerequisite: consent of instructor. Corequisite: CS111
Terms: Aut, Win, Spr | Units: 1
Instructors: ; Master, T. (PI)

CS 112: Operating systems kernel implementation project

Students will learn the details of how operating systems work throughfour implementation projects in the Pintos operating system. Theprojects center around threads, processes, virtual memory, and filesystems. This class should not be taken by students who have taken orplan to take CS212 or CS140. Prerequisite: CS111 or permission of theinstructor.
Terms: Win | Units: 3

CS 124: From Languages to Information (LINGUIST 180, LINGUIST 280)

Extracting meaning, information, and structure from human language text, speech, web pages, social networks. Introducing methods (regex, edit distance, naive Bayes, logistic regression, neural embeddings, inverted indices, collaborative filtering, PageRank), applications (chatbots, sentiment analysis, information retrieval, question answering, text classification, social networks, recommender systems), and ethical issues in both. Prerequisites: CS106B, Python (at the level of CS106A), CS109 (or equivalent background in probability), and programming maturity and knowledge of UNIX equivalent to CS107 (or taking CS107 or CS1U concurrently).
Terms: Win | Units: 3-4 | UG Reqs: WAY-AQR

CS 129: Applied Machine Learning

(Previously numbered CS 229A.) You will learn to implement and apply machine learning algorithms. This course emphasizes practical skills, and focuses on giving you skills to make these algorithms work. You will learn about commonly used learning techniques including supervised learning algorithms (logistic regression, linear regression, SVM, neural networks/deep learning), unsupervised learning algorithms (k-means), as well as learn about specific applications such as anomaly detection and building recommender systems. This class is taught in the flipped-classroom format. You will watch videos and complete in-depth programming assignments and online quizzes at home, then come to class for discussion sections. This class will culminate in an open-ended final project, which the teaching team will help you on. Prerequisites: Programming at the level of CS106B or 106X, and basic linear algebra such as Math 51.
Terms: Win | Units: 3-4

CS 131: Computer Vision: Foundations and Applications

Computer Vision technologies are transforming automotive, healthcare, manufacturing, agriculture and many other sections. Today, household robots can navigate spaces and perform duties, search engines can index billions of images and videos, algorithms can diagnose medical images for diseases, and smart cars can see and drive safely. Lying in the heart of these modern AI applications are computer vision technologies that can perceive, understand, and reconstruct the complex visual world. This course is designed for students who are interested in learning about the fundamental principles and important applications of Computer Vision. This course will introduce a number of fundamental concepts in image processing and expose students to a number of real-world applications. It will guide students through a series of projects to implement cutting-edge algorithms. There will be optional discussion sections on Fridays. Prerequisites: Students should be familiar with Python, Calculus & Linear Algebra.
Terms: Win | Units: 3-4

CS 140E: Operating systems design and implementation

Students will implement a simple, clean operating system (virtual memory, processes, file system) in the C programming language, on a rasberry pi computer and use the result to run a variety of devices and implement a final project. All hardware is supplied by the instructor, and no previous experience with operating systems, raspberry pi, or embedded programming is required.
Terms: Win | Units: 3-4

CS 144: Introduction to Computer Networking

Principles and practice. Structure and components of computer networks, with focus on the Internet. Packet switching, layering, and routing. Transport and TCP: reliable delivery over an unreliable network, flow control, congestion control. Network names, addresses and ethernet switching. Includes significant programming component in C/C++; students build portions of the internet TCP/IP software. Prerequisite: CS110.
Terms: Win | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci

CS 153: Applied Security at Scale

This course is designed to help students understand the unique challenges of solving security problems at scale, and is taught by senior technology leaders from companies tackling hardware and software security for hundreds of millions of people. The course is split into six parts covering major themes: Basics, Confidential Computing, Privacy, Trust, Safety and Real World. The format of the class will include guest lectures from experts in each theme, covering a blend of both theory and real world scenarios. Prerequisite: CS110/CS111. Recommended but not required: CS155.
Terms: Win, Spr | Units: 3
Instructors: ; Abbott, M. (PI)

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: divide-and-conquer, dynamic programming, greedy algorithms, amortized analysis, randomization. Algorithms for fundamental graph problems: minimum-cost spanning tree, connected components, topological sort, and shortest paths. Possible additional topics: network flow, string searching. Prerequisite: 106B or 106X; 103 or 103B; 109 or STATS 116.
Terms: Aut, Win, Sum | Units: 3-5 | UG Reqs: GER:DB-EngrAppSci, WAY-FR

CS 161ACE: Problem-Solving Lab for CS161

Additional problem solving practice for CS161. Sections are designed to allow students to acquire a deeper understanding of CS and its applications, work collaboratively, and develop a mastery of the material. Concurrent enrollment in CS 161 required. Limited enrollment, permission of instructor, and application required.
Terms: Aut, Win | Units: 1
Instructors: ; Sharkov, S. (PI)

CS 173A: Foundations of Computational Human Genomics (BIOMEDIN 173A, DBIO 173A)

(Only one of 173A or 273A counts toward any CS degree program.) A coder's primer to Computational Biology through the most amazing "source code" known: your genome. Examine the major forces of genome "code development" - positive, negative and neutral selection. Learn about genome sequencing (discovering your source code from fragments); genome content: variables (genes), control-flow (gene regulation), run-time stacks (epigenomics) and memory leaks (repeats); personalized genomics and genetic disease (code bugs); genome editing (code injection); ultra conservation (unsolved mysteries) and code modifications behind amazing animal adaptations. Course includes primers on molecular biology and text processing. Prerequisites: comfortable coding in Python from the command line.
Terms: Win | Units: 3-4

CS 190: Software Design Studio

This course teaches the art of software design: how to decompose large complex systems into classes that can be implemented and maintained easily. Topics include the causes of complexity, modular design, techniques for creating deep classes, minimizing the complexity associated with exceptions, in-code documentation, and name selection. The class involves significant system software implementation and uses an iterative approach consisting of implementation, review, and revision. The course is taught in a studio format with in-class discussions and code reviews in addition to lectures. Prerequisite: CS 140 or equivalent. Apply at: https://web.stanford.edu/class/cs190
Terms: Win | Units: 3-4
Instructors: ; Ousterhout, J. (PI)

CS 191: Senior Project

Restricted to Computer Science students. Group or individual research 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 a research component, substantial programming, 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. Public presentation of final application or research results is required. Prerequisite: Completion of at least 135 units and consent of instructor. Project proposal form is required before the beginning of the quarter of enrollment: https://cs.stanford.edu/degrees/undergrad/Senior%20Project%20Proposal.pdfhttps://cs.stanford.edu/degrees/undergrad/Senior%20Project%20Proposal.pdf
Terms: Aut, Win, Spr, Sum | Units: 1-6 | Repeatable for credit
Instructors: ; Achour, S. (PI); Agrawala, M. (PI); Aiken, A. (PI); Altman, R. (PI); Angst, R. (PI); Bailis, P. (PI); Batzoglou, S. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Blikstein, P. (PI); Bohg, J. (PI); Boneh, D. (PI); Borenstein, J. (PI); Bouland, A. (PI); Boyd, S. (PI); Cain, J. (PI); Cao, P. (PI); Charikar, M. (PI); Cheriton, D. (PI); Dally, B. (PI); Demszky, D. (PI); Dill, D. (PI); Dror, R. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Feigenbaum, E. (PI); Fikes, R. (PI); Finn, C. (PI); Fisher, K. (PI); Fogg, B. (PI); Follmer, S. (PI); Fox, A. (PI); Fox, E. (PI); Genesereth, M. (PI); Girod, B. (PI); Goel, A. (PI); Goel, S. (PI); Goodman, N. (PI); Gregg, C. (PI); Guibas, L. (PI); Haber, N. (PI); Hanrahan, P. (PI); Hennessy, J. (PI); Horowitz, M. (PI); Icard, T. (PI); James, D. (PI); Johari, R. (PI); Jurafsky, D. (PI); Katti, S. (PI); Khatib, O. (PI); Kjoelstad, F. (PI); Kochenderfer, M. (PI); Koller, D. (PI); Koyejo, S. (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); Liu, K. (PI); Ma, T. (PI); Manning, C. (PI); Mazieres, D. (PI); McClelland, J. (PI); McKeown, N. (PI); Mirhoseini, A. (PI); Mitchell, J. (PI); Mitra, S. (PI); Montanari, A. (PI); Musen, M. (PI); Nayak, P. (PI); Ng, A. (PI); Niebles Duque, J. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Paepcke, A. (PI); Pande, V. (PI); Parlante, N. (PI); Pea, R. (PI); Piech, C. (PI); Plotkin, S. (PI); Plummer, R. (PI); Poldrack, R. (PI); Potts, C. (PI); Prabhakar, B. (PI); Pratt, V. (PI); Raghavan, P. (PI); Rajaraman, A. (PI); Re, C. (PI); Reingold, O. (PI); Roberts, E. (PI); Rosenblum, M. (PI); Roughgarden, T. (PI); Rubin, D. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Saxena, A. (PI); Schwarz, K. (PI); Shoham, Y. (PI); Sosic, R. (PI); Stamos, A. (PI); Subramonyam, H. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Ullman, J. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI); Winograd, T. (PI); Winstein, K. (PI); Wodtke, C. (PI); Wootters, M. (PI); Wu, J. (PI); Yamins, D. (PI); Yang, D. (PI); Yeung, S. (PI); Young, P. (PI); Zaharia, M. (PI); Zelenski, J. (PI); Zou, J. (PI); Rutherford, E. (GP)

CS 191W: Writing Intensive Senior Research Project

Restricted to Computer Science students. Writing-intensive version of CS191. Register using instructor's section number. Prerequisite: Completion of at least 135 units and consent of instructor. Project proposal form is required before the beginning of the quarter of enrollment: https://cs.stanford.edu/degrees/undergrad/Senior%20Project%20Proposal.pdf
Terms: Aut, Win, Spr | Units: 3-6 | Repeatable for credit
Instructors: ; Achour, S. (PI); Agrawala, M. (PI); Aiken, A. (PI); Altman, R. (PI); Barrett, C. (PI); Batzoglou, S. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Blikstein, P. (PI); Bohg, J. (PI); Boneh, D. (PI); Borenstein, J. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Cao, P. (PI); Charikar, M. (PI); Cheriton, D. (PI); Dally, B. (PI); Demszky, D. (PI); Dill, D. (PI); Dror, R. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Feigenbaum, E. (PI); Fikes, R. (PI); Finn, C. (PI); Fisher, K. (PI); Fogg, B. (PI); Fox, A. (PI); Fox, E. (PI); Genesereth, M. (PI); Girod, B. (PI); Goel, A. (PI); Goel, S. (PI); Goodman, N. (PI); Gregg, C. (PI); Guestrin, C. (PI); Guibas, L. (PI); Haber, N. (PI); Hanrahan, P. (PI); Hashimoto, T. (PI); Hennessy, J. (PI); Horowitz, M. (PI); Icard, T. (PI); James, D. (PI); Johari, R. (PI); Jurafsky, D. (PI); Katti, S. (PI); Khatib, O. (PI); Kjoelstad, F. (PI); Kochenderfer, M. (PI); Koller, D. (PI); Koyejo, S. (PI); Kozyrakis, C. (PI); Kundaje, A. (PI); Lam, M. (PI); Landay, J. (PI); Latombe, J. (PI); Leskovec, J. (PI); Levis, P. (PI); Levitt, M. (PI); Levoy, M. (PI); Li, F. (PI); Liang, P. (PI); Liu, K. (PI); Manning, C. (PI); Mazieres, D. (PI); McClelland, J. (PI); McKeown, N. (PI); Mirhoseini, A. (PI); Mitchell, J. (PI); Mitra, S. (PI); Montanari, A. (PI); Montgomery, S. (PI); Musen, M. (PI); Nayak, P. (PI); Ng, A. (PI); Niebles Duque, J. (PI); Okamura, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Paepcke, A. (PI); Pande, V. (PI); Parlante, N. (PI); Pea, R. (PI); Piech, C. (PI); Plotkin, S. (PI); Plummer, R. (PI); Potts, C. (PI); Prabhakar, B. (PI); Pratt, V. (PI); Raghavan, P. (PI); Rajaraman, A. (PI); Re, C. (PI); Reingold, O. (PI); Roberts, E. (PI); Rosenblum, M. (PI); Saberi, A. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Saxena, A. (PI); Schwarz, K. (PI); Shoham, Y. (PI); Stamos, A. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Ullman, J. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI); Winograd, T. (PI); Winstein, K. (PI); Wodtke, C. (PI); Wootters, M. (PI); Wu, J. (PI); Yamins, D. (PI); Yang, D. (PI); Yeung, S. (PI); Young, P. (PI); Zaharia, M. (PI); Zelenski, J. (PI); Zou, J. (PI); Rutherford, E. (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. Register using the section number associated with the instructor. Prerequisite: consent of instructor.
Terms: Aut, Win, Spr, Sum | Units: 1-4 | Repeatable for credit

CS 194: Software Project

Design, specification, coding, and testing of a significant team programming project under faculty supervision. Documentation includes capture of project rationale, design and discussion of key performance indicators, a weekly progress log and a software architecture diagram. Public demonstration of the project at the end of the quarter. Preference given to seniors. May be repeated for credit. Prerequisites: CS109 and CS161.
Terms: Win, Spr | Units: 3 | Repeatable for credit

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, quarter-long course project that will be presented in a public presentation. Prerequisites: CS 147, or permission of instructor.
Terms: Win | Units: 3-4
Instructors: ; Landay, J. (PI); Zhou, G. (TA)

CS 194W: Software Project (WIM)

Restricted to Computer Science and Electrical Engineering undergraduates. Writing-intensive version of CS194. Preference given to seniors. Prerequisites: CS109 and CS161.
Terms: Win, Spr | Units: 3

CS 197: Computer Science Research

An onramp for students interested in breaking new ground in the frontiers of computer science. Course format features faculty lectures introducing the fundamentals of computer science research, alongside special interest group meetings that provide mentorship and feedback on a real research project. Lecture topics include reading technical papers, practicing oral communication and technical writing skills, and independently formulating research questions. Any student may enroll for 4 units and select a research area (AI, HCI, Systems, etc.) for a quarter-long team programming project with a Ph.D. student mentor. Space may be limited. Prerequisite: CS106B.
Terms: Aut, Win, Spr | Units: 3-4

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: 3-4

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

CS 199: Independent Work

Special study under faculty direction, usually leading to a written report. Register using instructor's section number. Letter grade; if not appropriate, enroll in CS199P. Prerequisite: consent of instructor.
Terms: Aut, Win, Spr, Sum | Units: 1-6 | Repeatable for credit
Instructors: ; Achour, S. (PI); Adeli, E. (PI); Agrawala, M. (PI); Aiken, A. (PI); Altman, R. (PI); Bailis, P. (PI); Barrett, C. (PI); Batzoglou, S. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Blikstein, P. (PI); Bohg, J. (PI); Boneh, D. (PI); Borenstein, J. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Cao, P. (PI); Charikar, M. (PI); Cheriton, D. (PI); Dally, B. (PI); Demszky, D. (PI); Dill, D. (PI); Dror, R. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Feigenbaum, E. (PI); Fikes, R. (PI); Finn, C. (PI); Fisher, K. (PI); Fogg, B. (PI); Fox, A. (PI); Fox, E. (PI); Ganguli, S. (PI); Genesereth, M. (PI); Girod, B. (PI); Goel, A. (PI); Goodman, N. (PI); Gregg, C. (PI); Grimes, A. (PI); Guibas, L. (PI); Haber, N. (PI); Hanrahan, P. (PI); Hashimoto, T. (PI); Hennessy, J. (PI); Ho, D. (PI); Horowitz, M. (PI); Icard, T. (PI); James, D. (PI); Johari, R. (PI); Jurafsky, D. (PI); Katti, S. (PI); Khatib, O. (PI); Kjoelstad, F. (PI); Kochenderfer, M. (PI); Koller, D. (PI); Koyejo, S. (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); Liu, K. (PI); Manning, C. (PI); Mazieres, D. (PI); McKeown, N. (PI); Mirhoseini, A. (PI); Mitchell, J. (PI); Mitra, S. (PI); Musen, M. (PI); Nayak, P. (PI); Ng, A. (PI); Niebles Duque, J. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Paepcke, A. (PI); Pande, V. (PI); Parlante, N. (PI); Patrignani, M. (PI); Pavone, M. (PI); Pea, R. (PI); Piech, C. (PI); Plotkin, S. (PI); Plummer, R. (PI); Potts, C. (PI); Prabhakar, B. (PI); Pratt, V. (PI); Raghavan, P. (PI); Rajaraman, A. (PI); Re, C. (PI); Reingold, O. (PI); Roberts, E. (PI); Rosenblum, M. (PI); Rubin, D. (PI); Rubinstein, A. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Saxena, A. (PI); Schwarz, K. (PI); Shoham, Y. (PI); Stanford, J. (PI); Subramonyam, H. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Ullman, J. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Widom, J. (PI); Winograd, T. (PI); Winstein, K. (PI); Wodtke, C. (PI); Wootters, M. (PI); Wu, J. (PI); Yamins, D. (PI); Yan, L. (PI); Yang, D. (PI); Yeung, S. (PI); Young, P. (PI); Zaharia, M. (PI); Zelenski, J. (PI); Zou, J. (PI); Rutherford, E. (GP)

CS 199P: Independent Work

Special study under faculty direction, usually leading to a written report. Register using instructor's section number. CR/NC only, if not appropriate, enroll in CS199. Prerequisite: consent of instructor.
Terms: Aut, Win, Spr, Sum | Units: 1-6 | Repeatable for credit
Instructors: ; Achour, S. (PI); Agrawala, M. (PI); Aiken, A. (PI); Altman, R. (PI); Angst, R. (PI); Barrett, C. (PI); Batzoglou, S. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Blikstein, P. (PI); Boneh, D. (PI); Borenstein, J. (PI); Bouland, A. (PI); Brunskill, E. (PI); Cain, J. (PI); Cao, P. (PI); Charikar, M. (PI); Cheriton, D. (PI); Dally, B. (PI); Dill, D. (PI); Dror, R. (PI); Durumeric, Z. (PI); Engler, D. (PI); Fedkiw, R. (PI); Feigenbaum, E. (PI); Fikes, R. (PI); Finn, C. (PI); Fisher, K. (PI); Fogg, B. (PI); Fox, A. (PI); Fox, E. (PI); Genesereth, M. (PI); Girod, B. (PI); Goel, A. (PI); Goodman, N. (PI); Grimes, A. (PI); Guibas, L. (PI); Hanrahan, P. (PI); Hashimoto, T. (PI); Hennessy, J. (PI); Horowitz, M. (PI); James, D. (PI); Johari, R. (PI); Jurafsky, D. (PI); Katti, S. (PI); Khatib, O. (PI); Kochenderfer, M. (PI); Koller, D. (PI); Koyejo, S. (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); Liu, K. (PI); Manning, C. (PI); Mazieres, D. (PI); McKeown, N. (PI); Mirhoseini, A. (PI); Mitchell, J. (PI); Mitra, S. (PI); Musen, M. (PI); Nayak, P. (PI); Ng, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Parlante, N. (PI); Pavone, M. (PI); Piech, C. (PI); Plotkin, S. (PI); Plummer, R. (PI); Prabhakar, B. (PI); Pratt, V. (PI); Raghavan, P. (PI); Rajaraman, A. (PI); Re, C. (PI); Reingold, O. (PI); Roberts, E. (PI); Rosenblum, M. (PI); Roughgarden, T. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Saxena, A. (PI); Schwarz, K. (PI); Shoham, Y. (PI); Socher, R. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Ullman, J. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Widom, J. (PI); Winograd, T. (PI); Winstein, K. (PI); Wodtke, C. (PI); Wootters, M. (PI); Wu, J. (PI); Yamins, D. (PI); Yan, L. (PI); Yang, D. (PI); Young, P. (PI); Zaharia, M. (PI); Zelenski, J. (PI); Zou, J. (PI); Rutherford, E. (GP)

CS 205L: Continuous Mathematical Methods with an Emphasis on Machine Learning

A survey of numerical approaches to the continuous mathematics used throughout computer science with an emphasis on machine and deep learning. Although motivated from the standpoint of machine learning, the course will focus on the underlying mathematical methods including computational linear algebra and optimization, as well as special topics such as automatic differentiation via backward propagation, momentum methods from ordinary differential equations, CNNs, RNNs, etc. Written homework assignments and (straightforward) quizzes focus on various concepts; additionally, students can opt in to a series of programming assignments geared towards neural network creation, training, and inference. (Replaces CS205A, and satisfies all similar requirements.) Prerequisites: Math 51; Math104 or MATH113 or equivalent or comfort with the associated material.
Terms: Win | Units: 3

CS 206: Exploring Computational Journalism (COMM 281)

This project-based course will explore the field of computational journalism, including the use of Data Science, Info Visualization, AI, and emerging technologies to help journalists discover and tell stories, understand their audience, advance free speech, and build trust. This course is repeatable for credit; enrollment priority given to students taking it for the first time.
Terms: Win | Units: 3 | Repeatable 3 times (up to 9 units total)

CS 210A: Software Project Experience with Corporate Partners

Two-quarter project course. Focus is on real-world 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 start-up 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; real-world software engineering challenges; public presentation of technical work; creating written descriptions of technical work. Prerequisites: CS109 and CS161.
Terms: Win | Units: 3-4

CS 212: Operating Systems and Systems Programming

Covers key concepts in computer systems through the lens of operatingsystem design and implementation. Topics include threads, scheduling,processes, virtual memory, synchronization, multi-core architectures,memory consistency, hardware atomics, memory allocators, linking, I/O,file systems, and virtual machines. Concepts are reinforced with fourkernel programming projects in the Pintos operating system. This classmay be taken as an accelerated single-class alternative to the CS111,CS112 sequence; conversely, the class should not be taken by studentswho have already taken CS111 or CS112.
Terms: Win | Units: 3-5

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

CS 224G: Apps With LLMs Inside

With ChatGPT, neural networks have had their Lisp moment. Conversation has become code and the model is the CPU for this ultimate programming language. A new universe of App development has opened up, and there are no guides for it, yet. This is a project course designed to explore the space of Apps built around LLMs, starting by playing with them, learning their limitations, and then applying a set of techniques to program them efficiently and effectively. Assignments are due on a two week "sprint" cadence to mimic a startup style environment. Guest lectures by area experts provide industry perspective.
Terms: Win | Units: 3

CS 224N: Natural Language Processing with Deep Learning (LINGUIST 284, SYMSYS 195N)

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 large-scale NLP problem. Prerequisites: calculus and linear algebra; CS124, CS221, or CS229.
Terms: Win, Spr | Units: 3-4

CS 227A: Robot Perception: Hardware, Algorithm, and Application (EE 227)

Robot Perception is the cornerstone of modern robotics, enabling machines to interpret, understand, and respond to an array of sensory information they encounter. In the course, students will study the basic principles of typical sensor hardware on a robotics system (e.g., vision, tactile, and acoustic sensors), the algorithms that process the raw sensory data, and make actionable decisions from that information. Over the course of the semester, students will incrementally build their own vision-based robotics system in simulation via a series of homework coding assignments. Students enrolling 4 units will be required to submit an additional final written report. Prerequisites: This course requires programming experience in python as well as basic knowledge of linear algebra. Most of the required mathematical concepts will be reviewed, but it will be assumed that students have strong programming skills. All the homework requires extensive programming. Previous knowledge of robotics, machine learning or computer vision would be helpful but is not absolutely required.
Terms: Win | Units: 3-4
Instructors: ; Song, S. (PI); Nie, N. (TA)

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: 3-4

CS 229: Machine Learning (STATS 229)

Topics: statistical pattern recognition, linear and non-linear regression, non-parametric methods, exponential family, GLMs, support vector machines, kernel methods, deep learning, model/feature selection, learning theory, ML advice, clustering, density estimation, EM, dimensionality reduction, ICA, PCA, reinforcement learning and adaptive control, Markov decision processes, approximate dynamic programming, and policy search. Prerequisites: knowledge of basic computer science principles and skills at a level sufficient to write a reasonably non-trivial computer program in Python/NumPy to the equivalency of CS106A, CS106B, or CS106X, familiarity with probability theory to the equivalency of CS 109, MATH151, or STATS 116, and familiarity with multivariable calculus and linear algebra to the equivalency of MATH51 or CS205.
Terms: Aut, Win, Sum | Units: 3-4

CS 233: Geometric and Topological Data Analysis (CME 251)

Mathematical and computational tools for the analysis of data with geometric content, such images, videos, 3D scans, GPS traces -- as well as for other data embedded into geometric spaces. Linear and non-linear dimensionality reduction techniques. Graph representations of data and spectral methods. The rudiments of computational topology and persistent homology on sampled spaces, with applications. Global and local geometry descriptors allowing for various kinds of invariances. Alignment, matching, and map/correspondence computation between geometric data sets. Annotation tools for geometric data. Geometric deep learning on graphs and sets. Function spaces and functional maps. Networks of data sets and joint learning for segmentation and labeling. Prerequisites: discrete algorithms at the level of CS161; linear algebra at the level of Math51 or CME103.
Terms: Win | Units: 3
Instructors: ; Guibas, L. (PI); Weng, Y. (TA)

CS 237B: Principles of Robot Autonomy II (AA 174B, AA 274B, EE 260B)

This course teaches advanced principles for endowing mobile autonomous robots with capabilities to autonomously learn new skills and to physically interact with the environment and with humans. It also provides an overview of different robot system architectures. Concepts that will be covered in the course are: Reinforcement Learning and its relationship to optimal control, contact and dynamics models for prehensile and non-prehensile robot manipulation, imitation learning and human intent inference, as well as different system architectures and their verification. Students will earn the theoretical foundations for these concepts and implement them on mobile manipulation platforms. In homeworks, the Robot Operating System (ROS) will be used extensively for demonstrations and hands-on activities. Prerequisites: CS106A or equivalent, CME 100 or equivalent (for linear algebra), CME 106 or equivalent (for probability theory), and AA 171/274.
Terms: Win | Units: 3-4

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: 3-4

CS 241: Embedded Systems Workshop (EE 285)

Project-centric building hardware and software for embedded computing systems. This year the course projects are on a large interactive light sculpture to be installed in Packard. Syllabus topics will be determined by the needs of the enrolled students and projects. Examples of topics include: interrupts and concurrent programming, mechanical control, state-based programming models, signaling and frequency response, mechanical design, power budgets, software, firmware, and PCB design. Interested students can help lead community workshops to begin building the installation. Prerequisites: one of CS107, EE101A, EE108, ME80.
Terms: Win | Units: 3 | Repeatable 3 times (up to 9 units total)

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: 3-4

CS 246: Mining Massive Data Sets

The 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. Topics include: Big data systems (Hadoop, Spark); Link Analysis (PageRank, spam detection); Similarity search (locality-sensitive hashing, shingling, min-hashing); Stream data processing; Recommender Systems; Analysis of social-network graphs; Association rules; Dimensionality reduction (UV, SVD, and CUR decompositions); Algorithms for large-scale mining (clustering, nearest-neighbor search); Large-scale machine learning (decision tree ensembles); Multi-armed bandit; Computational advertising. Prerequisites: At least one of CS107 or CS145.
Terms: Win | Units: 3-4 | UG Reqs: WAY-FR

CS 247B: Design for Behavior Change (SYMSYS 195B)

Over the last decade, tech companies have invested in shaping user behavior, sometimes for altruistic reasons like helping people change bad habits into good ones, and sometimes for financial reasons such as increasing engagement. In this project-based hands-on course, students explore the design of systems, information and interface for human use. We will model the flow of interactions, data and context, and crafting a design that is useful, appropriate and robust. Students will design and prototype utility apps or games as a response to the challenges presented. We will also examine the ethical consequences of design decisions and explore current issues arising from unintended consequences. Prerequisite: CS147 or equivalent.
Terms: Win | Units: 3-4

CS 247S: Service Design (SYMSYS 195S)

A project-based course that builds on the introduction to design in CS147 by focusing on advanced methods and tools for research, prototyping, and user interface design. Studio based format with intensive coaching and iteration to prepare students for tackling real world design problems. This course takes place entirely in studios; you must plan on attending every studio to take this class. The focus of CS247S is Service Design. In this course we will be looking at experiences that address the needs of multiple types of stakeholders at different touchpoints - digital, physical, and everything in between. If you have ever taken an Uber, participated in the Draw, engaged with your bank, or ordered a coffee through the Starbucks app, you have experienced a service that must have a coordinated experience for the customer, the service provider, and any other stakeholders involved. Let us explore what specialized tools and processes are required to created these multi-faceted interactions. Prerequisites: CS147 or equivalent background in design thinking. In the event of a waitlist, acceptance to class based on an application provided on the first day of class.
Terms: Win | Units: 3-4

CS 248A: Computer Graphics: Rendering, Geometry, and Image Manipulation

This course provides a comprehensive introduction to interactive computer graphics, focusing on fundamental concepts and techniques, as well as their cross-cutting relationship to multiple problem domains in interactive graphics (such as rendering, animation, geometry, image processing). Topics include: 2D and 3D drawing, sampling theory, interpolation, rasterization, image compositing, the real-time GPU graphics pipeline (and parallel rendering), VR rendering, geometric transformations, curves and surfaces, geometric data structures, subdivision, meshing, spatial hierarchies, image processing, time integration, physically-based animation, and inverse kinematics. The course will involve several in-depth programming assignments and a self-selected final project that explores concepts covered in the class. Prerequisite: CS 107, MATH 51.
Terms: Win | Units: 3-4

CS 249I: The Modern Internet

Advanced networking course that covers how the Internet has evolved and operates today. Topics include modern Internet topology and routing practices, recently introduced network protocols, popular content delivery strategies, and pressing privacy, security, and abuse challenges. The course consists of a mixture of lecture, guest talks, and investigative projects where students will analyze how Internet operates in practice. Prerequisite: CS 144, EE 284, or equivalent.
Terms: Win | Units: 3

CS 254: Computational Complexity

An introduction to computational complexity theory. Topics include the P versus NP problem and other major challenges of complexity theory; Space complexity: Savitch's theorem and the Immerman-Szelepscényi theorem; P, NP, coNP, and the polynomial hierarchy; The power of randomness in computation; Non-uniform computation and circuit complexity; Interactive proofs. Prerequisites: 154 or equivalent; mathematical maturity.
Terms: Win | Units: 3

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, zero-knowledge protocols, and real-world applications. Prerequisite: basic probability theory.
Terms: Win | Units: 3

CS 256: Algorithmic Fairness

Machine learning and data analysis have enjoyed tremendous success in a broad range of domains. These advances hold the promise of great benefits to individuals, organizations and society. Undeniably, algorithms are informing decisions that reach ever more deeply into our lives, from news article recommendations to criminal sentencing decisions to healthcare diagnostics. This progress, however, raises (and is impeded by) a host of concerns regarding the societal impact of computation. A prominent concern is that these algorithms should be fair. Unfortunately, the hope that automated decision-making might be free of social biases is dashed on the data on which the algorithms are trained and the choices in their construction: left to their own devices, algorithms will propagate - even amplify - existing biases of the data, the programmers, and the decisions made in the choice of features to incorporate and measurements of 'fitness' to be applied. Addressing wrongful discrimination by algorithms is not only mandated by law and by ethics but is essential to maintaining the public trust in the current computation-driven revolution.The study of fairness is ancient and multi-disciplinary: philosophers, legal experts, economists, statisticians, social scientists and others have been concerned with fairness for as long as these fields have existed. Nevertheless, the scale of decision making in the age of big-data, the computational complexities of algorithmic decision making, and simple professional responsibility mandate that computer scientists contribute to this research endeavor. This is an intro to this booming area of research.Prerequisites: CS 161 and 221. I will be assuming some mathematical maturity, and CS 154 isrecommended.
Terms: Win | Units: 3

CS 270: Modeling Biomedical Systems (BIOMEDIN 210)

At the core of informatics is the problem of creating computable models of biomedical phenomena. This course explores methods for modeling biomedical systems with an emphasis on contemporary semantic technology, including knowledge graphs. Topics: data modeling, knowledge representation, controlled terminologies, ontologies, reusable problem solvers, modeling problems in healthcare information technology and other aspects of informatics. Students acquire hands-on experience with several systems and tools. Prerequisites: CS106A. Basic familiarity with Python programming, biology, probability, and logic are assumed.
Terms: Win, Spr | Units: 3
Instructors: ; Musen, M. (PI)

CS 275A: Symbolic Musical Information (MUSIC 253)

Properties of symbolic data for music applications including advanced notation systems, data durability, mark-up languages, optical music recognition, and data-translation tasks. Hands-on work involves these digital score formats: Guido Music Notation, Humdrum, MuseData, MEI, MusicXML, SCORE, and MIDI internal code.
Terms: Win | Units: 2-4

CS 277: Foundation Models for Healthcare (BIODS 271, RAD 271)

Generative AI and large-scale self-supervised foundation models are poised to have a profound impact on human decision making across occupations. Healthcare is one such area where such models have the capacity to impact patients, clinicians, and other care providers. In this course, we will explore the training, evaluation, and deployment of generative AI and foundation models, with a focus on addressing current and future medical needs. The course will cover models used in natural language processing, computer vision, and multi-modal applications. We will explore the intersection of models trained on non-healthcare domains and their adaptation to domain-specific problems, as well as healthcare-specific foundation models. Prerequisites: Familiarity with machine learning principles at the level of CS 229, 231N, or 224N
Terms: Win | Units: 3

CS 288: Applied Causal Inference with Machine Learning and AI (MS&E 228)

Fundamentals of modern applied causal inference. Basic principles of causal inference and machine learning and how the two can be combined in practice to deliver causal insights and policy implications in real world datasets, allowing for high-dimensionality and flexible estimation. Lectures will provide foundations of these new methodologies and the course assignments will involve real world data (from social science, tech industry and healthcare applications) and synthetic data analysis based on these methodologies. Prerequisites: basic knowledge of probability and statistics. Recommended: 226 or equivalent.
Terms: Win | Units: 3

CS 295: Software Engineering

Software specification, testing and verification. The emphasis is on automated tools for developing reliable software. The course covers material---drawn primarily from recent research papers---on the technologyunderlying these tools. Assignments supplement the lectures with hands-on 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

CS 324H: History of Natural Language Processing

Intellectual history of computational linguistics, natural language processing, and speech recognition, using primary sources. Reading of seminal early papers, interviews with early pioneers, with the goal of understanding the origins and intellectual development of the field. Prerequisites: (strictly required) completion of a Stanford graduate NLP course (CS 224C/N/U/S, 329X, 384).
Terms: Win | Units: 3-4

CS 339R: Collaborative Robotics (ME 326)

This course focuses on how robots can be effective teammates with other robots and human partners. Concepts and tools will be reviewed for characterizing task objectives, robot perception and control, teammate behavioral modeling, inter-agent communication, and team consensus. We will consider the application of these tools to robot collaborators, wearable robotics, and the latest applications in the relevant literature. This will be a project-based graduate course, with the implementation of algorithms in either python or C++.
Terms: Win | Units: 3

CS 342: Building for Digital Health (MED 253)

This project-based course will provide a comprehensive overview of key requirements in the design and full-stack implementation of a digital health research application. Several pre-vetted and approved projects from the Stanford School of Medicine will be available for students to select from and build. Student teams learn about all necessary approval processes to deploy a digital health solution (data privacy clearance/I RB approval, etc.) and be guided in the development of front-end and back-end infrastructure using best practices. The final project will be the presentation and deployment of a fully approved digital health research application. CS106A, CS106B, Recommended: CS193P/A, CS142, CS47, CS110. Limited enrollment for this course. Apply for enrollment permission here: https://stanforduniversity.qualtrics.com/jfe/form/SV_9ThVhqf4zyhzheS
Terms: Win | Units: 3-4

CS 343D: Domain-Specific Programming Models and Compilers

This class will cover the principles and practices of domain-specific programming models and compilers for dense and sparse applications in scientific computing, data science, and machine learning. We will study programming models from the recent literature, categorize them, and discuss their properties. We will also discuss promising directions for their compilation, including the separation of algorithm, schedule, and data representation, polyhedral compilation versus rewrite rules, and sparse iteration theory. Prerequisites: CS143 or equivalent
Terms: Win | Units: 3

CS 348C: Computer Graphics: Animation and Simulation

Core mathematics and methods for computer animation and motion simulation. Traditional animation techniques. Physics-based simulation methods for modeling shape and motion: particle systems, constraints, rigid bodies, deformable models, collisions and contact, fluids, and fracture. Animating natural phenomena. Methods for animating virtual characters and crowds. Additional topics selected from data-driven animation methods, realism and perception, animation systems, motion control, real-time and interactive methods, and multi-sensory feedback. Recommended: CS 148 and/or 205A. Prerequisite: linear algebra.
Terms: Win | Units: 3

CS 348I: Computer Graphics in the Era of AI

This course introduces deep learning methods and AI technologies applied to four main areas of Computer Graphics: rendering, geometry, animation, and imaging. We will study a wide range of problems on content creation for images, shapes, and animations, recently advanced by deep learning techniques. For each problem, we will understand its conventional solutions, study the state-of-the-art learning-based approaches, and critically evaluate their results as well as the impacts to researchers and practitioners in Computer Graphics. The topics include differentiable rendering/neural rendering, BRDF estimation, texture synthesis, denoising, procedural modeling, view synthesis, colorization, style transfer, motion synthesis, differentiable physics simulation, and reinforcement learning. Through programming projects and homework, students who successfully complete this course will be able to use neural rendering algorithms for image manipulation, apply neural procedural modeling for shape and scene synthesis, exploit data-driven methods for simulating physical phenomena, and implement policy learning algorithms for creating character animation. Recommended Prerequisites: CS148, CS231N
Terms: Win | Units: 3-4

CS 353: Seminar on Logic & Formal Philosophy (PHIL 391)

Contemporary work. May be repeated a total of three times for credit.
Terms: Aut, Win | Units: 2-4 | Repeatable 3 times (up to 12 units total)
Instructors: ; Icard, T. (PI)

CS 366: Computational Social Choice (MS&E 336)

An in-depth treatment of algorithmic and game-theoretic issues in social choice. Topics include common voting rules and impossibility results; ordinal vs cardinal voting; market approaches to large scale decision making; voting in complex elections, including multi-winner elections and participatory budgeting; protocols for large scale negotiation and deliberation; fairness in societal decision making;nalgorithmic approaches to governance of modern distributed systems such as blockchains and community-mediated social networks; opinion dynamics and polarization. Prerequisites: algorithms at the level of 212 or CS 161, probability at the level of 221, and basic game theory, or consent of instructor.
Terms: Win | Units: 3
Instructors: ; Goel, A. (PI)

CS 369O: Optimization Algorithms (CME 334, MS&E 312)

Fundamental theory for solving continuous optimization problems with provable efficiency guarantees. Coverage of both canonical optimization methods and techniques, e.g. gradient descent, mirror descent, stochastic methods, acceleration, higher-order methods, etc. and canonical optimization problems, critical point computation for non-convex functions, smooth-convex function minimization, regression, linear programming, etc. Focus on provable rates for solving broad classes of prevalent problems including both classic problems and those motivated by large-scale computational concerns. Discussion of computational ramifications, fundamental information-theoretic limits, and problem structure. Prerequisite: linear algebra, multivariable calculus, probability, and proofs.
Terms: Win | Units: 3

CS 375: Large-Scale Neural Network Modeling for Neuroscience (PSYCH 249)

The last ten years has seen a watershed in the development of large-scale neural networks in artificial intelligence. At the same time, computational neuroscientists have discovered a surprisingly robust mapping between the internal components of these networks and real neural structures in the human brain. In this class we will discuss a panoply of examples of such "convergent man-machine evolution", including: feedforward models of sensory systems (vision, audition, somatosensation); recurrent neural networks for dynamics and motor control; integrated models of attention, memory, and navigation; transformer models of language areas; self-supervised models of learning; and deep RL models of decision and planning. We will also delve into the methods and metrics for comparing such models to real-world neural data, and address how unsolved open problems in AI (that you can work on!) will drive forward novel neural models. Some meaningful background in modern neural networks is highly advised (e.g. CS229, CS230, CS231n, CS234, CS236, CS 330), but formal preparation in cognitive science or neuroscience is not needed (we will provide this).
Terms: Win | Units: 3

CS 390A: Curricular Practical Training

Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in internship work and integrate that work into their academic program. Students register under their faculty advisor during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and follow-on projects they expect to perform. CS390A, CS390B, and CS390C may each be taken once.
Terms: Aut, Win, Spr, Sum | Units: 1
Instructors: ; Achour, S. (PI); Agrawala, M. (PI); Aiken, A. (PI); Altman, R. (PI); Anari, N. (PI); Bailis, P. (PI); Barrett, C. (PI); Batzoglou, S. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Blikstein, P. (PI); Bohg, J. (PI); Boneh, D. (PI); Borenstein, J. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Cao, P. (PI); Chang, M. (PI); Charikar, M. (PI); Cheriton, D. (PI); Dally, B. (PI); Dill, D. (PI); Dror, R. (PI); Duchi, J. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Feigenbaum, E. (PI); Fikes, R. (PI); Finn, C. (PI); Fischer, M. (PI); Fisher, K. (PI); Fogg, B. (PI); Follmer, S. (PI); Fox, A. (PI); Fox, E. (PI); Genesereth, M. (PI); Girod, B. (PI); Goel, A. (PI); Goel, S. (PI); Goodman, N. (PI); Gregg, C. (PI); Guestrin, C. (PI); Guibas, L. (PI); Haber, N. (PI); Hanrahan, P. (PI); Hashimoto, T. (PI); Hennessy, J. (PI); Horowitz, M. (PI); Icard, T. (PI); James, D. (PI); Johari, R. (PI); Jurafsky, D. (PI); Katti, S. (PI); Khatib, O. (PI); Kochenderfer, M. (PI); Koller, D. (PI); Koyejo, S. (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); Liu, K. (PI); Ma, T. (PI); Manning, C. (PI); Mazieres, D. (PI); McKeown, N. (PI); Mitchell, J. (PI); Mitra, S. (PI); Montgomery, S. (PI); Musen, M. (PI); Nayak, P. (PI); Ng, A. (PI); Niebles Duque, J. (PI); Okamura, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Paepcke, A. (PI); Pande, V. (PI); Parlante, N. (PI); Pavone, M. (PI); Pea, R. (PI); Piech, C. (PI); Plotkin, S. (PI); Plummer, R. (PI); Potts, C. (PI); Prabhakar, B. (PI); Pratt, V. (PI); Raghavan, P. (PI); Rajaraman, A. (PI); Re, C. (PI); Reingold, O. (PI); Roberts, E. (PI); Rosenblum, M. (PI); Roughgarden, T. (PI); Rubinstein, A. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Schramm, T. (PI); Schwarz, K. (PI); Shoham, Y. (PI); Sidford, A. (PI); Sosic, R. (PI); Stanford, J. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Troccoli, N. (PI); Ullman, J. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wetzstein, G. (PI); Widom, J. (PI); Winograd, T. (PI); Winstein, K. (PI); Wodtke, C. (PI); Wootters, M. (PI); Wu, J. (PI); Yamins, D. (PI); Yang, D. (PI); Yeung, S. (PI); Young, P. (PI); Zaharia, M. (PI); Zelenski, J. (PI); Zou, J. (PI); Rutherford, E. (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 under their faculty advisor during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and follow-on projects they expect to perform. CS390A, CS390B, and CS390C may each be taken once.
Terms: Aut, Win, Spr, Sum | Units: 1
Instructors: ; Achour, S. (PI); Agrawala, M. (PI); Aiken, A. (PI); Altman, R. (PI); Bailis, P. (PI); Barrett, C. (PI); Batzoglou, S. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Blikstein, P. (PI); Bohg, J. (PI); Boneh, D. (PI); Borenstein, J. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Cao, P. (PI); Chang, M. (PI); Charikar, M. (PI); Cheriton, D. (PI); Dally, B. (PI); Dill, D. (PI); Dror, R. (PI); Duchi, J. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Feigenbaum, E. (PI); Fikes, R. (PI); Finn, C. (PI); Fisher, K. (PI); Fogg, B. (PI); Follmer, S. (PI); Fox, A. (PI); Fox, E. (PI); Genesereth, M. (PI); Girod, B. (PI); Goel, A. (PI); Goel, S. (PI); Goodman, N. (PI); Gregg, C. (PI); Guestrin, C. (PI); Guibas, L. (PI); Hanrahan, P. (PI); Hennessy, J. (PI); Horowitz, M. (PI); Icard, T. (PI); James, D. (PI); Johari, R. (PI); Jurafsky, D. (PI); Katti, S. (PI); Khatib, O. (PI); Kochenderfer, M. (PI); Koller, D. (PI); Koyejo, S. (PI); Kozyrakis, C. (PI); Kundaje, A. (PI); Lam, M. (PI); Landay, J. (PI); Latombe, J. (PI); Lee, C. (PI); Leskovec, J. (PI); Levis, P. (PI); Levitt, M. (PI); Levoy, M. (PI); Li, F. (PI); Liang, P. (PI); Ma, T. (PI); Manning, C. (PI); Mazieres, D. (PI); McKeown, N. (PI); Mitchell, J. (PI); Mitra, S. (PI); Musen, M. (PI); Nayak, P. (PI); Ng, A. (PI); Niebles Duque, J. (PI); Okamura, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Paepcke, A. (PI); Parlante, N. (PI); Pavone, M. (PI); Pea, R. (PI); Piech, C. (PI); Plotkin, S. (PI); Plummer, R. (PI); Potts, C. (PI); Prabhakar, B. (PI); Pratt, V. (PI); Raghavan, P. (PI); Rajaraman, A. (PI); Re, C. (PI); Reingold, O. (PI); Roberts, E. (PI); Rosenblum, M. (PI); Rubinstein, A. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Schramm, T. (PI); Schwarz, K. (PI); Shoham, Y. (PI); Sidford, A. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Troccoli, N. (PI); Ullman, J. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI); Winograd, T. (PI); Winstein, K. (PI); Wootters, M. (PI); Wu, J. (PI); Yang, D. (PI); Yeung, S. (PI); Young, P. (PI); Zaharia, M. (PI); Zelenski, J. (PI); Zou, J. (PI); Rutherford, E. (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 under their faculty advisor during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and follow-on projects they expect to perform. CS 390A, CS390B, and CS390C may each be taken once.
Terms: Aut, Win, Spr, Sum | Units: 1
Instructors: ; A. Hudson, D. (PI); Achour, S. (PI); Aiken, A. (PI); Altman, R. (PI); Barrett, C. (PI); Batzoglou, S. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Blikstein, P. (PI); Boneh, D. (PI); Borenstein, J. (PI); Bouland, A. (PI); Cain, J. (PI); Cao, P. (PI); Charikar, M. (PI); Cheriton, D. (PI); Dally, B. (PI); Dill, D. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fedkiw, R. (PI); Feigenbaum, E. (PI); Fikes, R. (PI); Finn, C. (PI); Fisher, K. (PI); Fogg, B. (PI); Follmer, S. (PI); Fox, A. (PI); Fox, E. (PI); Genesereth, M. (PI); Girod, B. (PI); Goel, A. (PI); Goodman, N. (PI); Gregg, C. (PI); Guibas, L. (PI); Hanrahan, P. (PI); Hennessy, J. (PI); Horowitz, M. (PI); James, D. (PI); Johari, R. (PI); Jurafsky, D. (PI); Katti, S. (PI); Khatib, O. (PI); Koller, D. (PI); Koyejo, S. (PI); Kozyrakis, C. (PI); Lam, M. (PI); Latombe, J. (PI); Lee, C. (PI); Leskovec, J. (PI); Levis, P. (PI); Levitt, M. (PI); Levoy, M. (PI); Li, F. (PI); Liang, P. (PI); Liu, K. (PI); Ma, T. (PI); Manning, C. (PI); Mazieres, D. (PI); McKeown, N. (PI); Mitchell, J. (PI); Mitra, S. (PI); Musen, M. (PI); Nayak, P. (PI); Ng, A. (PI); Okamura, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Paepcke, A. (PI); Parlante, N. (PI); Pavone, M. (PI); Pea, R. (PI); Piech, C. (PI); Plotkin, S. (PI); Plummer, R. (PI); Potts, C. (PI); Prabhakar, B. (PI); Pratt, V. (PI); Raghavan, P. (PI); Rajaraman, A. (PI); Re, C. (PI); Reingold, O. (PI); Roberts, E. (PI); Rosenblum, M. (PI); Roughgarden, T. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Schwarz, K. (PI); Shoham, Y. (PI); Sidford, A. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Ullman, J. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI); Widom, J. (PI); Winograd, T. (PI); Winstein, K. (PI); Wu, J. (PI); Yang, D. (PI); Yeung, S. (PI); Young, P. (PI); Zaharia, M. (PI); Zelenski, J. (PI); Rutherford, E. (GP)

CS 390D: Part-time Curricular Practical Training

For qualified computer science PhD students only. Permission number required for enrollment; see the CS PhD program administrator in Gates room 195. Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science PhD students engage in research and integrate that work into their academic program. Students register under their faculty advisor during the quarter they are employed and complete a research report outlining their work activity, problems investigated, results, and follow-on projects they expect to perform. Students on F1 visas should be aware that completing 12 or more months of full-time CPT will make them ineligible for Optional Practical Training (OPT).
Terms: Aut, Win, Spr, Sum | Units: 1 | Repeatable for credit
Instructors: ; Achour, S. (PI); Agrawala, M. (PI); Aiken, A. (PI); Altman, R. (PI); Bailis, P. (PI); Barrett, C. (PI); Batzoglou, S. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Blikstein, P. (PI); Bohg, J. (PI); Boneh, D. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Cao, P. (PI); Charikar, M. (PI); Cheriton, D. (PI); Dally, B. (PI); Dill, D. (PI); Dror, R. (PI); Duchi, J. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Feigenbaum, E. (PI); Fikes, R. (PI); Finn, C. (PI); Fisher, K. (PI); Follmer, S. (PI); Fox, A. (PI); Genesereth, M. (PI); Girod, B. (PI); Goel, A. (PI); Goel, S. (PI); Goodman, N. (PI); Guestrin, C. (PI); Guibas, L. (PI); Haber, N. (PI); Hanrahan, P. (PI); Hashimoto, T. (PI); Hayden, P. (PI); Hennessy, J. (PI); Horowitz, M. (PI); James, D. (PI); Johari, R. (PI); Jurafsky, D. (PI); Katti, S. (PI); Khatib, O. (PI); Kochenderfer, M. (PI); Koller, D. (PI); Koyejo, S. (PI); Kozyrakis, C. (PI); Kundaje, A. (PI); Lam, M. (PI); Landay, J. (PI); Latombe, J. (PI); Leskovec, J. (PI); Levis, P. (PI); Levitt, M. (PI); Levoy, M. (PI); Li, F. (PI); Liang, P. (PI); Liu, K. (PI); Ma, T. (PI); Manning, C. (PI); Mazieres, D. (PI); McKeown, N. (PI); Mitchell, J. (PI); Mitra, S. (PI); Montanari, A. (PI); Musen, M. (PI); Nayak, P. (PI); Ng, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Paepcke, A. (PI); Pande, V. (PI); Parlante, N. (PI); Pavone, M. (PI); Piech, C. (PI); Plotkin, S. (PI); Prabhakar, B. (PI); Pratt, V. (PI); Raghavan, P. (PI); Rajaraman, A. (PI); Re, C. (PI); Reingold, O. (PI); Roberts, E. (PI); Rosenblum, M. (PI); Rubinstein, A. (PI); Saberi, A. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Schwarz, K. (PI); Shoham, Y. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Ullman, J. (PI); Valiant, G. (PI); Van Roy, B. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI); Winograd, T. (PI); Winstein, K. (PI); Wootters, M. (PI); Wu, J. (PI); Yan, L. (PI); Yeung, S. (PI); Young, P. (PI); Zaharia, M. (PI); Zelenski, J. (PI); Zou, J. (PI); Rutherford, E. (GP)

CS 399: Independent Project

Letter grade only. This course is for masters students only. Undergraduate students should enroll in CS199; PhD students should enroll in CS499. Letter grade; if not appropriate, enroll in CS399P. Register using the section number associated with the instructor. Prerequisite: consent of instructor.
Terms: Aut, Win, Spr, Sum | Units: 1-9 | Repeatable for credit
Instructors: ; Achour, S. (PI); Adeli, E. (PI); Agrawala, M. (PI); Aiken, A. (PI); Akbarpour, M. (PI); Altman, R. (PI); Barrett, C. (PI); Batzoglou, S. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Blikstein, P. (PI); Bohg, J. (PI); Boneh, D. (PI); Borenstein, J. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Cao, P. (PI); Chang, M. (PI); Charikar, M. (PI); Cheriton, D. (PI); Dally, B. (PI); Demszky, D. (PI); Dill, D. (PI); Dror, R. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Feigenbaum, E. (PI); Fikes, R. (PI); Finn, C. (PI); Fisher, K. (PI); Fogg, B. (PI); Fox, A. (PI); Fox, E. (PI); Genesereth, M. (PI); Girod, B. (PI); Goel, A. (PI); Goel, S. (PI); Goodman, N. (PI); Gregg, C. (PI); Guestrin, C. (PI); Guibas, L. (PI); Haber, N. (PI); Hanrahan, P. (PI); Hashimoto, T. (PI); Hennessy, J. (PI); Ho, D. (PI); Horowitz, M. (PI); Icard, T. (PI); James, D. (PI); Johari, R. (PI); Jurafsky, D. (PI); Katti, S. (PI); Khatib, O. (PI); Kjoelstad, F. (PI); Kochenderfer, M. (PI); Koller, D. (PI); Koyejo, S. (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); Liu, K. (PI); Ma, T. (PI); MacCartney, B. (PI); Manning, C. (PI); Mazieres, D. (PI); McKeown, N. (PI); Mirhoseini, A. (PI); Mitchell, J. (PI); Montgomery, S. (PI); Musen, M. (PI); Nayak, P. (PI); Ng, A. (PI); Niebles Duque, J. (PI); Okamura, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Paepcke, A. (PI); Pande, V. (PI); Parlante, N. (PI); Patrignani, M. (PI); Pavone, M. (PI); Pea, R. (PI); Piech, C. (PI); Plotkin, S. (PI); Plummer, R. (PI); Potts, C. (PI); Prabhakar, B. (PI); Pratt, V. (PI); Raghavan, P. (PI); Rajaraman, A. (PI); Re, C. (PI); Reingold, O. (PI); Roberts, E. (PI); Rosenblum, M. (PI); Roughgarden, T. (PI); Rubin, D. (PI); Rubinstein, A. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Saxena, A. (PI); Schwarz, K. (PI); Shoham, Y. (PI); Sidford, A. (PI); Socher, R. (PI); Sosic, R. (PI); Stanford, J. (PI); Subramonyam, H. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Ullman, J. (PI); Valiant, G. (PI); Van Roy, B. (PI); Varodayan, D. (PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI); Winograd, T. (PI); Winstein, K. (PI); Wodtke, C. (PI); Wootters, M. (PI); Wu, J. (PI); Yamins, D. (PI); Yan, L. (PI); Yang, D. (PI); Yeung, S. (PI); Young, P. (PI); Zaharia, M. (PI); Zelenski, J. (PI); Zou, J. (PI); Rutherford, E. (GP)

CS 399P: Independent Project

Graded satisfactory/no credit. This course is for masters students only. Undergraduate students should enroll in CS199; PhD students should enroll in CS499. S/NC only; if not appropriate, enroll in CS399. Register using the section number associated with the instructor. Prerequisite: consent of instructor.
Terms: Aut, Win, Spr, Sum | Units: 1-9 | Repeatable for credit
Instructors: ; Achour, S. (PI); Agrawala, M. (PI); Aiken, A. (PI); Altman, R. (PI); Bailis, P. (PI); Batzoglou, S. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Blikstein, P. (PI); Boneh, D. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Cao, P. (PI); Charikar, M. (PI); Cheriton, D. (PI); Dally, B. (PI); Dill, D. (PI); Dror, R. (PI); Engler, D. (PI); Ermon, S. (PI); Fedkiw, R. (PI); Feigenbaum, E. (PI); Fikes, R. (PI); Finn, C. (PI); Fisher, K. (PI); Fogg, B. (PI); Fox, A. (PI); Fox, E. (PI); Genesereth, M. (PI); Girod, B. (PI); Goel, A. (PI); Goodman, N. (PI); Guibas, L. (PI); Haber, N. (PI); Hanrahan, P. (PI); Hennessy, J. (PI); Horowitz, M. (PI); James, D. (PI); Johari, R. (PI); Jurafsky, D. (PI); Katti, S. (PI); Khatib, O. (PI); Kjoelstad, F. (PI); Kochenderfer, M. (PI); Koller, D. (PI); Koyejo, S. (PI); Kozyrakis, C. (PI); Lam, M. (PI); Landay, J. (PI); Latombe, J. (PI); Lee, C. (PI); Leskovec, J. (PI); Levis, P. (PI); Levitt, M. (PI); Levoy, M. (PI); Li, F. (PI); Liang, P. (PI); Liu, K. (PI); Manning, C. (PI); Mazieres, D. (PI); McKeown, N. (PI); Mirhoseini, A. (PI); Mitchell, J. (PI); Musen, M. (PI); Nayak, P. (PI); Ng, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Paepcke, A. (PI); Parlante, N. (PI); Pavone, M. (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); 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); Thrun, S. (PI); Tobagi, F. (PI); Ullman, J. (PI); Valiant, G. (PI); Van Roy, B. (PI); Varodayan, D. (PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI); Winograd, T. (PI); Wodtke, C. (PI); Wu, J. (PI); Yan, L. (PI); Yang, D. (PI); Young, P. (PI); Zelenski, J. (PI); Zou, J. (PI); Rutherford, E. (GP)

CS 422: Interactive and Embodied Learning (EDUC 234A)

Most successful machine learning algorithms of today use either carefully curated, human-labeled datasets, or large amounts of experience aimed at achieving well-defined goals within specific environments. In contrast, people learn through their agency: they interact with their environments, exploring and building complex mental models of their world so as to be able to flexibly adapt to a wide variety of tasks. One crucial next direction in artificial intelligence is to create artificial agents that learn in this flexible and robust way. Students will read and take turns presenting current works, and they will produce a proposal of a feasible next research direction. Prerequisites: CS229, CS231N, CS234 (or equivalent).
Terms: Win | Units: 3 | Repeatable 5 times (up to 15 units total)
Instructors: ; Haber, N. (PI)

CS 432: Computer Vision for Education and Social Science Research (EDUC 463)

Computer vision -- the study of how to design artificial systems that can perform high-level tasks related to image or video data (e.g. recognizing and locating objects in images and behaviors in videos) -- has seen recent dramatic success. In this course, we seek to give education and social science researchers the know-how needed to apply cutting edge computer vision algorithms in their work as well as an opportunity to workshop applications. Prerequisite: python familiarity and some experience with data.
Terms: Win | Units: 3
Instructors: ; Haber, N. (PI); Cerit, M. (TA)

CS 448I: Computational Imaging (EE 367)

Digital photography and basic image processing, convolutional neural networks for image processing, denoising, deconvolution, single pixel imaging, inverse problems in imaging, proximal gradient methods, introduction to wave optics, time-of-flight imaging, end-to-end optimization of optics and imaging processing. Emphasis is on applied image processing and solving inverse problems using classic algorithms, formal optimization, and modern artificial intelligence techniques. Students learn to apply material by implementing and investigating image processing algorithms in Python. Term project. Recommended: EE261, EE263, EE278.
Terms: Win | Units: 3

CS 470: Music and AI (MUSIC 356)

How do we make music with artificial intelligence? What does it mean to do so (and is it even a good idea)? How might we design systems that balance machine automation and human interaction? More broadly, how do we want to live with our technologies? Are there - and ought there be - limits to using AI for art? (And what is Art, anyway?) In this "critical making" course, students will learn practical tools and techniques for AI-mediated music creation, engineer software systems incorporating AI, HCI and Music, and critically reflect on the aesthetic and ethical dimensions of technology.
Terms: Win | Units: 3-4
Instructors: ; Wang, G. (PI); Zhu, A. (TA)

CS 498C: Introduction to CSCL: Computer-Supported Collaborative Learning (EDUC 315A)

This seminar introduces students to foundational concepts and research on computer-supported collaborative learning (CSCL). It is designed for LSTD doctoral students, LDT masters' students, other GSE graduate students and advanced undergraduates inquiring about theory, research and design of CSCL. CSCL is defined as a triadic structure of collaboration mediated by a computational artefact (participant-artifact-participant). CSCL encompasses two individuals performing a task together in a short time, small or class-sized groups, and students following the same course, digitally interacting.
Terms: Win | Units: 3
Instructors: ; Pea, R. (PI); Pittman, J. (TA)

CS 499: Advanced Reading and Research

Letter grade only. Advanced reading and research for CS PhD students. Register using the section number associated with the instructor. Prerequisite: consent of instructor. This course is for PhD students only. Undergraduate students should enroll in CS199, masters students should enroll in CS399. Letter grade; if not appropriate, enroll in CS499P.
Terms: Aut, Win, Spr, Sum | Units: 1-15 | Repeatable for credit
Instructors: ; Achour, S. (PI); Adeli, E. (PI); Agrawala, M. (PI); Aiken, A. (PI); Akbarpour, M. (PI); Altman, R. (PI); Anari, N. (PI); Bailis, P. (PI); Barrett, C. (PI); Batzoglou, S. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Boahen, K. (PI); Bohg, J. (PI); Boneh, D. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Cao, P. (PI); Charikar, M. (PI); Cheriton, D. (PI); Dally, B. (PI); Dill, D. (PI); Dror, R. (PI); Duchi, J. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Feigenbaum, E. (PI); Fikes, R. (PI); Finn, C. (PI); Fisher, K. (PI); Fogg, B. (PI); Follmer, S. (PI); Fox, A. (PI); Fox, E. (PI); Fox, J. (PI); Ganguli, S. (PI); Genesereth, M. (PI); Girod, B. (PI); Goel, A. (PI); Goel, S. (PI); Goodman, N. (PI); Guestrin, C. (PI); Guibas, L. (PI); Haber, N. (PI); Hanrahan, P. (PI); Hashimoto, T. (PI); Hayden, P. (PI); Hennessy, J. (PI); Ho, D. (PI); Horowitz, M. (PI); Icard, T. (PI); James, D. (PI); Johari, R. (PI); Jurafsky, D. (PI); Katti, S. (PI); Kennedy, M. (PI); Khatib, O. (PI); Kjoelstad, F. (PI); Kochenderfer, M. (PI); Koller, D. (PI); Koyejo, S. (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); Linderman, S. (PI); Liu, K. (PI); Ma, T. (PI); Manning, C. (PI); Mazieres, D. (PI); McClelland, J. (PI); McKeown, N. (PI); Mirhoseini, A. (PI); Mitchell, J. (PI); Mitra, S. (PI); Montanari, A. (PI); Montgomery, S. (PI); Musen, M. (PI); Nayak, P. (PI); Ng, A. (PI); Niebles Duque, J. (PI); Okamura, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Paepcke, A. (PI); Parlante, N. (PI); Pavone, M. (PI); Pea, R. (PI); Piech, C. (PI); Plotkin, S. (PI); Plummer, R. (PI); Potts, C. (PI); Prabhakar, B. (PI); Pratt, V. (PI); Raghavan, P. (PI); Raina, P. (PI); Rajaraman, A. (PI); Re, C. (PI); Reingold, O. (PI); Roberts, E. (PI); Rosenblum, M. (PI); Rubin, D. (PI); Rubinstein, A. (PI); Saberi, A. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Saxena, A. (PI); Schwarz, K. (PI); Shoham, Y. (PI); Sidford, A. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Ullman, J. (PI); Utterback, C. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI); Winograd, T. (PI); Winstein, K. (PI); Wootters, M. (PI); Wu, J. (PI); Yamins, D. (PI); Yan, L. (PI); Yang, D. (PI); Yeung, S. (PI); Young, P. (PI); Zaharia, M. (PI); Zelenski, J. (PI); Zou, J. (PI); Rutherford, E. (GP)

CS 499P: Advanced Reading and Research

Graded satisfactory/no credit. Advanced reading and research for CS PhD students. Register using the section number associated with the instructor. Prerequisite: consent of instructor. This course is for PhD students only. Undergraduate students should enroll in CS199, masters students should enroll in CS399. S/NC only; if not appropriate, enroll in CS499.
Terms: Aut, Win, Spr, Sum | Units: 1-15 | Repeatable for credit
Instructors: ; Achour, S. (PI); Adeli, E. (PI); Agrawala, M. (PI); Aiken, A. (PI); Akbarpour, M. (PI); Altman, R. (PI); Anari, N. (PI); Bailis, P. (PI); Barrett, C. (PI); Batzoglou, S. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Blikstein, P. (PI); Boahen, K. (PI); Bohg, J. (PI); Boneh, D. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Cao, P. (PI); Charikar, M. (PI); Cheriton, D. (PI); Dally, B. (PI); Dill, D. (PI); Dror, R. (PI); Duchi, J. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Feigenbaum, E. (PI); Fikes, R. (PI); Finn, C. (PI); Fisher, K. (PI); Fogg, B. (PI); Follmer, S. (PI); Fox, A. (PI); Fox, E. (PI); Fox, J. (PI); Ganguli, S. (PI); Genesereth, M. (PI); Girod, B. (PI); Goel, A. (PI); Goel, S. (PI); Goodman, N. (PI); Guestrin, C. (PI); Guibas, L. (PI); Haber, N. (PI); Hanrahan, P. (PI); Hashimoto, T. (PI); Hayden, P. (PI); Hennessy, J. (PI); Horowitz, M. (PI); Icard, T. (PI); James, D. (PI); Johari, R. (PI); Jurafsky, D. (PI); Katti, S. (PI); Kennedy, M. (PI); Khatib, O. (PI); Kjoelstad, F. (PI); Kochenderfer, M. (PI); Koller, D. (PI); Koyejo, S. (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); Linderman, S. (PI); Liu, K. (PI); Ma, T. (PI); Manning, C. (PI); Mazieres, D. (PI); McClelland, J. (PI); McKeown, N. (PI); Mirhoseini, A. (PI); Mitchell, J. (PI); Mitra, S. (PI); Montgomery, S. (PI); Musen, M. (PI); Nayak, P. (PI); Ng, A. (PI); Niebles Duque, J. (PI); Okamura, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Paepcke, A. (PI); Parlante, N. (PI); Pavone, M. (PI); Pea, R. (PI); Piech, C. (PI); Plotkin, S. (PI); Plummer, R. (PI); Potts, C. (PI); Prabhakar, B. (PI); Pratt, V. (PI); Raghavan, P. (PI); Raina, P. (PI); Rajaraman, A. (PI); Re, C. (PI); Reingold, O. (PI); Roberts, E. (PI); Rosenblum, M. (PI); Rubin, D. (PI); Rubinstein, A. (PI); Saberi, A. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Saxena, A. (PI); Schwarz, K. (PI); Shoham, Y. (PI); Sidford, A. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Ullman, J. (PI); Utterback, C. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI); Winograd, T. (PI); Winstein, K. (PI); Wootters, M. (PI); Wu, J. (PI); Yamins, D. (PI); Yan, L. (PI); Yang, D. (PI); Yeung, S. (PI); Young, P. (PI); Zaharia, M. (PI); Zelenski, J. (PI); Zou, J. (PI); Rutherford, E. (GP)

CS 528: Machine Learning Systems Seminar

Machine learning is driving exciting changes and progress in computing systems. What does the ubiquity of machine learning mean for how people build and deploy systems and applications? What challenges does industry face when deploying machine learning systems in the real world, and how can new system designs meet those challenges? In this weekly talk series, we will invite speakers working at the frontier of machine learning systems, and focus on how machine learning changes the modern programming stack. Topics will include programming models for ML, infrastructure to support ML applications such as ML Platforms, debugging, parallel computing, and hardware for ML. May be repeated for credit.
Terms: Aut, Win, Spr | Units: 1

CS 529: Robotics and Autonomous Systems Seminar (AA 289)

Seminar talks by researchers and industry professionals on topics related to modern robotics and autonomous systems. Broadly, talks will cover robotic design, perception and navigation, planning and control, and learning for complex robotic systems. May be repeated for credit.
Terms: Aut, Win, Spr | Units: 1 | Repeatable for credit (up to 99 units total)

CS 547: Human-Computer Interaction Seminar

Weekly speakers on human-computer interaction topics. May be repeated for credit.
Terms: Aut, Win, Spr | Units: 1 | Repeatable for credit

CS 802: TGR Dissertation

Terminal Graduate Registration (TGR). CS PhD students who have their TGR form approved should register under the section number associated with their faculty advisor.
Terms: Aut, Win, Spr, Sum | Units: 0 | Repeatable for credit
Instructors: ; Achour, S. (PI); Agrawala, M. (PI); Aiken, A. (PI); Akbarpour, M. (PI); Altman, R. (PI); Anari, N. (PI); Barrett, C. (PI); Batzoglou, S. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Blikstein, P. (PI); Boahen, K. (PI); Bohg, J. (PI); Boneh, D. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Cao, P. (PI); Charikar, M. (PI); Cheriton, D. (PI); Dally, B. (PI); Dill, D. (PI); Dror, R. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Feigenbaum, E. (PI); Fikes, R. (PI); Finn, C. (PI); Fisher, K. (PI); Fogg, B. (PI); Follmer, S. (PI); Fox, A. (PI); Fox, E. (PI); Fox, J. (PI); Ganguli, S. (PI); Genesereth, M. (PI); Girod, B. (PI); Goel, A. (PI); Goel, S. (PI); Goodman, N. (PI); Guestrin, C. (PI); Guibas, L. (PI); Haber, N. (PI); Hanrahan, P. (PI); Hashimoto, T. (PI); Hayden, P. (PI); Hennessy, J. (PI); Horowitz, M. (PI); Icard, T. (PI); James, D. (PI); Johari, R. (PI); Jurafsky, D. (PI); Katti, S. (PI); Kennedy, M. (PI); Khatib, O. (PI); Kjoelstad, F. (PI); Kochenderfer, M. (PI); Koller, D. (PI); Koyejo, S. (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); Linderman, S. (PI); Liu, K. (PI); Ma, T. (PI); Manning, C. (PI); Mazieres, D. (PI); McClelland, J. (PI); McKeown, N. (PI); Mitchell, J. (PI); Mitra, S. (PI); Montgomery, S. (PI); Musen, M. (PI); Nayak, P. (PI); Ng, A. (PI); Niebles Duque, J. (PI); Okamura, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Parlante, N. (PI); Pavone, M. (PI); Pea, R. (PI); Piech, C. (PI); Plotkin, S. (PI); Plummer, R. (PI); Potts, C. (PI); Prabhakar, B. (PI); Pratt, V. (PI); Raghavan, P. (PI); Raina, P. (PI); Rajaraman, A. (PI); Re, C. (PI); Reingold, O. (PI); Roberts, E. (PI); Rosenblum, M. (PI); Rubin, D. (PI); Rubinstein, A. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Shoham, Y. (PI); Sidford, A. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Ullman, J. (PI); Utterback, C. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI); Winograd, T. (PI); Winstein, K. (PI); Wootters, M. (PI); Wu, J. (PI); Yamins, D. (PI); Yang, D. (PI); Yeung, S. (PI); Young, P. (PI); Zaharia, M. (PI); Zelenski, J. (PI); Zou, J. (PI); Rutherford, E. (GP)
© Stanford University | Terms of Use | Copyright Complaints