Print Settings
 

CS 7: Personal Finance for Engineers

Introduction to the fundamentals and analysis specifically needed by engineers to make informed and intelligent financial decisions. Course will focus on actual industry-based financial information from technology companies and realistic financial issues. Topics include: behavioral finance, budgeting, debt, compensation, stock options, investing and real estate. No prior finance or economics experience required.
Terms: Aut | Units: 1
Instructors: ; Nash, A. (PI)

CS 11SI: How to Make VR: Introduction to Virtual Reality Design and Development

In this hands-on, experiential course, students will design and develop virtual reality applications. You'll learn how to use the Unity game engine, the most popular platform for creating immersive applications. The class will teach the design best practices and the creation pipeline for VR applications. Students will work in groups to present a final project in building an application for the Oculus Quest 2 headset. Enrollment is limited and by application only. See https://cs11si.stanford.edu for more information and the link to the application. Prerequisite: CS 106A or equivalent
Terms: Aut | Units: 2

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 25: Transformers United V4

Since their introduction in 2017, Transformers have taken the world by storm, and are finding applications all over Deep Learning. They have enabled the creation of powerful language models like ChatGPT and Gemini, and are a critical component in other ML applications such as text-to-image and video generation (e.g. DALL-E and Sora). They have significantly elevated the capabilities and impact of Artificial Intelligence. In CS 25, which has become one of Stanford's hottest and most exciting seminars, we examine the details of how Transformers work, and dive deep into the different kinds of Transformers and how they're applied in various fields and applications. We do this through a combination of instructor lectures, guest lectures, and classroom discussions. Potential topics include LLM architectures, creative use cases (e.g. art and music), healthcare/biology and neuroscience applications, robotics and RL (e.g. physical tasks, simulations, or games), and so forth. We invite folks at the forefront of Transformers research for talks, which will also be livestreamed and recorded through YouTube/Zoom. Past speakers have included Andrej Karpathy, Geoffrey Hinton, Jim Fan, Ashish Vaswani, and folks from OpenAI, Google DeepMind, NVIDIA, etc. Our class includes social events and networking sessions and has a popular reception within and outside Stanford, with around 1 million total views on YouTube. This is a 1-unit S/NC course, where attendance is the only homework! Please enroll on Axess or audit by joining the livestream (or in person if seats are available). Prerequisites: basic knowledge of Deep Learning (should understand attention) or CS224N/CS231N/CS230. Course website: https://web.stanford.edu/class/cs25/
Terms: Aut, Spr | Units: 1

CS 44N: Great Ideas in Graphics

A hands-on interactive and fun exploration of great ideas from computer graphics. Motivated by graphics concepts, mathematical foundations and computer algorithms, students will explore an eccentric selection of "great ideas" through short weekly programming projects. Project topics will be selected from a diverse array of computer graphics concepts and historical elements.
Terms: Aut | Units: 3
Instructors: ; James, D. (PI)

CS 80E: Dissecting The Modern Computer

In this course, students will be given a high-level, accessible introduction to computer architecture through the use of the RISC-V ISA. Through a series of interactive units, students will learn about the inner-workings of computers, from the execution of our programs all the way down to the hardware that runs them. Topics include simple digital circuits, assembly, simple processors, memory systems (Cache, DRAM, Disk), and bonus topics like GPU's. After completing this class, students should have a newfound appreciation for how incredible computational technology is, as well as direction to fantastic classes that delve into some of these topics in more detail, like CS149, EE108, and EE180. Prerequisite: CS106B.
Terms: Aut | Units: 2
Instructors: ; Master, T. (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 105: Introduction to Computers

For non-technical majors. What computers are and how they work. Practical experience in development of websites and an introduction to programming. A survey of Internet technology and the basics of computer hardware. Students in technical fields and students looking to acquire programming skills should take 106A or 106X. Students with prior computer science experience at the level of 106 or above require consent of instructor. Prerequisite: minimal math skills.
Terms: Aut, Spr | Units: 3-5 | UG Reqs: GER:DB-EngrAppSci, WAY-FR

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 106AX: Programming Methodologies in JavaScript and Python (Accelerated)

Introduction to the engineering of computer applications emphasizing modern software engineering principles: object-oriented design, decomposition, encapsulation, abstraction, and testing. This course targets an audience with prior programming experience, and that prior experience is leveraged so material can be covered in greater depth.
Terms: Aut | Units: 3-5 | UG Reqs: WAY-FR
Instructors: ; Cain, J. (PI); Gupta, A. (TA)

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 106M: Enrichment Adventures in Programming Abstractions

This enrichment add-on is a companion course to CS106B to explore additional topics and go into further depth. Specific topics to be announced per-quarter; past topics have included search engines, pattern recognition, data compression/encryption, error correction, digital signatures, and numerical recipes. Students must be co-enrolled in CS106B. Refer to cs106m.stanford.edu for more information.
Terms: Aut | Units: 1
Instructors: ; Zelenski, J. (PI)

CS 106S: Coding for Social Good

Survey course on applications of fundamental computer science concepts from CS 106B to problems in the social good space (such as health, trust & safety, government, security, education, and environment). Each week consists of in-class activities designed and delivered by student instructors. Introduces students to JavaScript and the basics of web development. Some of the topics we will cover include mental health chatbots, tumor classification with basic machine learning, sentiment analysis of tweets on refugees, the basics of open source software, and principles of cybersecurity. For more information, visit cs106s.stanford.edu. Pre/Corequisite: CS106B. Cardinal Course certified by the Haas Center for Public Service
Terms: Aut, Spr | Units: 1
Instructors: ; Cain, J. (PI)

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 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 123: A Hands-On Introduction to Building AI-Enabled Robots

This course offers a hands-on introduction to AI-powered robotics. Unlike most introductory robotics courses, students will learn essential robotics concepts by constructing a quadruped robot from scratch and training it to perform real-world tasks. The course covers a broad range of topics critical to robot learning, including motor control, forward and inverse kinematics, system identification, simulation, and reinforcement learning. Through weekly labs, students will construct a pair of tele-operated robot arms with haptic feedback, program a robot arm to learn self-movement, and ultimately create and program an agile robot quadruped named Pupper. In the final four weeks, students will undertake an open-ended project using Pupper as a platform, such as instructing it to walk using reinforcement learning, developing a vision system to allow Pupper to play fetch, or redesigning the hardware to enhance the robot's agility. Note: CS123 strives to achieve a balanced distribution of seniority across the undergrad student body. Within each seniority group, enrollment of students will follow a first-come-first-served approach. Please use the form below to enroll in the class. The form will be open on 9/1/2023 9:00AM Pacific Time. Please use this form to apply: https://docs.google.com/forms/d/e/1FAIpQLSdBSUqLjpD-a-GmwhPnRLMi7L1BMMzikl8yqwmQp-stMoDqIg/viewform
Terms: Aut | Units: 3
Instructors: ; Liu, K. (PI); Levine, G. (TA)

CS 137A: Principles of Robot Autonomy I (AA 174A, EE 160A)

Basic principles for endowing mobile autonomous robots with perception, planning, and decision-making capabilities. Algorithmic approaches for robot perception, localization, and simultaneous localization and mapping; control of non-linear systems, learning-based control, and robot motion planning; introduction to methodologies for reasoning under uncertainty, e.g., (partially observable) Markov decision processes. Extensive use of the Robot Operating System (ROS) for demonstrations and hands-on activities. Prerequisites: CS 106A or equivalent, CME 100 or equivalent (for linear algebra), and CME 106 or equivalent (for probability theory).
Terms: Aut | Units: 3-4

CS 145: Data Management and Data Systems

Introduction to the use, design, and implementation of database and data-intensive systems, including data models; schema design; data storage; query processing, query optimization, and cost estimation; concurrency control, transactions, and failure recovery; distributed and parallel execution; semi-structured databases; and data system support for advanced analytics and machine learning. Prerequisites: 103 and 107 (or equivalent).
Terms: Aut | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci

CS 147: Introduction to Human-Computer Interaction Design

Introduces fundamental methods and principles for designing, implementing, and evaluating user interfaces. Topics: user-centered design, rapid prototyping, experimentation, direct manipulation, cognitive principles, visual design, social software, software tools. Learn by doing: work with a team on a quarter-long design project, supported by lectures, readings, and studios. Prerequisite: 106B or X or equivalent programming experience. Recommended that CS Majors have also taken one of 142, 193P, or 193A.nnPlease note: Less than 5 is only allowed for graduate students.
Terms: Aut | Units: 3-5

CS 147L: Cross-platform Mobile App Development

The fundamentals of cross-platform mobile application development with a focus on the React Native framework (RN). Primary focus on developing best practices in creating apps for both iOS and Android by using Javascript and existing web + mobile development paradigms. Students will explore the unique aspects that made RN a primary tool for mobile development within Facebook, Instagram, Airbnb, Walmart, Tesla, and UberEats. Skills developed over the course will be consolidated by the completion of a final project. Required Prerequisites: CS106B.
Terms: Aut | Units: 3

CS 148: Introduction to Computer Graphics and Imaging

This is the introductory prerequisite course in the computer graphics sequence which introduces students to the technical concepts behind creating synthetic computer generated images. The beginning of the course focuses on using Blender to create visual imagery, as well as an understanding of the underlying mathematical concepts including triangles, normals, interpolation, texture mapping, bump mapping, etc. Then we move on to a more fundamental understanding of light and color, as well as how it impacts computer displays and printers. From this we discuss more thoroughly how light interacts with the environment, and we construct engineering models such as the BRDF and discuss various simplifications into more basic lighting and shading models. Finally, we discuss ray tracing technology for creating virtual images, while drawing parallels between ray tracers and real world cameras in order to illustrate various concepts. Anti-aliasing and acceleration structures are also discussed. The final class project consists of building out a ray tracer to create a visually compelling image. Starter codes and code bits will be provided here and there to aid in development, but this class focuses on what you can do with the code as opposed to what the code itself looks like. Therefore grading is weighted towards in person "demos" of the code in action - creativity and the production of impressive visual imagery are highly encouraged.This is the first course in the computer graphics sequence at Stanford. Topics include: Scanline Rendering; Triangles; Rasterization; Transformations; Shading; Triangle Meshes; Subdivision; Marching Cubes; Textures; Light; Color; Cameras; Displays; Tone Mapping; BRDF; Lighting Equation; Global Illumination; Radiosity; Ray Tracing; Acceleration Structures; Sampling; Antialiasing; Reflection; Transmission; Depth of Field; Motion Blur; Monte Carlo; Bidirectional Ray Tracing; Light Maps.
Terms: Aut | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci, WAY-CE

CS 149: Parallel Computing

This course is an introduction to parallelism and parallel programming. Most new computer architectures are parallel; programming these machines requires knowledge of the basic issues of and techniques for writing parallel software. Topics: varieties of parallelism in current hardware (e.g., fast networks, multicore, accelerators such as GPUs, vector instruction sets), importance of locality, implicit vs. explicit parallelism, shared vs. non-shared memory, synchronization mechanisms (locking, atomicity, transactions, barriers), and parallel programming models (threads, data parallel/streaming, MapReduce, Apache Spark, SPMD, message passing, SIMT, transactions, and nested parallelism). Significant parallel programming assignments will be given as homework. The course is open to students who have completed the introductory CS course sequence through 111.
Terms: Aut | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci

CS 154: Introduction to the Theory of Computation

This course provides a mathematical introduction to the following questions: What is computation? Given a computational model, what problems can we hope to solve in principle with this model? Besides those solvable in principle, what problems can we hope to efficiently solve? In many cases we can give completely rigorous answers; in other cases, these questions have become major open problems in computer science and mathematics. By the end of this course, students will be able to classify computational problems in terms of their computational complexity (Is the problem regular? Not regular? Decidable? Recognizable? Neither? Solvable in P? NP-complete? PSPACE-complete?, etc.). Students will gain a deeper appreciation for some of the fundamental issues in computing that are independent of trends of technology, such as the Church-Turing Thesis and the P versus NP problem. Prerequisites: CS 103 or 103B.
Terms: Aut | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci

CS 157: Computational Logic

Rigorous introduction to Symbolic Logic from a computational perspective. Encoding information in the form of logical sentences. Reasoning with information in this form. Overview of logic technology and its applications - in mathematics, science, engineering, business, law, and so forth. Topics include the syntax and semantics of Propositional Logic, Relational Logic, and Herbrand Logic, validity, contingency, unsatisfiability, logical equivalence, entailment, consistency, natural deduction (Fitch), mathematical induction, resolution, compactness, soundness, completeness.
Terms: Aut | Units: 3 | UG Reqs: GER:DB-EngrAppSci, WAY-FR

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 177: Human Centered Product Management

Ask any product person what the most important skills are for PMs and they'll say interpersonal dynamics-- negotiation, communication, conflict resolution, interviewing and more. This class will look at the role of product management through a human-centered lens, including customers and coworkers. As well, students will experience the Agile-Lean-UX development process. Course enrollment will be capped, an application will be sent out first day of class. Prerequisite: CS106A&B or equivalent. This class could be taken before or after 147.
Terms: Aut | Units: 3-4

CS 185: Coding with LLM Assistants

In under a year, LLM assistants have become a tool that many professional software engineers can¿t imagine living without. In this course, we will explore that phenomenon and design curriculum and pedagogical adaptations to it. In this class, we will: Conduct a survey-based ethnography of how professional software engineers are using LLMs (e.g., do they find it more useful for architectural planning vs code creation vs code explanation vs identifying bugs; what percentage of the day are they using it; how comfortable do they feel using it to work in frameworks or languages they are themselves unfamiliar with, etc); Engage in structured exploration using different LLM coding assistant tools for actual Stanford assignments (in classes they¿ve already completed) and to perform new tasks in unfamiliar languages, and reflect on those experiences; Read what others are saying about the process of coding with LLMs through review of popular sources (e.g., podcasts, blog posts); Learn an overview of the science of teaching and learning, and what is needed for an effective education in software engineering; Design new curricular materials that address the new needs and practices of professional software engineers, using principles of good pedagogical design.
Terms: Aut | Units: 2

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 193Q: Introduction to Python Programming

CS193Q teaches basic Python programming with a similar end-condition to CS106AP: strings, lists, numbers, dicts, loops, logic, functions, testings, decomposition and style, and modules. CS193Q assumes knowledge of some programming language, and proceeds by showing how each common programming idea is expressed in Python. CS193Q moves very quickly, meeting 3 times for 4 hours for a total of 12 hours which is a mixture of lecture and lab time.
Terms: Aut | Units: 1
Instructors: ; Parlante, N. (PI)

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 221: Artificial Intelligence: Principles and Techniques

Artificial intelligence (AI) has had a huge impact in many areas, including medical diagnosis, speech recognition, robotics, web search, advertising, and scheduling. This course focuses on the foundational concepts that drive these applications. In short, AI is the mathematics of making good decisions given incomplete information (hence the need for probability) and limited computation (hence the need for algorithms). Specific topics include search, constraint satisfaction, game playing,n Markov decision processes, graphical models, machine learning, and logic. Prerequisites: CS 103 or CS 103B/X, CS 106B or CS 106X, CS 109, and CS 161 (algorithms, probability, and object-oriented programming in Python). We highly recommend comfort with these concepts before taking the course, as we will be building on them with little review.
Terms: Aut, Spr | Units: 3-4

CS 224V: Conversational Virtual Assistants with Deep Learning

Generative AI, and in particular Large Language Models (LLMs), has already changed how we work and study. But this is just the beginning, as it has the potential of assisting and perhaps eventually automating knowledge workers in all areas, from law, medicine, to teaching and mental health therapists. This course will focus on the general principles and the latest research on methodologies and tools that can be applied to all domains. This is a project-oriented course, where students will gain hands-on experience in either methodology research or applying the concepts to create useful assistants for a domain of their choice. Topics include: (1) growing LLMs' knowledge through a combination of manual supervised learning and self-learning, (2) stopping LLMs from hallucination by grounding them with external corpora of knowledge, which is necessary for handling new, live, private as well as long-tail data, (3) handling external data corpora in different domains including structured and unstructured data, (4) experimentation and evaluation of conversational assistants based on LLMs, (5) controlling LLMs to achieve tasks, (6) persuasive LLMs, (7) multilingual assistants, and (8) combining voice and graphical interfaces. Prerequisites: one of LINGUIST 180/280, CS 124, CS 224N, CS 224S, 224U.
Terms: Aut | Units: 3-4

CS 224W: Machine Learning with Graphs

Many complex data can be represented as a graph of relationships between objects. Such networks are a fundamental tool for modeling complex social, technological, and biological systems. This course focuses on the computational, algorithmic, and modeling challenges specific to the analysis of massive graphs. By means of studying the underlying graph structure and its features, students are introduced to machine learning techniques and data mining tools apt to reveal insights on a variety of networks. Topics include: representation learning and Graph Neural Networks; algorithms for the World Wide Web; reasoning over Knowledge Graphs; influence maximization; disease outbreak detection, social network analysis. Prerequisites: CS109, any introductory course in Machine Learning.
Terms: Aut | 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 229B: Machine Learning for Sequence Modeling (STATS 232)

Sequence data and time series are becoming increasingly ubiquitous in fields as diverse as bioinformatics, neuroscience, health, environmental monitoring, finance, speech recognition/generation, video processing, and natural language processing. Machine learning has become an indispensable tool for analyzing such data; in fact, sequence models lie at the heart of recent progress in AI like GPT3. This class integrates foundational concepts in time series analysis with modern machine learning methods for sequence modeling. Connections and key differences will be highlighted, as well as how grounding modern neural network approaches with traditional interpretations can enable powerful leaps forward. You will learn theoretical fundamentals, but the focus will be on gaining practical, hands-on experience with modern methods through real-world case studies. You will walk away with a broad and deep perspective of sequence modeling and key ways in which such data are not just 1D images.
Terms: Aut | Units: 3-4
Instructors: ; Fox, E. (PI)

CS 229M: Machine Learning Theory (STATS 214)

How do we use mathematical thinking to design better machine learning methods? This course focuses on developing mathematical tools for answering this question. This course will cover fundamental concepts and principled algorithms in machine learning, particularly those that are related to modern large-scale non-linear models. The topics include concentration inequalities, generalization bounds via uniform convergence, non-convex optimization, implicit regularization effect in deep learning, and unsupervised learning and domain adaptations. Prerequisites: linear algebra ( MATH 51 or CS 205), probability theory (STATS 116, MATH 151 or CS 109), and machine learning ( CS 229, STATS 229, or STATS 315A).
Terms: Aut | Units: 3

CS 229S: Systems for Machine Learning

Deep learning and neural networks are being increasingly adopted across industries. They are now used to serve billions of users across applications such as search, knowledge discovery, and productivity assistants. As models become more capable and intelligent, this trend of large-scale adoption will continue to grow rapidly. Due to the widespread application, there is an increasing need to achieve high performance for both training and serving deep-learning models. However, performance is hindered by a multitude of infrastructure and lifecycle hurdles - the increasing complexity of the models, massive sizes of training and inference data, heterogeneity of the available accelerators and multi-node platforms, and diverse network properties. The slow adaptation of systems to new algorithms creates a bottleneck for the rapid evolution of deep-learning models and their applications. This course will cover systems approaches for improving the efficiency of machine learning pipelines - comprising data preparation, model training, and model deployment & inference -at each level of the systems stack spanning software and hardware.
Terms: Aut | Units: 3

CS 236: Deep Generative Models

Generative models are widely used in many subfields of AI and Machine Learning. Recent advances in parameterizing these models using neural networks, combined with progress in stochastic optimization methods, have enabled scalable modeling of complex, high-dimensional data including images, text, and speech. In this course, we will study the probabilistic foundations and learning algorithms for deep generative models, including Variational Autoencoders (VAE), Generative Adversarial Networks (GAN), and flow models. The course will also discuss application areas that have benefitted from deep generative models, including computer vision, speech and natural language processing, and reinforcement learning. Prerequisites: Basic knowledge about machine learning from at least one of CS 221, 228, 229 or 230. Students will work with computational and mathematical models and should have a basic knowledge of probabilities and calculus. Proficiency in some programming language, preferably Python, required.
Terms: Aut | Units: 3

CS 237A: Principles of Robot Autonomy I (AA 274A, EE 260A)

Basic principles for endowing mobile autonomous robots with perception, planning, and decision-making capabilities. Algorithmic approaches for robot perception, localization, and simultaneous localization and mapping; control of non-linear systems, learning-based control, and robot motion planning; introduction to methodologies for reasoning under uncertainty, e.g., (partially observable) Markov decision processes. Extensive use of the Robot Operating System (ROS) for demonstrations and hands-on activities. Prerequisites: CS 106A or equivalent, CME 100 or equivalent (for linear algebra), and CME 106 or equivalent (for probability theory).
Terms: Aut | Units: 3

CS 238: Decision Making under Uncertainty (AA 228)

This course is designed to increase awareness and appreciation for why uncertainty matters, particularly for aerospace applications. Introduces decision making under uncertainty from a computational perspective and provides an overview of the necessary tools for building autonomous and decision-support systems. Following an introduction to probabilistic models and decision theory, the course will cover computational methods for solving decision problems with stochastic dynamics, model uncertainty, and imperfect state information. Topics include: Bayesian networks, influence diagrams, dynamic programming, reinforcement learning, and partially observable Markov decision processes. Applications cover: air traffic control, aviation surveillance systems, autonomous vehicles, and robotic planetary exploration. Prerequisites: basic probability and fluency in a high-level programming language.
Terms: Aut | Units: 3-4

CS 242: Programming Languages

This course explores foundational models of computation, such as the lambda calculus and other small calculi,  and the incorporation of basic advances in PL theory into modern programming languages such as Haskell and Rust.  Topics include type systems (polymorphism, algebraic data types, static vs. dynamic), control flow (exceptions, continuations), concurrency/parallelism, metaprogramming, verification, and the semantic gap between computational models and modern hardware. The study of programming languages is equal parts systems and theory, looking at how a rigorous understanding of the semantics of computation enables formal reasoning about the behavior and properties of complex real-world systems.  Prerequisites: 103, 110.
Terms: Aut | Units: 3-4

CS 247A: Design for Artificial Intelligence (SYMSYS 195A)

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 CS247A is design for human-centered artificial intelligence experiences. What does it mean to design for AI? What is HAI? How do you create responsible, ethical, human centered experiences? Let us explore what AI actually is and the constraints, opportunities and specialized processes necessary to create AI systems that work effectively for the humans involved. 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: Aut | Units: 3-4

CS 248B: Fundamentals of Computer Graphics: Animation and Simulation

This course provides a comprehensive introduction to computer graphics, focusing on fundamental concepts and techniques in Computer Animation and Physics Simulation. Topics include numerical integration, 3D character modeling, keyframe animation, skinning/rigging, inverse kinematics, rigid body dynamics, deformable body simulation, and fluid simulation. Prerequisites: CS107 and MATH51.
Terms: Aut | Units: 3

CS 251: Cryptocurrencies and blockchain technologies

For advanced undergraduates and for graduate students.  The potential applications for Bitcoin-like technologies is enormous.  The course will cover the technical aspects of cryptocurrencies, blockchain technologies, and distributed consensus. Students will learn how these systems work, and how to engineer secure software that interacts with Blockchains like Bitcoin, Ethereum, and others. Prerequisite: CS110. Recommended: CS255.
Terms: Aut | Units: 3

CS 257: Introduction to Automated Reasoning

Automated logical reasoning has enabled substantial progress in many fields, including hardware and software verification, theorem-proving, and artificial in- telligence. Different application scenarios may require different automated rea- soning techniques and sometimes their combination. In this course, we will study widely-used logical theories as well as algorithms for answering whether formu- las in those theories are satisfiable. We will consider state-of-the-art automated reasoning techniques for propositional logic, first-order logic, and various first- order theories, such as linear arithmetic over reals and integers, uninterpreted functions, bit-vectors, and arrays. We will also consider ways to reason about combinations of those theories. Topics include: logical foundations, SAT-solving, techniques for first-order theorem proving, decision procedures for different first- order theories, theory combination, the DPLL(T) framework, and applications of automated reasoning in program analysis and hardware verification. Prerequisites: CS154 Introduction to the Theory of Computation, or CS106b Programming Abstractions and CS103 Mathematical Foundations of Computing, or consent of instructor
Terms: Aut | Units: 3

CS 259Q: Quantum Computing

This course introduces the basics of quantum computing. Topics include: qubits, entanglement, and non-local correlations; quantum gates, circuits, and compilation algorithms; basic quantum algorithms such as Simon's algorithm and Grover's algorithm; Shor's factoring algorithm and the hidden subgroup problem; Hamiltonian simulation; stabilizer circuits, the Gottesman-Knill theorem, and the basics of quantum error correction. Prerequisites: Knowledge of linear algebra & discrete probability, and knowledge of algorithms OR quantum mechanics (or both)
Terms: Aut | Units: 3

CS 261: Optimization and Algorithmic Paradigms

Algorithms for network optimization: max-flow, min-cost flow, matching, assignment, and min-cut problems. Introduction to linear programming. Use of LP duality for design and analysis of algorithms. Approximation algorithms for NP-complete problems such as Steiner Trees, Traveling Salesman, and scheduling problems. Randomized algorithms. Introduction to sub-linear algorithms and decision making under uncertainty. Prerequisite: 161 or equivalent.
Terms: Aut | Units: 3

CS 263: Counting and Sampling

This course will cover various algorithm design techniques for two intimately connected class of problems: sampling from complex probability distributions and counting combinatorial structures. A large part of the course will cover Markov Chain Monte Carlo techniques: coupling, stationary times, canonical paths, Poincare and log-Sobolev inequalities. Other topics include correlation decay in spin systems, variational techniques, holographic algorithms, and polynomial interpolation-based counting. Prerequisites: CS161 or equivalent, STAT116 or equivalent.
Terms: Aut | Units: 3

CS 265: Randomized Algorithms and Probabilistic Analysis (CME 309)

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

CS 274: Representations and Algorithms for Computational Molecular Biology (BIOE 214, BIOMEDIN 214, GENE 214)

BIOMEDIN 214: Representations and Algorithms for Computational Molecular Biology (BIOE 214, CS 274, GENE 214)Topics: This is a graduate level introduction to bioinformatics and computational biology, algorithms for alignment of biological sequences and structures, BLAST, phylogenetic tree construction, hidden Markov models, basic structural computations on proteins, protein structure prediction, molecular dynamics and energy minimization, statistical analysis of 3D structure, knowledge controlled terminologies for molecular function, expression analysis, chemoinformatics, pharmacogenetics, network biology. Lectures are supplemented with assignments and programming projects, which allow students to implement important computational biology algorithms. Firm prerequisite: CS 106B. NOTE: For students in the Department of Biomedical Data Science Program, this core course MUST be taken as a letter grade only.
Terms: Aut | Units: 3-4

CS 279: Computational Biology: Structure and Organization of Biomolecules and Cells (BIOE 279, BIOMEDIN 279, BIOPHYS 279, CME 279)

Computational techniques for investigating and designing the three-dimensional structure and dynamics of biomolecules and cells. These computational methods play an increasingly important role in drug discovery, medicine, bioengineering, and molecular biology. Course topics include protein structure prediction, protein design, drug screening, molecular simulation, cellular-level simulation, image analysis for microscopy, and methods for solving structures from crystallography and electron microscopy data. Prerequisites: elementary programming background (CS 106A or equivalent) and an introductory course in biology or biochemistry.
Terms: Aut | Units: 3

CS 293: Empowering Educators via Language Technology (EDUC 473)

This course explores the use of natural language processing (NLP) to support educators, by discovering, measuring, and analyzing high-leverage teaching practices. Topics include computational social science methods, ethics, bias and fairness, automated scoring, causal analyses, large language models, among others. Engaging with relevant papers, students will work towards a final project using NLP methods and a critical social scientific lens. Projects are pitched to a jury of educators at the end of the course.
Terms: Aut | Units: 2-4

CS 298: Seminar on Teaching Introductory Computer Science (EDUC 298)

Faculty, undergraduates, and graduate students interested in teaching discuss topics raised by teaching computer science at the introductory level. Prerequisite: consent of instructor.
Terms: Aut | Units: 1
Instructors: ; Gregg, C. (PI)

CS 300: Departmental Lecture Series

Priority given to first-year Computer Science Ph.D. students. CS Masters students admitted if space is available. Presentations by members of the department faculty, each describing informally his or her current research interests and views of computer science as a whole.
Terms: Aut | Units: 1

CS 309A: Cloud Computing Seminar

For science, engineering, computer science, business, education, medicine, and law students. Cloud computing is bringing information systems out of the back office and making it core to the entire economy. Furthermore with the advent of smarter machines cloud computing will be integral to building a more precision planet. This class is intended for all students who want to begin to understand the implications of this technology. Guest industry experts are public company CEOs who are either delivering cloud services or using cloud services to transform their businesses.
Terms: Aut | Units: 1 | Repeatable for credit
Instructors: ; Chou, T. (PI)

CS 325B: Data for Sustainable Development (EARTHSYS 162, EARTHSYS 262)

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

CS 326: Topics in Advanced Robotic Manipulation

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

CS 328: Foundations of Causal Machine Learning

Theoretical foundations of modern techniques at the intersection of causal inference and machine learning. Topics may include: semi-parametric inference and semi-parametric efficiency, modern statistical learning theory, Neyman orthogonality and double/debiased machine learning, theoretical foundations of high-dimensional linear regression, theoretical foundations of non-linear regression models, such as random forests and neural networks, adaptive non-parametric estimation of conditional moment models, estimation and inference on heterogeneous treatment effects, causal inference and reinforcement learning, off-policy evaluation, adaptive experimentation and inference.
Terms: Aut | Units: 3 | Repeatable for credit
Instructors: ; Syrgkanis, V. (PI)

CS 329H: Machine Learning from Human Preferences

Machine learning (ML) from human preferences provides mechanisms for capturing human feedback, which is used to design loss functions or rewards that are otherwise difficult to specify quantitatively, e.g., for socio-technical applications such as algorithmic fairness and many language and robotic tasks. While learning from human preferences has emerged as an increasingly important component of modern machine learning, e.g., credited with advancing the state of the art in language modeling and reinforcement learning, existing approaches are largely reinvented independently in each subfield, with limited connections drawn among them. This course will cover the foundations of learning from human preferences from first principles and outline connections to the growing literature on the topic. This includes: Inverse reinforcement learning, which uses human preferences to specify the reinforcement learning reward function; Metric elicitation, which uses human preferences to specify tradeoffs for cost-sensitive classification; Reinforcement learning from human feedback, where human preferences are used to align a pre-trained language model. This is a graduate-level course. By the end of the course, students should be able to understand and implement state-of-the-art learning from human feedback and be ready to conduct research on these topics. Prerequisites: Recommend CS 221 and CS 229
Terms: Aut | Units: 3

CS 329M: Machine Programming

The field of machine programming (MP) is concerned with the automation of software development. Given the recent advances in software algorithms, hardware efficiency and capacity, and an ever increasing availability of code data, it is now possible to train machines to help develop software. In this course, we teach students how to build real-world MP systems. We begin with a high-level overview of the field, including an abbreviated analysis of state-of-the-art (e.g., Merly Mentor). Next, we discuss the foundations of MP and the key areas for innovation, some of which are unique to MP. We close with a discussion of current limitations and future directions of MP. This course includes a nine-week hands-on project, where students (as individuals or in a small group) will create their own MP system and demonstrate it to the class. This course is primary intended for graduate students (it is not recommended for undergraduate students without first reviewing that the course prerequisites are met).
Terms: Aut | Units: 3-4

CS 329R: Race and Natural Language Processing (LINGUIST 281A, PSYCH 257A)

The goal of this practicum is to integrate methods from natural language processing with social psychological perspectives on race to build practical systems that address significant societal issues. Readings will be drawn broadly from across the social sciences and computer science. Students will work with large, complex datasets and participate in research involving community partnerships relevant to race and natural language processing. Prerequisite: CS224N, PSYCH290, or equivalent background in natural language processing. Students interested in participating should complete the online application for permission at https://web.stanford.edu/class/cs329r/. Limited enrollment.
Terms: Aut | Units: 3

CS 329T: Trustworthy Machine Learning

This course will provide an introduction to state-of-the-art ML methods designed to make AI more trustworthy. The course focuses on four concepts: explanations, fairness, privacy, and robustness. We first discuss how to explain and interpret ML model outputs and inner workings. Then, we examine how bias and unfairness can arise in ML models and learn strategies to mitigate this problem. Next, we look at differential privacy and membership inference in the context of models leaking sensitive information when they are not supposed to. Finally, we look at adversarial attacks and methods for imparting robustness against adversarial manipulation.Students will gain understanding of a set of methods and tools for deploying transparent, ethically sound, and robust machine learning solutions. Students will complete labs, homework assignments, and discuss weekly readings. Prerequisites: CS229 or similar introductory Python-based ML class; knowledge of deep learning such as CS230, CS231N; familiarity with ML frameworks in Python (scikit-learn, Keras) assumed.
Terms: Aut | Units: 3

CS 330: Deep Multi-task and Meta Learning

While deep learning has achieved remarkable success in supervised and reinforcement learning problems, such as image classification, speech recognition, and game playing, these models are, to a large degree, specialized for the single task they are trained for. This course will cover the setting where there are multiple tasks to be solved, and study how the structure arising from multiple tasks can be leveraged to learn more efficiently or effectively. This includes: goal-conditioned reinforcement learning techniques that leverage the structure of the provided goal space to learn many tasks significantly faster; meta-learning methods that aim to learn efficient learning algorithms that can learn new tasks quickly; curriculum and lifelong learning, where the problem requires learning a sequence of tasks, leveraging their shared structure to enable knowledge transfer. This is a graduate-level course. By the end of the course, students should be able to understand and implement the state-of-the-art multi-task learning algorithms and be ready to conduct research on these topics. Prerequisites: CS 229 or equivalent. Familiarity with deep learning, reinforcement learning, and machine learning is assumed.
Terms: Aut | Units: 3

CS 337: AI-Assisted Care (MED 277)

AI has been advancing quickly, with its impact everywhere. In healthcare, innovation in AI could help transforming of our healthcare system. This course offers a diverse set of research projects focusing on cutting edge computer vision and machine learning technologies to solve some of healthcare's most important problems. The teaching team and teaching assistants will work closely with students on research projects in this area. Research projects include Care for Senior at Senior Home, Surgical Quality Analysis, AI Assisted Parenting, Burn Analysis & Assessment and more. AI areas include Video Understanding, Image Classification, Object Detection, Segmentation, Action Recognition, Deep Learning, Reinforcement Learning, HCI and more. The course is open to students in both school of medicine and school of engineering.
Terms: Aut | Units: 1-4

CS 349H: Software Techniques for Emerging Hardware Platforms (EE 292Y)

Research seminar on software techniques for emerging computational substrates with guest lectures from hardware designers from research and industry. This seminar explores the benefits of novel hardware technologies, the challenges gating broad adoption of these technologies, and how software techniques can help mitigate these challenges and improve the usability of these hardware platforms. Note that the computational substrates discussed vary depending on the semester. Topics covered include: In-memory computing platforms, dynamical system-solving mixed-signal devices, exible and bendable electronics, neuromorphic computers, intermittent computing platforms, ReRAMs, DNA-based storage, and optical computing platforms. Prerequisites: CS107 or CS107E (required) and EE180 (recommended).
Terms: Aut | Units: 3
Instructors: ; Achour, S. (PI); Park, R. (TA)

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 356: Topics in Computer and Network Security

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

CS 377G: Designing Serious Games

Over the last few years we have seen the rise of "serious games" to promote understanding of complex social and ecological challenges, and to create passion for solving them. This project-based course provides an introduction to game design principals while applying them to games that teach. Run as a hands-on studio class, students will design and prototype games for social change and civic engagement. We will learn the fundamentals of games design via lecture and extensive reading in order to make effective games to explore issues facing society today. The course culminates in an end-of- quarter open house to showcase our games. Prerequisite: CS147 or equivalent. 247G recommended, but not required.
Terms: Aut | Units: 3-4
Instructors: ; Wodtke, C. (PI); Lo, A. (TA)

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 448B: Data Visualization (EDUC 458, SYMSYS 195V)

Techniques and algorithms for creating effective visualizations based on principles from graphic design, visual art, perceptual psychology, and cognitive science. Topics: graphical perception, data and image models, visual encoding, graph and tree layout, color, animation, interaction techniques, automated design. Lectures, reading, and project. There are no official prerequisites for the class, but familiarity with the material in CS147, CS148 and CS142 is especially useful. Most important is a basic working knowledge of, or willingness to learn, web- programming, especially JavaScript, Vega-Lite and D3.js.
Terms: Aut | Units: 3-4 | Repeatable for credit

CS 476A: Music, Computing, Design: The Art of Design (MUSIC 256A)

This course explores the artful design of software tools, toys, games,ninstruments, and experiences. Topics include programming, audiovisualndesign, strategies for crafting interactive systems, game design, asnwell as aesthetic and social considerations of shaping technology in ournworld today. Course work features several programming assignments withnan emphasis on critical design feedback, reading responses, and an"design your own" final project. Prerequisite: experience in C/C++/Javanor Unity/C#.  See https://ccrma.stanford.edu/courses/256a/
Terms: Aut | Units: 3-4
Instructors: ; Wang, G. (PI); Zhu, A. (PI)

CS 498D: Design for Learning: Generative AI for Collaborative Learning (DESIGN 292, EDUC 449)

Would you like to design ways to use generative AI to help humans learn with other humans? In this course, you will develop creative ways to use generative AI to support collaborative learning, also learning more about AI as researchers continue to improve tools like ChatGPT. In creating new learning activities that could be used at Stanford or in other courses, you will build experience with fundamentals of design, including the design abilities of learning from others, navigating ambiguity, synthesizing information, and experimenting rapidly. You will do this by tackling real design challenges presented by our project partners, which include several Stanford programs, while drawing on your own first-hand experience as students. This class is open to all students, undergraduate and graduate, of any discipline. No previous design experience or experience with AI is required. Just a collaborative spirit and hard work.
Terms: Aut | Units: 3

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 522: Seminar in Artificial Intelligence in Healthcare

Artificial intelligence is poised to make radical changes in healthcare, transforming areas such as diagnosis, genomics, surgical robotics, and drug discovery. In the coming years, artificial intelligence has the potential to lower healthcare costs, identify more effective treatments, and facilitate prevention and early detection of diseases. This class is a seminar series featuring prominent researchers, physicians, entrepreneurs, and venture capitalists, all sharing their thoughts on the future of healthcare. We highly encourage students of all backgrounds to enroll (no AI/healthcare background necessary). Speakers and more at https://tinyurl.com/cs522-stanford
Terms: Aut | Units: 1
Instructors: ; Dror, R. (PI); Chan, Z. (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