0% found this document useful (0 votes)
9 views

CSCourses

Stanford University's Explore Courses offers a variety of computer science classes, including topics like personal finance for engineers, virtual reality design, and the social impact of artificial intelligence. Courses emphasize hands-on learning, collaboration, and real-world applications, with prerequisites varying by class. Students can engage in projects that address social issues, develop technical skills, and explore innovative technologies such as generative AI and cloud infrastructure.

Uploaded by

fia.amun
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

CSCourses

Stanford University's Explore Courses offers a variety of computer science classes, including topics like personal finance for engineers, virtual reality design, and the social impact of artificial intelligence. Courses emphasize hands-on learning, collaboration, and real-world applications, with prerequisites varying by class. Students can engage in projects that address social issues, develop technical skills, and explore innovative technologies such as generative AI and cloud infrastructure.

Uploaded by

fia.amun
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

Bulletin
ExploreCourses
About | University Bulletin | Sign in

Results for CS 215 courses

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: Win | Units: 2
Instructors: ; Borenstein, J. (PI)

CS 21SI: AI for Social Good


Students will explore challenging social issues, and learn about the opportunities and limitations for AI to empower human solutions! You'll learn about applying AI
to real-world social good spaces (such as climate, education, and housing) and learn what this looks like in practice. The class provides a high-level overview of the
machine learning and deep learning techniques that have already proven effective in tackling social problems. Overall, we aim to center the "social good"
component of AI for Social Good and cover material you would not otherwise see in the AI curriculum at Stanford. The course structure alternates between
instructional lectures and bi-weekly guest speakers at the forefront of technology for social good. Students will be given the chance to engage in a flexible
combination of AI model building, discussion, and individual exploration. Special topics may include: tech ethics, human-centered AI, AI safety, education
technology, mental health applications, AI in policy, assistive robotics. Prerequisites: programming experience at the level of CS106A and an interest in social
impact! Application required for enrollment: http://tinyurl.com/cs21si2425. We encourage students from all disciplines and backgrounds to apply!
Terms: Spr | Units: 2
Instructors: ; Piech, C. (PI)

CS 22A: The Social & Economic Impact of Artificial Intelligence (INTLPOL 200, SYMSYS 122)
Recent advances in Generative Artificial Intelligence place us at the threshold of a unique turning point in human history. For the first time, we face the prospect
that we are not the only generally intelligent entities, and indeed that we may be less capable than our own creations. As this remarkable new technology
continues to advance, we are likely to entrust management of our environment, economy, security, infrastructure, food production, healthcare, and to a large
degree even our personal activities, to artificially intelligent computer systems. The prospect of "turning over the keys" to increasingly autonomous and
unpredictable machines raises many complex and troubling questions. How will society respond as they displace an ever-expanding spectrum of blue- and white-
collar workers? Will the benefits of this technological revolution be broadly distributed or accrue to a lucky few? How can we ensure that these systems are free of
bias and align with human ethical principles? What role will they play in our system of justice and the practice of law? How will they be used or abused in
democratic societies and autocratic regimes? Will they alter the geopolitical balance of power, and change the nature of warfare? Are we merely a stepping-stone
to a new form of non-biological life, or are we just getting better at building useful gadgets? The goal of this course is to equip students with the intellectual tools,
ethical foundation, and psychological framework to successfully navigate the coming age of superintelligent machines. (Note: This course is pre-approved for credit
at SLS and GSB. GSB students must enroll in either SYMSYS 122 or INTLPOL 200 for GSB credit. No programming or technical knowledge is required.)
Terms: Win | Units: 1
Instructors: ; Kaplan, J. (PI); Ried, S. (TA)

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. Note that this is a hybrid course. Students should plan to enroll by the first day of the quarter and check their Stanford
email account for instructions on how to access the course material. If you have any questions about the course, please email [email protected].
Terms: Win, Spr | Units: 4 | UG Reqs: GER:DB-SocSci, WAY-FR
Instructors: ; Icard, T. (PI); Krejci, B. (PI); Wu, J. (PI)

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

1 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

knowledge of Deep Learning (should understand attention) or CS224N/CS231N/CS230. Course website: https://web.stanford.edu/class/cs25/
Terms: Spr | Units: 1
Instructors: ; Feng, S. (PI); Garg, D. (PI)

CS 31N: Counterfactuals: The Science of What Ifs?


How might the past have changed if different decisions were made? This question has captured the fascination of people for hundreds of years. By precisely asking,
and answering such questions of counterfactual inference, we have the opportunity to both understand the impact of past decisions (has climate change worsened
economic inequality?) and inform future choices (can we use historical electronic medical records data about decision made and outcomes, to create better
protocols to enhance patient health?). In this course I will introduce some of the most common quantitative approaches to counterfactual reasoning, as well as give
a wide sampling of some of the many important problems and questions that can be addressed through the lens of counterfactual reasoning, including in climate
change, healthcare and economics. No prior experience with counterfactual or "what if" reasoning, nor probability, is required.
Terms: Spr | Units: 3
Instructors: ; Brunskill, E. (PI)

CS 40: Cloud Infrastructure and Scalable Application Deployment


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

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 47N: Datathletics: Diving into Data Analytics and Stanford Sports


Sophisticated data collection and analysis are now key to program success across many sports: Nearly all professional and national-level teams employ data
scientists, and "datathletics" is becoming prevalent in college sports as well. This immersive seminar combines extensive hands-on data analytics with a first-hand
peek into Stanford athletics. Class meetings roughly alternate between: (1) instruction in a variety of tools and techniques for analyzing and visualizing data; and
(2) guest lectures by Stanford athletics coaches explaining how data is or could be used in their sport. Through regular problem sets, students bring each week's
tools to bear on data related to the week's sport. One goal of the class is empowering students to perform compelling data analytics by mastering tools across a
wide spectrum, including spreadsheets, the Tableau system for data preparation and visualization, Jupyter notebooks, relational databases and SQL, Python and
many of its data-specific packages including Pandas, and machine learning. On the sports side, while the Stanford coaches may touch on many aspects of data
collection and analysis, the main focus of this course is on using data for strategic decision-making rather than optimizing individual human performance.
Prerequisites: No background in statistics or data analysis is needed, but basic programming and computing skills at the level of high school computer science or
CS106A is expected. On the flip side, students with extensive experience in coding or data science may not be challenged by the technical aspects of the course.
Terms: Spr | Units: 3 | UG Reqs: WAY-AQR
Instructors: ; Widom, J. (PI)

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


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

CS 52: CS + Social Good Studio: Implementing Social Good Projects


Continuation of CS51 (CS + Social Good Studio). Teams enter the quarter having completed and tested a minimal viable product (MVP) with a well-defined target
user, and a community partner. Students will learn to apply scalable technical frameworks, methods to measure social impact, tools for deployment, user
acquisition techniques and growth/exit strategies. The purpose of the class is to facilitate students to build a sustainable infrastructure around their product idea.
CS52 will host mentors, guest speakers and industry experts for various workshops and coaching-sessions. The class culminates in a showcase where students share
their projects with stakeholders and the public. Prerequisite: CS 51, or consent of instructor.
Terms: Spr | Units: 2
Instructors: ; Cain, J. (PI)

CS 53N: How Can Generative AI Help Us Learn?


This seminar course will explore the science behind generative AI, the likely future of tools such as DALL-E, ChatGPT, GPT-4, and Bard, and the implications for
education, both in and outside of structured school environments. Students in the course will work in teams to each become experts in some aspect of AI and in
some way that generative AI could create a new future for education. The background for this course is the public release of ChatGPT, which created new
awareness of the potential power of AI to dramatically change our lives. In considering the possible implications for education, ChatGPT has sparked dreams of
automated personal tutors, customizable teaching assistance, AI-led collaborative learning, and revolutions in assessment. In addition to optimistic projections,
there are clear and significant risks. For example, will AI-assisted learning be culturally appropriate and equally available to all? Can it increase opportunity for

2 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

underprivileged learners worldwide, or will it accentuate privilege and privileged views? Will it help us learn faster, or distract us from thinking deeply about
difficult problems ourselves? As experienced student learners, members of the class will be able to draw on their own educational history and design learning
approaches that could change the future of their education and others in college or at other stages of their lives.
Terms: Spr | Units: 3
Instructors: ; Mitchell, J. (PI)

CS 83N: Playback Theater


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

CS 91SI: Digital Canvas: An Introduction to UI/UX Design


In this course, students learn digital design in a low-stress environment. We will teach the essential concepts of UI/UX design and create actual user interfaces in a
project-based format. By the end of the class, students will have experience in creating handoff-ready interactive high-fidelity mockups for a realistic product
feature. This course covers what makes a good or bad interface, effective design techniques from the ground up, and how to execute on design principles using the
tool Figma. Limited enrollment - admission determined by short application due 11:59 PM on Jan 6: https://forms.gle/LAb2Rx3VJh3BR9is8. No required
prerequisites. Recommended: some prior experience in product design, human-computer interaction, or front-end engineering
Terms: Win | Units: 2
Instructors: ; Landay, J. (PI)

CS 99: Functional Programming and Theorem Proving in Lean 4


Objectives: Historically, mathematics and reasoning has almost always been done in prose: natural language text describing the relevant steps and logic involved.
With the help of Proof Assistants, computers can automatically check mathematical proofs and reasoning. In this course we will give an introduction to Lean 4, a
proof assistant and purely functional programming language. We introduce Lean first as a programming language for the first half of the course. In the latter half of
the course, we explain its proof assistant features. Topics: Abstract data types, monads, error handling, type instances, type theory, specifically the calculus of
inductive constructions (CIC), expression- and tactic-based theorem proving, and various libraries in Mathlib4. Target Audience: Students who want to learn about
formalizing mathematics are the primary audience. The goal of the course is not to learn advanced mathematical concepts since the mathematical part stops at
differential calculus. Students only need a reasonable aptitude in mathematics as a prerequisite. The secondary audience are researchers
Terms: Spr | Units: 1
Instructors: ; Aniva, L. (PI); Mohamed, A. (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: ; Ofosu, A. (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
Instructors: ; Jeong, K. (PI)

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
Instructors: ; Aiken, A. (PI); Bailey, C. (PI); Schwarz, K. (PI); Szumlanski, S. (PI); Aiu, K. (TA); Bosman, L. (TA); Cao, S. (TA); Carrell, T. (TA); Chen, Z. (TA);
Dieulesaint, C. (TA); Guha, N. (TA); Han, R. (TA); Li, K. (TA); Palaparthi, A. (TA); Pandya, D. (TA); Park, E. (TA); Raman, V. (TA); Sun, E. (TA); Xia, I. (TA)

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: ; Khalil, B. (PI); Sierra, E. (PI)

CS 104: Introduction to Essential Software Systems and Tools

3 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

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

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
Instructors: ; Fiden, P. (PI); Young, P. (PI); Bhoj, P. (TA); Chua, C. (TA)

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
Instructors: ; Gregg, C. (PI); Parlante, N. (PI); Sahami, M. (PI); Nguyen, N. (TA)

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); Wang, R. (TA); Yan, B. (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
Instructors: ; Bailey, C. (PI); Gregg, C. (PI); Schwarz, K. (PI); Szumlanski, S. (PI); Coronado, J. (TA)

CS 106E: Exploring Computing


This course, designed for the non-computer scientist, will provide students with a solid foundation in the concepts and terminology behind computers, the Internet,
and software development. It will give you better understanding and insight when working with technology. It will be particularly useful to future managers and PMs
who will work with or who will lead programmers and other tech workers. But it will be useful to anyone who wants a better understanding of tech concepts and
terms. We'll start by covering the foundations of Computer Hardware, the CPU, Operating Systems, Computer Networks, and the Web. We will then use our
foundation to explore a variety of tech-related topics including Computer Security (how computers are attacked and defensive measures that can be taken); Cloud
Computing, Artificial Intelligence, Software Development, Human-Computer Interaction, and Computer Theory.Prerequisites: Some programming experience at the
High School level of above will help students get the most out of the class, but the course can be successfully completed with no prerequisites.
Terms: Spr | Units: 3
Instructors: ; Young, P. (PI)

CS 106EA: Exploring Artificial Intelligence


CS106EA will provide students with an overview of Artificial Intelligence and understanding of key AI concepts. We will examine a typical Machine Learning pipeline.
We'll study different problems that ML is used to solve and common issues that arise (such as overfitting, drift, and bias). Students will learn how neural networks
work and then examine specialized versions of neural networks for processing images, sequence data, and text. We'll explore generative AI systems for text and
images. We'll also study societal issues related to Artificial Intelligence including ethical considerations and the implications of automation. This course will focus on
providing a conceptual understanding of AI. While students will get some hands-on time working with and modifying actual artificial intelligence systems, it is not a
programming class. However, students should have CS106A or comparable experience as we'll be assuming some basic understanding of programming.
Terms: Win | Units: 3
Instructors: ; Young, P. (PI); Bhoj, P. (TA); Linhares-Huang, C. (TA); Sahoo, R. (TA)

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
Instructors: ; Schwarz, K. (PI); Szumlanski, S. (PI); Ibanez, F. (GP); Roberts-Baca, J. (GP)

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

4 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

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, Win, Spr | Units: 1
Instructors: ; Cain, J. (PI); Yan, B. (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. Students may not earn credit for both CS 107 and CS 107E.
Terms: Aut, Win, Spr, Sum | Units: 3-5 | UG Reqs: GER:DB-EngrAppSci, WAY-FR
Instructors: ; Cain, J. (PI); Troccoli, N. (PI); Abdullah, S. (TA); Adekola, O. (TA); Aydin, A. (TA); Barrero-Hernandez, E. (TA); Borbon Miranda, C. (TA); Devalapura, A.
(TA); Eselius, K. (TA); Franciulli, L. (TA); Jitaru, A. (TA); Mistele, A. (TA); Rodriguez Cardenas, J. (TA); Rogers, A. (TA); Vallabhaneni, H. (TA); Yan, B. (TA); Yosef, A.
(TA)

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: ; Alag, S. (PI)

CS 107E: Computer Systems from the Ground Up


Introduction to the fundamental concepts of computer systems through bare metal programming on the Raspberry Pi. Explores how five concepts come together in
computer systems: hardware, architecture, assembly code, the C language, and software development tools. Students do all programming with a Raspberry Pi kit
and several add-ons (LEDs, buttons). Topics covered include: the C programming language, data representation, machine-level code, computer arithmetic,
compilation, memory organization and management, debugging, hardware, and I/O. Enrollment limited to 40. Check website for details: http://
cs107e.stanford.edu on student selection process. Prerequisite: CS106B or CS106X, and consent of instructor. There is a $75 course lab fee. Students may not earn
credit for both CS 107 and CS 107E.
Terms: Aut, Win | Units: 3-5 | UG Reqs: WAY-FR
Instructors: ; Gregg, C. (PI); Zelenski, J. (PI); Oseleononmen, K. (TA); Ruland, B. (TA); Whitney, H. (TA)

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
Instructors: ; Cain, J. (PI); Piech, C. (PI); Bogle, E. (TA); Cochran, K. (TA); Cochran, K. (GP); Cohen, N. (TA); Fayne, L. (TA); Hosgur, E. (TA); Ingino, S. (TA); Kim, T.
(TA); Lee, P. (TA); Mattinger, A. (TA); Michel, I. (TA); Mohammadi, S. (TA); Olson, P. (TA); Tan, J. (TA); Teoh, J. (TA); Williamson, E. (TA); Yun, J. (TA)

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: ; Nguyen, A. (PI); Nguyen, T. (PI)

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 | Units: 3-5
Instructors: ; Troccoli, N. (PI); Bishko, G. (TA); Chauhan, J. (TA); Chen, J. (TA); Dieulesaint, C. (TA); Escandon, E. (TA); Gonzalez, L. (TA); Iyer, N. (TA); Lee, J. (TA);
Liang, A. (TA); Mpala, P. (TA); Obbad, E. (TA); Pandya, P. (TA); Podosin, K. (TA); Recaldini, E. (TA); Seir, G. (TA); Tariq, U. (TA); Tsai, J. (TA); Verma, S. (TA); Xiao, C.
(TA)

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 | Units: 1
Instructors: ; Ayoob, M. (PI)

5 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

CS 112: Operating systems kernel implementation project


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

CS 120: Introduction to AI Safety


What is safe AI, and how do we make it? CS120 explores this question, focusing on the technical challenges of creating reliable, ethical, and aligned AI systems. We
distinguish between model-specific and systemic safety issues, from examining fairness and data limitations to adversarial vulnerabilities and embedding desired
behavior in AI. While primarily focusing on current solutions and their limitations through CS publications, we will also discuss socio-technical concerns of modern AI
deployment, how oversight of intelligence could look like, and what future risks we might face. Topics will span reinforcement learning, computer vision, and
natural language processing, focusing on interpretability, robustness, and evaluations. You will gain insights into the complexities and problems of why ensuring AI
safety and reliability is challenging through lectures, readings, quizzes, and a final project. This course aims to prepare you to critically assess and contribute to
safe AI development, equipping them with knowledge of cutting-edge research and ongoing debates in the field. This course has no official requirements, although
we recommend some knowledge about machine learning and statistics. For more details, see also the course website: https://web.stanford.edu/class/cs120/
Terms: Aut | Units: 3
Instructors: ; Lamparth, M. (PI); Lee, J. (TA); Mensah, A. (TA)

CS 121: Equity and Governance for Artificial Intelligence


This course invites students to argue about the consensus-building processes that shape the development and governance of AI systems. This course requires writing
op-eds, policy memos, and research papers, in which students will critically engage AI policy documents while debating norms of fairness, accountability, and
transparency. Students will also get hands-on practice evaluating generative AI models with interactive red-teaming and automated test suites (requires a small
amount of coding in a group project). Students will engage real-world legislative proposals and case studies topics including human rights, artwork, the
environment, and geopolitics. This course fulfills both the ethics and Writing in the Major WiM requirements, and is designed to prepare Stanford juniors, seniors,
and graduate students to participate in AI public policy design at the national and global levels. Prerequisites: PWR1, PWR2, CS106A and CS106B. While this course
requires no other prerequisites, it is designed for students who are comfortable engaging in an active learning environment that will include interactive workshops,
student debates, and collaborative group projects. Students will be expected to speak frequently in sections and navigate the social dynamics of multi-stakeholder
negotiations. Comfort with writing short python programs and working on a Unix/Linux command-line interface will be helpful for the AI model evaluation group
project.
Terms: Win | Units: 4 | UG Reqs: WAY-ER
Instructors: ; Bailey, C. (PI); Grandhe, S. (TA); Madey, D. (TA); Shim, M. (TA)

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. In addition, the course will expose students
to the latest AI technologies for robotics, such as using computer vision and foundation models techniques to create intelligent embodied agents. Through weekly
labs, students will physically build a robot quadruped named Pupper from scratch and use Pupper to learn the core robotics and AI topics. In the final four weeks,
students will undertake an open-ended project using Pupper as a platform to develop embodied AI techniques, such as navigating in complex environments,
following human verbal commands or gestures, or learning to be a helpful and playful companion. 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 this form, https://
forms.gle/ncbLgjqX58MMT1n38, to enroll in the class. The form will be open on 9/6/2024 9:00AM Pacific Time.
Terms: Aut, Spr | Units: 3
Instructors: ; Liu, K. (PI); Dhawan, A. (TA); Fu, Z. (TA)

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


NLP for extracting meaning from text and social networks on the web, and interacting with people via language. Introducing methods (from regex to large language
models, via logistic regression, gradient descent, transformers and other neural networks, social networks, collaborative filtering), applications (chatbots,
information retrieval, social computing, recommender systems), and ethical and social issues. Prerequisites: CS106B, Python (at the level of CS106A), CS109 (or
equivalent background in probability), and programming maturity and knowledge of UNIX equivalent to CS107 (or taking CS107 or CS1U concurrently).
Terms: Win | Units: 3-4 | UG Reqs: WAY-AQR
Instructors: ; Jurafsky, D. (PI); Aranguiz-Dias, G. (TA); Cai, X. (TA); Chun, A. (TA); Eselius, K. (TA); Guo, D. (TA); Jaladi, S. (TA); Lee, J. (TA); Luo, K. (TA); Magana, G.
(TA); Rangnekar, P. (TA); Recaldini, E. (TA); Shin, J. (TA); Srinivasan, S. (TA); Wang, R. (TA); Zhao, P. (TA)

CS 129: Applied Machine Learning


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

CS 131: Computer Vision: Foundations and Applications


Computer Vision technologies are transforming automotive, healthcare, manufacturing, agriculture and many other sections. Today, household robots can navigate
spaces and perform duties, search engines can index billions of images and videos, algorithms can diagnose medical images for diseases, and smart cars can see and
drive safely. Lying in the heart of these modern AI applications are computer vision technologies that can perceive, understand, and reconstruct the complex visual
world. This course is designed for students who are interested in learning about the fundamental principles and important applications of Computer Vision. This
course will introduce a number of fundamental concepts in image processing and expose students to a number of real-world applications. It will guide students

6 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

through a series of projects to implement cutting-edge algorithms. There will be optional discussion sections on Fridays. Prerequisites: Students should be familiar
with Python, Calculus & Linear Algebra.
Terms: Win | Units: 3-4
Instructors: ; Gaidon, A. (PI); Niebles Duque, J. (PI); Huang, I. (TA); Lopez, A. (TA); Singla, A. (TA); Sridhar, S. (TA)

CS 134: Introduction to AI Governance (STS 14)


As we increasingly integrate AI into our lives, addressing the challenges that arise requires both technical expertise and governance strategies. This course
empowers students to navigate the complex intersection of technology and policy, equipping them with the tools to understand and shape the future of AI
governance. Designed for students from all backgrounds, the course explores AI governance at the organizational, national, and international levels. Through in-
depth analysis of current frameworks and mechanisms, students will assess how governance relies on technical measures and examine their feasibility within today's
technological landscape. More details at https://web.stanford.edu/class/sts14/index.html
Terms: Win | Units: 2
Instructors: ; Lamparth, M. (PI); Reuel, A. (PI); Edwards, P. (SI); Koyejo, S. (SI)

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
Instructors: ; Pavone, M. (PI); Agia, C. (TA); Pabon, L. (TA); Sinha, R. (TA)

CS 139: Human-Centered AI
Artificial Intelligence technology can and must be guided by human concerns. The course examines how mental models and user models of AI systems are formed,
and how that leads to user expectations. This informs a set of design guidelines for building AI systems that are trustworthy, understandable, fair, and beneficial.
The course covers the impact of AI systems on the economy and everyday life, and ethical issues of collecting data and running systems, including respect for
persons, beneficence, fairness and justice.
Terms: Aut | Units: 3
Instructors: ; Norvig, P. (PI); Russell, D. (PI); Greenfield, N. (TA)

CS 140E: Operating systems design and implementation


Students will implement a simple, clean operating system (virtual memory, processes, file system) in the C programming language, on a rasberry pi computer and
use the result to run a variety of devices and implement a final project. All hardware is supplied by the instructor, and no previous experience with operating
systems, raspberry pi, or embedded programming is required.Enrollment is by application: https://forms.gle/1UuHUJsWSRGLSH8BA
Terms: Win | Units: 3-4
Instructors: ; Engler, D. (PI); Sotoudeh, M. (TA); Tan, J. (TA)

CS 143: Compilers
Principles and practices for design and implementation of compilers and interpreters. Topics: lexical analysis; parsing theory; symbol tables; type systems; scope;
semantic analysis; intermediate representations; runtime environments; code generation; and basic program analysis and optimization. Students construct a
compiler for a simple object-oriented language during course programming projects. Prerequisites: 103 or 103B, 107 equivalent, or consent from instructor.
Terms: Spr | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci
Instructors: ; Kjoelstad, F. (PI)

CS 144: Introduction to Computer Networking


Principles and practice. Structure and components of computer networks, with focus on the Internet. Packet switching, layering, and routing. Transport and TCP:
reliable delivery over an unreliable network, flow control, congestion control. Network names, addresses and ethernet switching. Includes significant programming
component in C/C++; students build portions of the internet TCP/IP software. Prerequisite: CS110.
Terms: Win | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci
Instructors: ; Winstein, K. (PI); Do, S. (TA); He, X. (TA); Heer, S. (TA); Kulkarni, T. (TA); Nair, C. (TA); Podosin, K. (TA); Rao, A. (TA); Vallabhaneni, H. (TA); Weiler, J.
(TA)

CS 145: Introduction to Big 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. Prereqs: CS106B or CS106X; CS103. Need to have a basic understanding of RAM, disks,
sorting/hashing algorithms. Soft prereqs: One of CS161 or CS111.
Terms: Aut | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci
Instructors: ; Shivakumar, N. (PI); Ayyagari, R. (TA); Cai, X. (TA); Garg, R. (TA); Hodges, A. (TA); Iyer, N. (TA); Ladia, A. (TA); Rangnekar, P. (TA); Ronaghi, S. (TA); Xia,
I. (TA); Zhao, J. (TA)

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
Instructors: ; Landay, J. (PI); Doby, S. (TA); Genc, D. (TA); Olson, P. (TA); Sapkota, S. (TA); Tran, B. (TA); Waldman, E. (TA); Wong, G. (TA)

7 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

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
Instructors: ; Cheng, A. (PI); Landay, J. (PI); Ahn Paek, S. (TA); Nguyen, C. (TA); Poole, R. (TA); Santiago, F. (TA); Silva, D. (TA)

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, Sum | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci, WAY-CE
Instructors: ; Fedkiw, R. (PI); Dao, M. (TA); Deng, Y. (TA); Fergesen, C. (TA); He, J. (TA); Hu, B. (TA); Kim, H. (TA); Koo, B. (TA); Lee, C. (TA); Li, K. (TA); Liu, M. (TA);
Maffezzoli, M. (TA); Magana, G. (TA); Norman, H. (TA); Omens, D. (TA); Rahman, L. (TA); Sinha, A. (TA); Tang, V. (TA); Vo, N. (TA); Vu, M. (TA); Wang, C. (TA);
Yiorkadjis, P. (TA)

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
Instructors: ; Fatahalian, K. (PI); Olukotun, O. (PI); Desai, V. (TA); Deshpande, O. (TA); Fu, Y. (TA); Granado, M. (TA); Huang, Z. (TA); Li, G. (TA); Mehta, S. (TA); Rao,
A. (TA); Zhao, W. (TA); Zhou, J. (TA)

CS 151: Logic Programming


Logic Programming is a style of programming based on symbolic logic. In writing a logic program, the programmer describes the application area of the program (as
a set of logical sentences) without reference to the internal data structures or operations of the system executing the program. In this regard, a logic program is
more of a specification than an implementation; and logic programs are often called runnable specifications. This course introduces basic logic programming theory,
current technology, and examples of common applications, notably deductive databases, logical spreadsheets, enterprise management, computational law, and
game playing. Work in the course takes the form of readings and exercises, weekly programming assignments, and a term-long project. Prerequisite: CS 106B or
equivalent.
Terms: Spr | Units: 3
Instructors: ; Genesereth, M. (PI)

CS 152: Trust and Safety (COMM 122, INTLPOL 267)


Trust and Safety is an emerging field of professional and academic effort to build technologies that allow people to positively use the internet while being safe from
harm. This course provides an introduction to the ways online services are abused to cause real human harm and the potential social, operational, product, legal
and engineering responses. Students will learn about fraud, account takeovers, the use of social media by terrorists, misinformation, child exploitation,
harassment, bullying and self-harm. This will include studying both the technical and sociological roots of these harms and the ways various online providers have
responded. The class is taught by a practitioner, a professor of communication, a political scientist, and supplemented by guest lecturers from tech companies and
nonprofits. Cross-disciplinary teams of students will spend the quarter building a technical and policy solution to a real trust and safety challenge, which will
include the application of AI technologies to detecting and stopping abuse. For those taking this course for CS credit, the prerequisite is CS106B or equivalent
programming experience and this course fulfills the Technology in Society requirement. Content note: This class will cover real-world harmful behavior and expose
students to potentially upsetting material.
Terms: Spr | Units: 3
Instructors: ; Grossman, S. (PI); Hancock, J. (PI); Stamos, A. (PI)

CS 153: Infrastructure at Scale


This course is designed to help students understand the unique challenges of solving infrastructure problems at scale, and is co-taught by industry practitioners
Michael Abbott (ex-GM, Apple, Twitter, Microsoft) and Anjney Midha (a16z, ex-Discord), who have led teams tackling hardware and software infrastructure for
hundreds of millions of people. The format of the class will include guest lectures from experts in each theme, covering a blend of both theory and real-world
scenarios. Past speakers include the CEOs, CTOs and CISOs of OpenAI, FireEye, Roblox, Cloudflare, Reddit and Google. Prerequisite: CS110/ CS111. Recommended
but not required: CS155.
Terms: Win | Units: 3
Instructors: ; Abbott, M. (PI); Aranguiz-Dias, G. (TA); Cadiz, Z. (TA); Chand, R. (TA); Chen, C. (TA); Mensah, A. (TA); Tieu, T. (TA)

CS 154: Introduction to the Theory of Computation

8 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

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
Instructors: ; Reingold, O. (PI); Mandelshtam, A. (TA); Rivkin, J. (TA); Yang, L. (TA)

CS 155: Computer and Network Security


For juniors, seniors, and first-year graduate students. Principles of computer systems security. Attack techniques and how to defend against them. Topics include:
network attacks and defenses, operating system security, application security (web, apps, databases), malware, privacy, and security for mobile devices. Course
projects focus on building reliable software. Prerequisite: 110. Recommended: basic Unix.
Terms: Spr | Units: 3 | UG Reqs: GER:DB-EngrAppSci
Instructors: ; Boneh, D. (PI); Durumeric, Z. (PI)

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
Instructors: ; Genesereth, M. (PI); Barrero-Hernandez, E. (TA); Jin, E. (TA); Kim, Y. (TA); La, T. (TA); Lee, O. (TA)

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
Instructors: ; Anari, N. (PI); Charikar, M. (PI); Rubinstein, A. (PI); Agarwal, S. (TA); Ayyagari, R. (TA); Burapacheep, J. (TA); Casasola, A. (TA); Chow, W. (TA); D'Souza,
S. (TA); Francis, J. (TA); Gao, R. (TA); Gilbai, K. (TA); Hodges, A. (TA); Isik, S. (TA); Kunnasagaran, A. (TA); Liu, S. (TA); Mao, X. (TA); Owda, M. (TA); Pabbaraju, C.
(TA); Perreault, A. (TA); Polzak, C. (TA); Singh, I. (TA); Wang, A. (TA)

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: ; Villescas, M. (PI)

CS 166: Advanced Data Structures


This course is a deep dive into the design, analysis, implementation, and theory of data structures. Over the course of the quarter, we'll explore fundamental
techniques in data structure design (isometries, amortization, randomization, etc.), as well as perspectives and intuitions useful for developing new data
structures. By the time we've finished, we'll have seen some truly beautiful strategies for solving problems efficiently. Possible topics include Fibonacci heaps,
fusion trees, succinct rank and select, B-trees, range minimum queries, suffix trees, dynamic connectivity, cuckoo hashing, and planar point location. Prerequisites:
CS107 and CS161.
Terms: Spr | Units: 3-4
Instructors: ; Schwarz, K. (PI)

CS 170: Stanford Laptop Orchestra: Composition, Coding, and Performance (MUSIC 128)
Classroom instantiation of the Stanford Laptop Orchestra (SLOrk) which includes public performances. An ensemble of more than 20 humans, laptops, controllers,
and special speaker arrays designed to provide each computer-mediated instrument with its sonic identity and presence. Topics and activities include issues of
composing for laptop orchestras, instrument design, sound synthesis, programming, and live performance. May be repeated four times for credit. Space is limited;
see https://ccrma.stanford.edu/courses/128 for information about the application and enrollment process. May be repeat for credit
Terms: Spr | Units: 1-5 | UG Reqs: WAY-CE | Repeatable 4 times (up to 20 units total)
Instructors: ; Basica, C. (PI); Wright, M. (PI); Betancur, C. (TA)

CS 171: Causality, Decision Making and Data Science (DATASCI 161, ECON 115)
Policymakers often need to make decisions when the implications of those decisions are not known with certainty. In many cases they rely in part on statistical
evidence to guide these decisions. This requires statistical methods for estimating causal effects, that is the impact of these interventions. In this course we study
how to analyze causal questions using statistical methods. We look at several causal questions in detail. For each case, we study various statistical and econometric
methods that may shed light on these questions. We discuss what the critical assumptions are that underly these methods and how to assess whether the methods
are appropriate for the settings at hand. We then analyze data sets, partly in class, and partly in assignments, to see how much we learn in practice. Pre-requisites:
One quarter course in statistics, at the level of STATS 116 or STATS 117. Programming experience with Python will be helpful but is not required. Note: Enrollment is
limited and you need a permission number to enroll in this course. If you are interested, please fill out this form, ideally before September 12: https://forms.gle/
ND9LHBjXjpvShPBi6
Terms: Aut | Units: 3
Instructors: ; Imbens, G. (PI); Wootters, M. (SI); Flores, K. (GP)

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

9 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

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

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
Instructors: ; Wodtke, C. (PI); Hoang, N. (TA); Nguyen, A. (TA); Zhao, P. (TA)

CS 180: Digital Systems Architecture (EE 180)


The design of processor-based digital systems. Instruction sets, addressing modes, data types. Assembly language programming, low-level data structures,
introduction to operating systems and compilers. Processor microarchitecture, microprogramming, pipelining. Memory systems and caches. Input/output,
interrupts, buses and DMA. System design implementation alternatives, software/hardware tradeoffs. Labs involve the design of processor subsystems and
processor-based embedded systems. Formerly EE 108B. Prerequisite: one of CS107 or CS 107E (required) and EE108 (recommended but not required).
Terms: Win | Units: 4 | UG Reqs: GER:DB-EngrAppSci, WAY-SMA
Instructors: ; Tambe, T. (PI); Trippel, C. (PI); Nambi, S. (TA); Tran, K. (TA); Zampa, C. (TA)

CS 182: Ethics, Public Policy, and Technological Change (COMM 180, ETHICSOC 182, PHIL 82, POLISCI 182, PUBLPOL 182)
Examination of recent developments in computing technology and platforms through the lenses of philosophy, public policy, social science, and engineering. Course
is organized around four main units: algorithmic decision-making and bias; data privacy and civil liberties; the power of private computing platforms; and the
impact of generative AI. Each unit considers the promise, perils, rights, and responsibilities at play in technological developments. Prerequisite: CS106A.
Terms: Win | Units: 5 | UG Reqs: WAY-ER
Instructors: ; Ho, D. (PI); Sahami, M. (PI); Avital, M. (TA); Gottlieb, D. (TA); Jia, A. (TA); Jordan, I. (TA); Kamat Tarcar, G. (TA); Karthik, A. (GP); Levent, I. (TA); Park,
H. (TA)

CS 182W: Ethics, Public Policy, and Technological Change (WIM)


Writing-intensive version of CS182. Satisfies the WIM requirement for Computer Science, Engineering Physics, STS, Math/Comp Sci, and Data Science undergraduates
(and is only open to those majors). Prerequisite: CS106A. See CS182 for lecture day/time information for location/time of class. Enroll in either CS 182 or CS 182W,
not both. Enrollment in WIM version of the course is limited to 100 students. Enrollment is restricted to seniors and coterminal students until January 6, 2025.
Starting January 6, 2025, enrollment will open to all students if additional spaces remain available in the class.
Terms: Win | Units: 5 | UG Reqs: WAY-ER
Instructors: ; Ho, D. (PI); Sahami, M. (PI); Karthik, A. (GP)

CS 183E: Effective Leadership in High-Tech


You will undoubtedly leave Stanford with the technical skills to excel in your first few jobs. But non-technical skills are just as critical to making a difference. This
seminar is taught by two industry veterans in engineering leadership and product management. In a small group setting, we will explore how you can be a great
individual contributor (communicating with clarity, getting traction for your ideas, resolving conflict, and delivering your best work) and how you can transition into
leadership roles (finding leadership opportunities, creating a great team culture, hiring and onboarding new team members). We will end by turning back to your
career (picking your first job and negotiating your offer, managing your career changes, building a great network, and succeeding with mentors). Prerequisites:
Preference given to seniors and co-terms in Computer Science and related majors. Enrollment limited and application required for admittance. Application
(https://forms.gle/PaBcMmjratNGGtEi8) due 9/13/24.
Terms: Aut | Units: 1
Instructors: ; Finley, M. (PI); Goldfein, J. (PI)

CS 186: How to Make a Moral Agent (PHIL 86)


Is it bad if you lie to ChatGPT? Who is to blame if ChatGPT lies? Should we let superhuman AI make life and death decisions? These questions ask whether advanced
AI systems (today, often large language models - LLMs) can be moral agents - whether they are the kind of thing that can know how to make (ethically) correct
decisions, and be held responsible for the rights or wrongs they do. Asking these questions leads us to questions about ourselves: What about us makes us moral
agents? Is it our reason? Or is it essential that we emotionally feel each others' pain? Is selfishness irrational, or just unpleasant? Understanding ourselves can help us
think about what kinds of artificial minds we would like to make, and, if we can, how. In this class, we provide the philosophical rigor and technical background
necessary to robustly interrogate these and related questions. Readings will be drawn from philosophy, deep learning, and the cognitive sciences. The major
assessment in this class will be a term project. There will be reading assignments for every class, and a mix of lectures, discussions, and participatory in-class
activities. Recommended prerequisites: PHIL 80 or multiple philosophy courses; CS 183.
Terms: Spr | Units: 3
Instructors: ; Gottlieb, D. (PI); Moore, J. (PI)

CS 191: Senior Project


Restricted to Computer Science students. Individual research projects under faculty direction. Enroll in the section that is led by your research instructor. The
project must consist of publishable research. The research project may result in a paper publishable to an academic journal or presentable at a conference. A
public presentation of 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://www.cs.stanford.edu/bs-requirements-senior-project
Terms: Aut, Win, Spr, Sum | Units: 1-6 | Repeatable for credit
Instructors: ; Achour, S. (PI); Agrawala, M. (PI); Aiken, A. (PI); Altman, R. (PI); Bailey, C. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Bohg, J. (PI); Boneh, D. (PI);
Borenstein, J. (PI); Bouland, A. (PI); Boyd, S. (PI); Cain, J. (PI); Charikar, M. (PI); Dally, B. (PI); Demszky, D. (PI); Dror, R. (PI); Durumeric, Z. (PI); Engler, D. (PI);

10 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Finn, C. (PI); Fogg, B. (PI); Follmer, S. (PI); Fox, E. (PI); Genesereth, M. (PI); Goel, A. (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);
Leskovec, J. (PI); Levis, P. (PI); Levitt, 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); Ng, A. (PI); Niebles Duque, J. (PI); Olukotun, O. (PI); Ousterhout, J. (PI);
Pande, V. (PI); Parlante, N. (PI); Pea, R. (PI); Piech, C. (PI); Poldrack, R. (PI); Potts, C. (PI); Prabhakar, B. (PI); Re, C. (PI); Reingold, O. (PI); Rosenblum, M. (PI);
Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Schwarz, K. (PI); Stamos, A. (PI); Subramonyam, H. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F.
(PI); Trippel, C. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (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); Zelenski, J. (PI); Zou, J. (PI)

CS 191W: Writing Intensive Senior Research Project


Restricted to Computer Science students. Writing-intensive version of CS191. Enroll in the section that is led by your research instructor. 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://www.cs.stanford.edu/bs-
requirements-senior-project
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); Bejerano, G. (PI); Bernstein, M. (PI); Bohg, J. (PI); Boneh, D. (PI);
Borenstein, J. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Charikar, M. (PI); Dally, B. (PI); Demszky, D. (PI); Dror, R. (PI); Durumeric, Z. (PI);
Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Finn, C. (PI); Fogg, B. (PI); Fox, E. (PI); Genesereth, M. (PI); Goel, A. (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); Leskovec, J. (PI); Levis, P. (PI); Levitt, M. (PI); Li, F. (PI); Liang, P. (PI); Linderman, S. (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); Ng, A. (PI); Niebles Duque, J. (PI); Okamura, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Pande, V. (PI); Parlante, N. (PI); Pea, R. (PI); Piech, C. (PI); Potts, C.
(PI); Prabhakar, B. (PI); Re, C. (PI); Reingold, O. (PI); Rosenblum, M. (PI); Saberi, A. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Schwarz,
K. (PI); Stamos, A. (PI); Syrgkanis, V. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI);
Wetzstein, G. (PI); Widom, J. (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);
Zelenski, J. (PI); Zou, J. (PI)

CS 192: Programming Service Project


Restricted to Computer Science students. Appropriate academic credit (without financial support) is given for volunteer computer programming work of public
benefit and educational value. Enroll in the section that is led by your research instructor. Prerequisite: consent of instructor.
Terms: Aut, Win, Spr, Sum | Units: 1-4 | Repeatable for credit
Instructors: ; Achour, S. (PI); Aiken, A. (PI); Altman, R. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Boneh, D. (PI); Bouland, A. (PI); Cain, J. (PI); Dally, B. (PI); Engler,
D. (PI); Fedkiw, R. (PI); Finn, C. (PI); Fogg, B. (PI); Genesereth, M. (PI); Goel, A. (PI); Gregg, C. (PI); Guibas, L. (PI); Hanrahan, P. (PI); Hennessy, J. (PI); Horowitz, M.
(PI); Johari, R. (PI); Jurafsky, D. (PI); Katti, S. (PI); Khatib, O. (PI); Koller, D. (PI); Kozyrakis, C. (PI); Lam, M. (PI); Leskovec, J. (PI); Levis, P. (PI); Levitt, M. (PI); Li,
F. (PI); Manning, C. (PI); McKeown, N. (PI); Mitchell, J. (PI); Musen, M. (PI); Ng, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Parlante, N. (PI); Prabhakar, B. (PI);
Rosenblum, M. (PI); Sahami, M. (PI); Salisbury, J. (PI); Schwarz, K. (PI); Thrun, S. (PI); Tobagi, F. (PI); Van Roy, B. (PI); Widom, J. (PI); Wu, J. (PI); Yeung, S. (PI);
Young, P. (PI); Zelenski, J. (PI)

CS 193C: Client-Side Internet Technologies


Client-side technologies used to create web sites such as Google maps or Gmail. Includes HTML5, CSS, JavaScript, the Document Object Model (DOM), and Ajax.
Prerequisite: programming experience at the level of CS106A.
Terms: Sum | Units: 3
Instructors: ; Young, P. (PI)

CS 193P: iOS Application Development


Build mobile applications using tools and APIs in iOS. Developing applications for the iPhone and iPad requires integration of numerous concepts including functional
programming, object-oriented programming, computer-human interfaces, graphics, animation, reactive interfaces, Model-View-Intent (MVI) and Model-View-View-
Model (MVVM) design paradigms, object-oriented databases, networking, and interactive performance considerations including multi-threading. This course will
require you to learn a new programming language (Swift) as well as the iOS development environment, SwiftUI. Prerequisites: All coursework (homework and final
project) involves writing code, so writing a lot of code should not be new to you (coding experience in almost any language is valuable, but object-oriented (e.g.
CS108) and/or functional programming languages (e.g. CS43) are most highly recommended). CS106A and B (or X) and CS107 (or equivalent) are hard prerequisites.
Any other courses that help to develop your maturity as a programmer are also recommended.
Terms: Spr | Units: 3
Instructors: ; Hegarty, P. (PI)

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 194: Software Project


Design, specification, coding, and testing of a significant team programming project under faculty supervision. Documentation includes capture of project
rationale, design and discussion of key performance indicators, a weekly progress log and a software architecture diagram. Public demonstration of the project at
the end of the quarter. Preference given to seniors. May be repeated for credit. Prerequisites: CS109 and CS161.
Terms: Win, Spr | Units: 3 | Repeatable for credit
Instructors: ; Borenstein, J. (PI); Costello, C. (TA); Fein, D. (TA); Jolly, K. (TA); O'Brien, J. (TA); Ochuba, U. (TA); Qin, A. (TA); Silva, D. (TA)

CS 194W: Software Project (WIM)


Restricted to Computer Science and Electrical Engineering undergraduates. Writing-intensive version of CS194. Preference given to seniors. Prerequisites: CS109 and

11 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

CS161.
Terms: Win, Spr | Units: 3
Instructors: ; Borenstein, J. (PI)

CS 195: Supervised Undergraduate Research


Directed research under faculty supervision. Register using instructor's section number. Students are required to submit a written report and give a public
presentation on their work. Prerequisite: consent of instructor.
Terms: Aut, Win, Spr, Sum | Units: 3-4 | Repeatable 20 times (up to 100 units total)
Instructors: ; Achour, S. (PI); Adeli, E. (PI); Aiken, A. (PI); Altman, R. (PI); Barrett, C. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Bohg, J. (PI); Bouland, A. (PI);
Brunskill, E. (PI); Cain, J. (PI); Charikar, M. (PI); Demszky, D. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Finn, C. (PI);
Follmer, S. (PI); Fox, E. (PI); Genesereth, M. (PI); Goodman, N. (PI); Gregg, C. (PI); Guestrin, C. (PI); Guibas, L. (PI); Haber, N. (PI); Hanrahan, P. (PI); Hashimoto, T.
(PI); Ho, D. (PI); Jurafsky, D. (PI); Khatib, O. (PI); Kjoelstad, F. (PI); Kochenderfer, M. (PI); Koyejo, S. (PI); Kozyrakis, C. (PI); Kundaje, A. (PI); Lam, M. (PI); Landay,
J. (PI); Leskovec, J. (PI); Levis, P. (PI); Li, F. (PI); Liu, K. (PI); Manning, C. (PI); McClelland, J. (PI); Mirhoseini, A. (PI); Mitchell, J. (PI); Ng, A. (PI); Niebles Duque, J.
(PI); Pavone, M. (PI); Piech, C. (PI); Potts, C. (PI); Re, C. (PI); Savarese, S. (PI); Troccoli, N. (PI); Valiant, G. (PI); Vitercik, E. (PI); Wetzstein, G. (PI); Winstein, K.
(PI); Wodtke, C. (PI); Wu, J. (PI); Yamins, D. (PI); Yang, D. (PI); Yeung, S. (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
Instructors: ; Bernstein, M. (PI); Rosen, Y. (PI); Singhal, A. (PI); Rosen, Y. (TA); Singhal, A. (TA)

CS 197C: Computer Science Research: CURIS Internship Onramp


A version of CS 197 designed specifically for students who will be participating in spring/summer CURIS internships OR have an ongoing research project with a
(Ph.D. student or professor) mentor in the Stanford Computer Science department. 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 mentorship and feedback from the
CURIS or research mentor on a real research project. Students will attend the same lectures as CS197 and may enroll for 3 units. Lecture topics include reading
technical papers, practicing oral communication and technical writing skills, and independently formulating research questions. Students must have commitment
from their CURIS or research mentor for weekly check-in meetings. Prerequisite: CS106B.
Terms: Spr | Units: 3
Instructors: ; Rosen, Y. (PI)

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
Instructors: ; Ahmad-Stein, D. (PI); Gonzalez-Maldonado, B. (PI); Gregg, C. (PI); Hicks, M. (PI); Park, E. (PI)

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
Instructors: ; Ahmad-Stein, D. (PI); Gonzalez-Maldonado, B. (PI); Gregg, C. (PI); Hicks, M. (PI); Park, E. (PI)

CS 199: Independent Work


Special study under faculty direction, usually leading to a written report. Enroll in the section that is led by your research instructor. 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); Anari, N. (PI); Bailey, C. (PI); Barrett, C. (PI); Bejerano, G. (PI);
Bernstein, M. (PI); Bohg, J. (PI); Boneh, D. (PI); Borenstein, J. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Chang, M. (PI); Charikar, M. (PI);
Dally, B. (PI); Demszky, D. (PI); Dror, R. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Finn, C. (PI); Fogg, B. (PI); Fox, E.
(PI); Ganguli, S. (PI); Genesereth, M. (PI); Goel, A. (PI); Goodman, N. (PI); Gregg, 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); Leskovec, J. (PI); Levis, P. (PI); Levitt, 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); Ng, A. (PI); Niebles Duque, J. (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); Potts, C. (PI); Prabhakar, B. (PI); Re, C. (PI); Reingold, O. (PI); Rosenblum, M. (PI); Rubinstein, A. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI);
Savarese, S. (PI); Schwarz, K. (PI); Subramonyam, H. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E.
(PI); Widom, J. (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); Zelenski, J. (PI);
Zou, J. (PI)

CS 199P: Independent Work


Special study under faculty direction, usually leading to a written report. Enroll in the section that is led by your research instructor. 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); Bailey, C. (PI); Barrett, C. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Boneh, D. (PI);
Borenstein, J. (PI); Bouland, A. (PI); Brunskill, E. (PI); Cain, J. (PI); Charikar, M. (PI); Dally, B. (PI); Dror, R. (PI); Durumeric, Z. (PI); Engler, D. (PI); Fedkiw, R. (PI);
Finn, C. (PI); Fogg, B. (PI); Fox, E. (PI); Genesereth, M. (PI); Goel, A. (PI); Goodman, N. (PI); Guibas, L. (PI); Hanrahan, P. (PI); Hashimoto, T. (PI); Hennessy, J. (PI);

12 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

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); Leskovec, J. (PI); Levis, P. (PI); Levitt, 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); Ng, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Parlante, N.
(PI); Pavone, M. (PI); Piech, C. (PI); Prabhakar, B. (PI); Re, C. (PI); Reingold, O. (PI); Rosenblum, M. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Schwarz,
K. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Widom, J. (PI); Winstein, K. (PI); Wodtke, C. (PI);
Wootters, M. (PI); Wu, J. (PI); Yamins, D. (PI); Yang, D. (PI); Young, P. (PI); Zelenski, J. (PI); Zou, J. (PI)

CS 202: Law for Computer Science Professionals


Businesses are built on ideas. Today's successful companies are those that most effectively generate, protect, and exploit new and valuable business ideas. Over the
past 40 years, intellectual capital has emerged as the leading assets class. Ocean Tomo® estimates that over 80% of the market value of S&P 500 corporations now
stems from intangible assets, which consist largely of intellectual property (IP) assets (e.g., the company and product names, logos and designs; patentable
inventions; proprietary software and databases, and other proprietary product, manufacturing and marketing information). It is therefore vital for entrepreneurs
and other business professionals to have a basic understanding of IP and how it is procured, protected, and exploited. This course provides an overview of the many
and varied IP issues that students will confront during their careers. It is intended to be both informative and fun. Classes will cover the basics of patent,
trademark, copyright, and trade secret law. Current issues in these areas will be covered, including patent protection for software and business methods,
copyrightability of computer programs and APIs, issues relating to artificial intelligence, and the evolving protection for trademarks and trade secrets. Emerging
issues concerning the federal Computer Fraud & Abuse Act (CFAA) and hacking will be covered, as will employment issues, including employee proprietary
information and invention assignment agreements, work made for hire agreements, confidentiality agreements, non-compete agreements and other potential post-
employment restrictions. Recent notable lawsuits will be discussed, including Apple v. Samsung (patents), Alice Corp. v. CLS Bank (software and business method
patents), Oracle v. Google (software/APIs), Waymo v. Uber (civil and criminal trade secret theft), and hiQ v. LinkedIn (CFAA). IP law evolves constantly and new
headline cases that arise during the term are added to the class discussion. Guest lectures typically include experts on open source software; legal and practical
issues confronted by business founders; and, consulting and testifying as an expert in IP litigation. Although many of the issues discussed will involve technology
disputes, the course also covers IP issues relating to art, music, photography, and literature. Classes are presented in an open discussion format and they are
designed to be enjoyed by students of all backgrounds and areas of expertise.
Terms: Spr | Units: 1
Instructors: ; Hansen, D. (PI)

CS 204: Computational Law


Computational Law is an innovative approach to legal informatics concerned with the representation of regulations in computable form. From a practical
perspective, Computational Law is important as the basis for computer systems capable of performing useful legal calculations, such as compliance checking, legal
planning, and regulatory analysis. In this course, we look at the theory of Computational Law, we review relevant technology and applications, we discuss the
prospects and problems of Computational Law, and we examine its philosophical and legal implications. Work in the course consists of reading, class discussion, and
practical exercises.
Terms: Spr | Units: 2-3
Instructors: ; Genesereth, M. (PI)

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


A survey of numerical approaches to the continuous mathematics used throughout computer science with an emphasis on machine and deep learning. Although
motivated from the standpoint of machine learning, the course will focus on the underlying mathematical methods including computational linear algebra and
optimization, as well as special topics such as automatic differentiation via backward propagation, momentum methods from ordinary differential equations, CNNs,
RNNs, etc. Written homework assignments and (straightforward) quizzes focus on various concepts; additionally, students can opt in to a series of programming
assignments geared towards neural network creation, training, and inference. (Replaces CS205A, and satisfies all similar requirements.) Prerequisites: Math 51;
Math104 or MATH113 or equivalent or comfort with the associated material.
Terms: Win | Units: 3
Instructors: ; Fedkiw, R. (PI); Cai, S. (TA); Dai, A. (TA); Deng, Y. (TA); Doby, S. (TA); Egan, N. (TA); Granado, M. (TA); Hsu, E. (TA); Huang, E. (TA); Kang, M. (TA);
Kuang, Z. (TA); Li, K. (GP); Lyles, N. (TA); Ni, C. (TA); Omens, D. (TA); Polzak, C. (TA); Poole, R. (TA); Sun, S. (TA); Sundaresan, P. (TA); Vu, B. (TA); Worden, K. (TA);
Wu, L. (TA); Xiong, D. (TA); Yang, S. (TA)

CS 206: Exploring Computational Journalism (COMM 281)


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

CS 210A: Software Project Experience with Corporate Partners


Two-quarter project course. Focus is on real-world software development. Corporate partners seed projects with loosely defined challenges from their R&D labs;
students innovate to build their own compelling software solutions. Student teams are treated as start-up companies with a budget and a technical advisory board
comprised of instructional staff and corporate liaisons. Teams will typically travel to the corporate headquarters of their collaborating partner, meaning some teams
will travel internationally. Open loft classroom format such as found in Silicon Valley software companies. Exposure to: current practices in software engineering;
techniques for stimulating innovation; significant development experience with creative freedoms; working in groups; real-world software engineering challenges;
public presentation of technical work; creating written descriptions of technical work. Prerequisites: CS109 and CS161.
Terms: Win | Units: 3-4
Instructors: ; Borenstein, J. (PI); Greenfield, N. (TA); Pondoc, C. (TA)

CS 210B: Software Project Experience with Corporate Partners


Continuation of CS210A. Focus is on real-world software development. Corporate partners seed projects with loosely defined challenges from their R&D labs;
students innovate to build their own compelling software solutions. Student teams are treated as start-up companies with a budget and a technical advisory board
comprised of the instructional staff and corporate liaisons. Teams will typically travel to the corporate headquarters of their collaborating partner, meaning some
teams will travel internationally. Open loft classroom format such as found in Silicon Valley software companies. Exposure to: current practices in software
engineering; techniques for stimulating innovation; significant development experience with creative freedoms; working in groups; real world software engineering
challenges; public presentation of technical work; creating written descriptions of technical work. Prerequisites: CS 210A

13 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

Terms: Spr | Units: 3-4


Instructors: ; Borenstein, J. (PI)

CS 212: Operating Systems and Systems Programming


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

CS 218: Information Integrity


How do we decide what information to trust? How do artificial intelligence and online media support or degrade our decisions? What does society need, beyond
technology, to make good decisions the norm? Society depends on individuals making sound rational decisions on what information to trust. Those decisions depend
on information integrity. The Internet is hardly the first information technology to disrupt society. History documents the mechanics of information integrity through
a repeating pattern of new technology exploited by creators and destroyers of reliable information. After establishing basic context, this course will survey
technologies that have transformed and disrupted society, from the invention of writing, to the book, the printing press, economical newsprint, the telegraph, and
broadcast media on to the Digital Age. Lectures and assignments will explore the harms, real and imagined, of new information technologies. We'll recognize how
society adapted, and practice applying these insights to the management of modern information systems.
Terms: Win | Units: 3
Instructors: ; Chen, J. (PI); Vagadia, R. (TA)

CS 220: Researching, Presenting and Publishing Work in AI & Education (EDUC 481)
"Which conference or journal is the right venue for my AI+education paper? How do I get CS folks to care about my education-focused work? How do I explain AI
methods to a non-technical audience in education?" These are a few of the most common questions we hear from students seeking to navigate the emergent field at
the intersection of AI and education. This seminar provides an interdisciplinary forum for PhD students and advanced masters students from education, computer
science, and related fields to support them with the complexities of conducting and disseminating research across disciplinary boundaries. Through collaborative
discussions, presentations, and peer feedback, students will gain insights into effectively navigating and bridging technical and educational communities' research
and publication norms.
Terms: Spr | Units: 2-4
Instructors: ; Demszky, D. (PI); Piech, C. (PI)

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
Instructors: ; Anari, N. (PI); Charikar, M. (PI); Sadigh, D. (PI); Belkhale, S. (TA); Bhateja, C. (TA); Egan, N. (TA); Fan, C. (TA); Frausto, J. (TA); Gao, J. (TA); Grannen,
J. (TA); Hejna, J. (TA); Kim, J. (TA); Lee, A. (TA); Lin, C. (TA); Mirchandani, S. (TA); O'Brien, J. (TA); Obbad, E. (TA); Salahi, K. (TA); So, J. (TA); Srinivasan, S. (TA);
Varshney, P. (TA); Wang, C. (TA); Yang, S. (TA)

CS 222: AI Agents and Simulations


How might we craft simulations of human societies that reflect our lives? Many of the greatest challenges of our time, from encouraging healthy public discourse to
designing pandemic responses, and building global cooperation for sustainability, must reckon with the complex nature of our world. The power to simulate
hypothetical worlds in which we can ask "what if" counterfactual questions, and paint concrete pictures of how a multiverse of different possibilities might unfold,
promises an opportunity to navigate this complexity. This course presents a tour of multiple decades of effort in social, behavioral, and computational sciences to
simulate individuals and their societies, starting from foundational literature in agent-based modeling to generative agents that leverage the power of the most
advanced generative AI to create high-fidelity simulations. Along the way, students will learn about the opportunities, challenges, and ethical considerations in the
field of human behavioral simulations. Prerequisites: Team projects and some course assignments will involve programming in Python. Having a background in
human-centered design (e.g., CS 147, ME 115A, or a class from the d.school), AI (e.g., CS 221, CS 224), or social psychology may be helpful, although it is not
required.
Terms: Aut | Units: 3
Instructors: ; Park, J. (PI); Vasconcelos, H. (TA); Zou, C. (TA)

CS 223A: Introduction to Robotics (ME 320)


Robotics foundations in modeling, design, planning, and control. Class covers relevant results from geometry, kinematics, statics, dynamics, motion planning, and
control, providing the basic methodologies and tools in robotics research and applications. Concepts and models are illustrated through physical robot platforms,
interactive robot simulations, and video segments relevant to historical research developments or to emerging application areas in the field. Recommended: matrix
algebra.
Terms: Win | Units: 3
Instructors: ; Khatib, O. (PI); Chong, W. (TA); Devmalya, C. (TA); Guo, W. (TA); Kim, B. (TA); Malhotra, R. (TA); Whitmer, E. (TA)

CS 224G: Apps With LLMs Inside


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

14 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

Instructors: ; Jannink, J. (PI); Whaley, J. (PI); Ganesh, R. (TA); Gupta, A. (TA); Mock, A. (TA)

CS 224N: Natural Language Processing with Deep Learning (LINGUIST 284, SYMSYS 195N)
Methods for processing human language information and the underlying computational properties of natural languages. Focus on deep learning approaches:
understanding, implementing, training, debugging, visualizing, and extending neural network models for a variety of language understanding tasks. Exploration of
natural language tasks ranging from simple word level and syntactic processing to coreference, question answering, and machine translation. Examination of
representative papers and systems and completion of a final project applying a complex neural network model to a large-scale NLP problem. Prerequisites: calculus
and linear algebra; CS124, CS221, or CS229.
Terms: Win | Units: 3-4
Instructors: ; Hashimoto, T. (PI); Yang, D. (PI); Akoush, B. (TA); Arora, A. (TA); Bunnapradist, E. (TA); Chang, J. (TA); Cheng, M. (TA); Choi, H. (TA); Deepak, A. (TA);
Ding, Z. (TA); Fu, Y. (TA); Gu, C. (TA); Huang, J. (TA); Jiang, M. (TA); Lee, A. (TA); Shaikh, O. (TA); Shao, Y. (TA); Singh, J. (TA); Tao, J. (TA); Varshney, P. (TA); Wang,
J. (TA); Wei, A. (TA); Wu, F. (TA); Wu, Z. (TA); Xie, L. (TA)

CS 224R: Deep Reinforcement Learning


Humans, animals, and robots faced with the world must make decisions and take actions in the world. Moreover, the decisions they choose affect the world they
exist in - and those outcomes must be taken into account. This course is about algorithms for deep reinforcement learning - methods for learning behavior from
experience, with a focus on practical algorithms that use deep neural networks to learn behavior from high-dimensional observations. Topics will include methods
for learning from demonstrations, both model-based and model-free deep RL methods, methods for learning from offline datasets, and more advanced techniques
for learning multiple tasks such as goal-conditioned RL, meta-RL, and unsupervised skill discovery. These methods will be instantiated with examples from domains
with high-dimensional state and action spaces, such as robotics, visual navigation, and control. This course is complementary to CS234, which neither being a pre-
requisite for the other. In comparison to CS234, this course will have a more applied and deep learning focus and an emphasis on use-cases in robotics and motor
control.
Terms: Spr | Units: 3
Instructors: ; Finn, C. (PI)

CS 224S: Spoken Language Processing (LINGUIST 285)


Introduction to spoken language technology with an emphasis on dialogue and conversational systems. Deep learning and other methods for automatic speech
recognition, speech synthesis, affect detection, dialogue management, and applications to digital assistants and spoken language understanding systems.
Prerequisites: CS124, CS221, CS224N, or CS229.
Terms: Spr | Units: 2-4
Instructors: ; Maas, A. (PI)

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
Instructors: ; Lam, M. (PI); Arnoud, P. (TA); Bunnapradist, E. (TA); Chun, A. (TA); Feng, S. (TA); Joshi, H. (TA); Lee, S. (TA); Teaupa, A. (GP); Zhao, S. (TA)

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
Instructors: ; Leskovec, J. (PI); Aniva, L. (TA); Grover, K. (TA); Hua, H. (TA); Huang, K. (TA); Jin, M. (TA); Kanatsoulis, C. (GP); Khandelwal, P. (TA); Patel, A. (TA);
Singh, J. (TA); Witzel, Z. (TA); Wu, L. (TA); Xu, M. (TA); Zhang, X. (TA)

CS 225A: Experimental Robotics


Hands-on laboratory course experience in robotic manipulation. Topics include robot kinematics, dynamics, control, compliance, sensor-based collision avoidance,
and human-robot interfaces. Second half of class is devoted to final projects using various robotic platforms to build and demonstrate new robot task capabilities.
Previous projects include the development of autonomous robot behaviors of drawing, painting, playing air hocket, yoyo, basketball, ping-pong or xylophone.
Prerequisites: 223A or equivalent.
Terms: Spr | Units: 3
Instructors: ; Khatib, O. (PI)

CS 227A: Robot Perception (EE 227)


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

15 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

Instructors: ; Song, S. (PI); Nie, N. (TA); Patel, A. (TA); Xu, X. (TA)

CS 227B: General Game Playing


A general game playing system accepts a formal description of a game to play it without human intervention or algorithms designed for specific games. Hands-on
introduction to these systems and artificial intelligence techniques such as knowledge representation, reasoning, learning, and rational behavior. Students create
GGP systems to compete with each other and in external competitions. Prerequisite: programming experience. Recommended: 103 or equivalent.
Terms: Spr | Units: 3
Instructors: ; Genesereth, M. (PI)

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
Instructors: ; Charikar, M. (PI); Guestrin, C. (PI); Koyejo, S. (PI); Ng, A. (PI); Schmidt, L. (PI); Bakhtiar, A. (TA); Band, N. (TA); Charles, S. (TA); Chekuri, S. (TA); Chen,
E. (TA); Chen, T. (TA); Chi, R. (TA); Dai, T. (TA); Ding, Z. (TA); Fifty, C. (TA); Frausto, J. (TA); Fu, Z. (TA); Guan, A. (TA); Hamid, J. (TA); Irgau, M. (TA); Khandelwal, P.
(TA); Li, R. (TA); Marx, C. (TA); Narayanan, T. (TA); Nayak, S. (TA); Oh, M. (TA); Patel, A. (TA); Sahoo, R. (TA); So, J. (TA); Wang, Z. (TA); Weng, S. (TA); Wu, Z. (TA);
Zhang, B. (TA); Zhang, P. (TA)

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: MATH 51 and STATS 117 and either CS 229 or STATS 315A. See https://
statistics.stanford.edu/course-equiv for equivalent courses in other departments that satisfy these prerequisites.
Terms: Aut | Units: 3
Instructors: ; Schramm, T. (PI); Nair, Y. (TA); Song, Z. (TA)

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
Instructors: ; Mirhoseini, A. (PI); Agarwal, A. (TA); Fu, D. (TA); Juravsky, J. (TA); Patel, L. (TA)

CS 230: Deep Learning


Deep Learning is one of the most highly sought after skills in AI. We will help you become good at Deep Learning. In this course, you will learn the foundations of
Deep Learning, understand how to build neural networks, and learn how to lead successful machine learning projects. You will learn about Convolutional networks,
RNNs, LSTM, Adam, Dropout, BatchNorm, Xavier/He initialization, and more. You will work on case studies from healthcare, autonomous driving, sign language
reading, music generation, and natural language processing. You will master not only the theory, but also see how it is applied in industry. You will practice all these
ideas in Python and in TensorFlow, which we will teach. AI is transforming multiple industries. After this course, you will likely find creative ways to apply it to your
work. This class is taught in the flipped-classroom format. You will watch videos and complete in-depth programming assignments and online quizzes at home, then
come in to class for advanced discussions and work on projects. This class will culminate in an open-ended final project, which the teaching team will help you on.
Prerequisites: Familiarity with programming in Python and Linear Algebra (matrix / vector multiplications). CS 229 may be taken concurrently.
Terms: Aut | Units: 3-4 | UG Reqs: WAY-AQR, WAY-FR
Instructors: ; Katanforoosh, K. (PI); Ng, A. (PI); Afsharrad, A. (TA); Akoush, B. (TA); Chang, J. (TA); Choi, H. (TA); Ganesh, R. (TA); Jaladi, S. (TA); Lim, J. (TA);
Mousavi, S. (TA); Ni, C. (TA)

CS 231A: Computer Vision: From 3D Perception to 3D Reconstruction and Beyond


(Formerly 223B) An introduction to the concepts and applications in computer vision. Topics include: cameras and projection models, low-level image processing
methods such as filtering and edge detection; mid-level vision topics such as segmentation and clustering; shape reconstruction from stereo, as well as high-level
vision tasks such as object recognition, scene recognition, face detection and human motion categorization. Prerequisites: linear algebra, basic probability and
statistics.
Terms: Spr | Units: 3-4
Instructors: ; Bohg, J. (PI); Savarese, S. (PI)

CS 231N: Deep Learning for Computer Vision


Computer Vision has become ubiquitous in our society, with applications in search, image understanding, apps, mapping, medicine, drones, and self-driving cars.
Core to many of these applications are visual recognition tasks such as image classification and object detection. Recent developments in neural network
approaches have greatly advanced the performance of these state-of-the-art visual recognition systems. This course is a deep dive into details of neural-network
based deep learning methods for computer vision. During this course, students will learn to implement, train and debug their own neural networks and gain a
detailed understanding of cutting-edge research in computer vision. We will cover learning algorithms, neural network architectures, and practical engineering
tricks for training and fine-tuning networks for visual recognition tasks.Prerequisites: Proficiency in Python - All class assignments will be in Python (and use numpy)
(we provide a tutorial here for those who aren't as familiar with Python). If you have a lot of programming experience but in a different language (e.g. C/C++/

16 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

Matlab/Javascript) you will probably be fine.College Calculus, Linear Algebra (e.g. MATH 19, MATH 51) -You should be comfortable taking derivatives and
understanding matrix vector operations and notation. Basic Probability and Statistics (e.g. CS 109 or other stats course) -You should know basics of probabilities,
gaussian distributions, mean, standard deviation, etc.
Terms: Spr | Units: 3-4
Instructors: ; Adeli, E. (PI); Durante, Z. (PI); Li, F. (PI)

CS 232: Digital Image Processing (EE 368)


Image sampling and quantization color, point operations, segmentation, morphological image processing, linear image filtering and correlation, image transforms,
eigenimages, multiresolution image processing, noise reduction and restoration, feature extraction and recognition tasks, image registration. Emphasis is on the
general principles of image processing. Students learn to apply material by implementing and investigating image processing algorithms in Matlab and optionally on
Android mobile devices. Term project. Recommended: EE261, EE278.
Terms: Win | Units: 3
Instructors: ; Stork, D. (PI); Prem, R. (TA)

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


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

CS 234: Reinforcement Learning


To realize the dreams and impact of AI requires autonomous systems that learn to make good decisions. Reinforcement learning is one powerful paradigm for doing
so, and it is relevant to an enormous range of tasks, including robotics, game playing, consumer modeling and healthcare. This class will briefly cover background
on Markov decision processes and reinforcement learning, before focusing on some of the central problems, including scaling up to large domains and the
exploration challenge. One key tool for tackling complex RL domains is deep learning and this class will include at least one homework on deep reinforcement
learning. Prerequisites: proficiency in python, CS 229 or equivalents or permission of the instructor; linear algebra, basic probability.
Terms: Win | Units: 3
Instructors: ; Brunskill, E. (PI); Bhateja, C. (TA); Hu, H. (TA); Li, R. (TA); Mandyam, A. (TA); Nam, A. (TA); Werling, K. (TA); Zhao, S. (TA)

CS 235: Computational Methods for Biomedical Image Analysis and Interpretation (BIOMEDIN 260, BMP 260, RAD 260)
The latest biological and medical imaging modalities and their applications in research and medicine. Focus is on computational analytic and interpretive
approaches to optimize extraction and use of biological and clinical imaging data for diagnostic and therapeutic translational medical applications. Topics include
major image databases, fundamental methods in image processing and quantitative extraction of image features, structured recording of image information
including semantic features and ontologies, indexing, search and content-based image retrieval. Case studies include linking image data to genomic, phenotypic and
clinical data, developing representations of image phenotypes for use in medical decision support and research applications and the role that biomedical imaging
informatics plays in new questions in biomedical science. Includes a project. Enrollment for 3 units requires instructor consent. Prerequisites: programming ability
at the level of CS 106A, familiarity with statistics, basic biology. Knowledge of Matlab or Python highly recommended.
Terms: Spr | Units: 3-4
Instructors: ; Rusu, M. (PI); Lozano Garcia, E. (TA); Simon, E. (TA); Viggiano, B. (TA)

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


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
Instructors: ; Bohg, J. (PI); Schwager, M. (PI); Chen, Q. (TA); Chigullapalli, A. (TA); Dutt, A. (TA); Lunawat, I. (TA); Manhas, A. (TA); Riordan, K. (TA); Yang, B. (TA)

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


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

CS 238: Decision Making under Uncertainty (AA 228)


This course is designed to increase awareness and appreciation for why uncertainty matters, particularly for aerospace applications. Introduces decision making
under uncertainty from a computational perspective and provides an overview of the necessary tools for building autonomous and 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

17 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

Instructors: ; Kochenderfer, M. (PI); Asmar, D. (TA); Chaubard, F. (TA); Delecki, H. (TA); Edmonds, A. (TA); Hardy, A. (TA); Ho, M. (TA); Kruse, L. (TA); Tadeparti, S.
(TA); Tzikas, A. (TA); Yildiz, A. (TA)

CS 238V: Validation of Safety Critical Systems (AA 228V)


Before deploying autonomous decision-making systems in high-stakes applications, it is important to ensure that they will operate as intended. This course presents
a variety of mathematical concepts and algorithms that can be used to validate their performance in simulation. The course first introduces a framework for setting
up validation problems using topics from model fitting, model validation, and property specification. The course then covers sampling-based validation techniques
for tasks such as falsification and probability of failure estimation. The course concludes with an overview of formal methods for tasks such as reachability analysis.
Topics include but are not limited to: mathematical modeling, temporal logic specifications, optimization-based falsification, Markov chain Monte Carlo, importance
sampling, reachability analysis, model checking, satisfiability, and explainability. Applications are drawn from air traffic control, autonomous systems, and self-
driving cars. Prerequisites: basic probability theory, multivariable calculus, and fluency in a high-level programming language
Terms: Win | Units: 3-4
Instructors: ; Katz, S. (PI); Kochenderfer, M. (PI); Chaubard, F. (TA); Delecki, H. (TA); Tadeparti, S. (TA)

CS 240: Advanced Topics in Operating Systems


Recent research. Classic and new papers. Topics: virtual memory management, synchronization and communication, file systems, protection and security, operating
system extension techniques, fault tolerance, and the history and experience of systems programming. Prerequisite: 140 or equivalent.
Terms: Aut | Units: 3 | Repeatable for credit
Instructors: ; Engler, D. (PI); Srivatsan, A. (TA); Weiler, J. (TA)

CS 240LX: Advanced Systems Laboratory, Accelerated


This is an implementation-heavy, lab-based class that covers similar topics as CS240, but by writing code versus discussing papers. Our code will run "bare-metal"
(without an operating system) on the widely-used ARM-based raspberry pi. Bare-metal lets us do interesting tricks without constantly fighting a lumbering, general-
purpose OS that cannot get out of its own way. We will do ten projects, one per week, where each project covers two labs of (at a minimum) several hours each
and a non-trivial amount of outside work. The workload is significant, but I will aim to not waste your time. Prerequisite: CS140E or instructor permission.
Terms: Spr | Units: 3
Instructors: ; Engler, D. (PI)

CS 241: Embedded Systems Workshop (EE 285)


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

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
Instructors: ; Aiken, A. (PI); Driscoll, B. (TA); Unger, C. (TA)

CS 243: Program Analysis and Optimizations


Program analysis techniques used in compilers and software development tools to improve productivity, reliability, and security. The methodology of applying
mathematical abstractions such as graphs, fixpoint computations, binary decision diagrams in writing complex software, using compilers as an example. Topics
include data flow analysis, instruction scheduling, register allocation, parallelism, data locality, interprocedural analysis, and garbage collection. Prerequisites: 103
or 103B, and 107.
Terms: Win | Units: 3-4
Instructors: ; Lam, M. (PI); Chen, R. (TA); Desai, V. (TA)

CS 244: Advanced Topics in Networking


Classic papers, new ideas, and research papers in networking. Architectural principles: why the Internet was designed this way? Congestion control. Wireless and
mobility; software-defined networks (SDN) and network virtualization; content distribution networks; packet switching; data-center networks. Prerequisite: 144 or
equivalent.
Terms: Spr | Units: 3-4
Instructors: ; Levis, P. (PI)

CS 246: Mining Massive Data Sets


The availability of massive datasets is revolutionizing science and industry. This course discusses data mining and machine learning algorithms for analyzing very
large amounts of data. Topics include: Big data systems (Hadoop, Spark); Link Analysis (PageRank, spam detection); Similarity search (locality-sensitive hashing,
shingling, min-hashing); Stream data processing; Recommender Systems; Analysis of social-network graphs; Association rules; Dimensionality reduction (UV, SVD,
and CUR decompositions); Algorithms for large-scale mining (clustering, nearest-neighbor search); Large-scale machine learning (decision tree ensembles); Multi-
armed bandit; Computational advertising. Prerequisites: At least one of CS107 or CS145.
Terms: Win | Units: 3-4 | UG Reqs: WAY-FR
Instructors: ; Leskovec, J. (PI); Bansal, S. (TA); Grover, K. (TA); Hosgur, E. (TA); Huang, Z. (TA); Jin, M. (TA); Li, F. (TA); Tsai, J. (TA); Xie, Z. (TA); Zhu, M. (TA)

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

18 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

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
Instructors: ; Stanford, J. (PI); Madey, D. (TA); Yang, K. (TA)

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


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

CS 247E: Design for Earth


In this course you will learn the HCI skills needed to work on the intersection between science, ecology, CS and information visualization ¿ an area rich with critical
design opportunities. There are many directions that design work in this space can take - from interfaces for controlling robots that do sample collection in the
deep sea to enabling ecologists to make decisions based on giant molecular and geospatial data sets to an AR interface for visualizing restored ecosystems, to name
a few. In this project-based hands-on course, we will build on the introduction to design in CS147 by focusing on advanced methods and tools for research,
prototyping, and user interface design in areas that relate to ecology, biodiversity and sustainability. Students will work on real world design problems, interview
users and prototype designs as a response to the challenges presented. We will also examine the ethical consequences of design decisions and explore issues arising
from unintended consequences. This course takes place entirely in studios with intensive coaching; YOU MUST PLAN ON ATTENDING EVERY STUDIO to take this class.
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: Spr | Units: 3-4
Instructors: ; Stanford, J. (PI)

CS 247G: Design for Play (SYMSYS 195G)


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; please plan on attending every studio to take this class. The focus of CS247g is an introduction to theory and practice of game design. We will make digital
and paper games, do rapid iteration and run user research studies appropriate to game design. This class has multiple short projects, allowing us to cover a variety
of genres, from narrative to pure strategy. Prerequisites: 147 or equivalent background.
Terms: Spr | Units: 3-4
Instructors: ; Wodtke, C. (PI)

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


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

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
Instructors: ; James, D. (PI); Liu, K. (PI); Li, H. (TA); Li, J. (TA); Wu, Z. (TA); Zhang, E. (TA)

CS 249I: The Modern Internet


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

CS 250: Algebraic Error Correcting Codes (EE 387)


Introduction to the theory of error correcting codes, emphasizing algebraic constructions, and diverse applications throughout computer science and engineering.
Topics include basic bounds on error correcting codes; Reed-Solomon and Reed-Muller codes; list-decoding, list-recovery and locality. Applications may include
communication, storage, complexity theory, pseudorandomness, cryptography, streaming algorithms, group testing, and compressed sensing. Prerequisites: Linear
algebra, basic probability (at the level of, say, CS109, CME106 or EE178) and "mathematical maturity" (students will be asked to write proofs). Familiarity with finite
fields will be helpful but not required.
Terms: Win | Units: 3

19 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

Instructors: ; Wootters, M. (PI); Blackwell, K. (TA)

CS 254: Computational Complexity


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

CS 254B: Computational Complexity II


A continuation of CS254 (Computational Complexity). Topics include Barriers to P versus NP; The relationship between time and space, and time-space tradeoffs for
SAT; The hardness versus randomness paradigm; Average-case complexity; Fine-grained complexity; Current and new areas of complexity theory research.
Prerequisite: CS254.
Terms: Spr | Units: 3
Instructors: ; Tan, L. (PI)

CS 255: Introduction to Cryptography


For advanced undergraduates and graduate students. Theory and practice of cryptographic techniques used in computer security. Topics: encryption (symmetric and
public key), digital signatures, data integrity, authentication, key management, PKI, zero-knowledge protocols, and real-world applications. Prerequisite: basic
probability theory.
Terms: Win | Units: 3
Instructors: ; Boneh, D. (PI); Argyropoulos, A. (TA); Glenn, A. (TA); Lorch, O. (TA); Narayanan, T. (TA); Srivastava, M. (TA)

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
Instructors: ; Bouland, A. (PI); Docter, J. (TA); Li, H. (TA); Yeh, J. (TA)

CS 261: Combinatorial Optimization (CME 310, MS&E 315)


Algorithms, algorithmic paradigms, and algorithmic tools for provably solving combinatorial optimization problems. Emphasis on graph optimization and discussion
of approaches based on linear programming and continuous optimization. Potential optimization problems include both polynomial time solve-able problems, e.g.,
maximum flow, minimum cost flow, matching, assignment, minimum cut, matroid optimization, submodular function minimization, and NP-hard problems, e.g.,
Steiner trees, traveling salesperson, maximum cut. Potential paradigms and tools include: linear programming, multiplicative weight update method, algebraic
methods, and spectral methods. Prerequisite: 161 or equivalent.
Terms: Win | Units: 3
Instructors: ; Sidford, A. (PI); Maltsev, A. (TA); Tu, T. (TA)

CS 264: Beyond Worst-Case Analysis (MS&E 215)


This course is motivated by problems for which the traditional worst-case analysis of algorithms fails to differentiate meaningfully between different solutions, or
recommends an intuitively "wrong" solution over the "right" one. This course studies systematically alternatives to traditional worst-case analysis that nevertheless
enable rigorous and robust guarantees on the performance of an algorithm. Topics include: instance optimality; smoothed analysis; parameterized analysis and
condition numbers; models of data (pseudorandomness, locality, diffuse adversaries, etc.); average-case analysis; robust distributional analysis; resource
augmentation; planted and semi-random graph models. Motivating problems will be drawn from online algorithms, online learning, constraint satisfaction problems,
graph partitioning, scheduling, linear programming, hashing, machine learning, and auction theory. Prerequisites: CS161 (required). CS261 is recommended but not
required.
Terms: Spr | Units: 3
Instructors: ; Vitercik, E. (PI)

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: Win | Units: 3
Instructors: ; Wootters, M. (PI); George, N. (TA); Rivkin, J. (TA); Yang, L. (TA)

20 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

CS 269I: Incentives in Computer Science (MS&E 206)


Many 21st-century computer science applications require the design of software or systems that interact with multiple self-interested participants. This course will
provide students with the vocabulary and modeling tools to reason about such design problems. Emphasis will be on understanding basic economic and game
theoretic concepts that are relevant across many application domains, and on case studies that demonstrate how to apply these concepts to real-world design
problems. Topics include auction and contest design, equilibrium analysis, cryptocurrencies, design of networks and network protocols, reputation systems, social
choice, and social network analysis. Case studies include BGP routing, Bitcoin, eBay's reputation system, Facebook's advertising mechanism, Mechanical Turk, and
dynamic pricing in Uber/Lyft. Prerequisites: CS106B/X and CS161, or permission from the instructor.
Terms: Spr | Units: 3
Instructors: ; Rubinstein, A. (PI)

CS 270: Modeling Biomedical Systems (BIOMEDIN 210)


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

CS 272: Introduction to Biomedical Informatics Research Methodology (BIOE 212, BIOMEDIN 212, GENE 212)
Capstone Biomedical Data Science experience. Hands-on software building. Student teams conceive, design, specify, implement, evaluate, and report on a software
project in the domain of biomedicine. Creating written proposals, peer review, providing status reports, and preparing final reports. Issues related to research
reproducibility. Guest lectures from professional biomedical informatics systems builders on issues related to the process of project management. Software
engineering basics. Because the team projects start in the first week of class, attendance that week is strongly recommended. Prerequisites: BIOMEDIN 210 or 214
or 215 or 217 or 260. Preference to BMI graduate students. Consent of instructor required.NOTE: For students in the Department of Biomedical Data Science
Program, this core course MUST be taken as a letter grade only.
Terms: Spr | Units: 3-5
Instructors: ; Altman, R. (PI); Pi, S. (TA)

CS 273C: Cloud Computing for Biology and Healthcare (BIOMEDIN 222, GENE 222)
Big Data is radically transforming healthcare. To provide real-time personalized healthcare, we need hardware and software solutions that can efficiently store and
process large-scale biomedical datasets. In this class, students will learn the concepts of cloud computing and parallel systems' architecture. This class prepares
students to understand how to design parallel programs for computationally intensive medical applications and how to run these applications on computing
frameworks such as Cloud Computing and High Performance Computing (HPC) systems. Prerequisites: familiarity with programming in Python and R.
Terms: Spr | Units: 3
Instructors: ; Bahmani, A. (PI); Kundaje, A. (PI); Snyder, M. (PI)

CS 274: Representations and Algorithms for Computational Molecular Biology (BIOE 214, BIOMEDIN 214, GENE 214)
Topics: This is a graduate level introduction to bioinformatics and computational biology, algorithms for alignment of biological sequences and structures,
computing with strings, phylogenetic tree construction, hidden Markov models, basic structural computations on proteins, protein structure prediction, molecular
dynamics and energy minimization, statistical analysis of 3D biological data, integration of data sources, knowledge representation and controlled terminologies for
molecular biology, microarray analysis, chemoinformatics, pharmacogenetics, network biology. Note: For Fall 2021, Dr. Altman will be away on sabbatical and so
class will be taught from lecture videos recorded in fall of 2018. The class will be entirely online, with no scheduled meeting times. Lectures will be released in
batches to encourage pacing. A team of TAs will manage all class logistics and grading. Firm prerequisite: CS 106B.
Terms: Aut | Units: 3-4
Instructors: ; Altman, R. (PI); Koodli, R. (TA); McCann, H. (TA); Silberg, J. (TA); Xiong, B. (TA)

CS 275: Translational Bioinformatics (BIOE 217, BIOMEDIN 217, GENE 217)


Analytic and interpretive methods to optimize the transformation of genetic, genomic, and biological data into diagnostics and therapeutics for medicine. Topics:
access and utility of publicly available data sources; types of genome-scale measurements in molecular biology and genomic medicine; linking genome-scale data to
clinical data and phenotypes; and new questions in biomedicine using bioinformatics. Case studies. Prerequisites: programming ability at the level of CS 106A and
familiarity with statistics and biology.
Terms: Spr | Units: 3-4
Instructors: ; Plevritis, S. (PI); Chang, J. (TA); Lewis, A. (TA); Schuessler, M. (TA)

CS 275A: Symbolic Musical Information (MUSIC 253)


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

CS 275B: Computational Music Analysis (MUSIC 254)


Leveraging off three synchronized sets of symbolic data resources for notation and analysis, the lab portion introduces students to the open-source Humdrum Toolkit
for music representation and analysis. Issues of data content and quality as well as methods of information retrieval, visualization, and summarization are
considered in class. Grading based primarily on student projects. Prerequisite: 253 or consent of instructor.
Terms: Spr | Units: 2-4
Instructors: ; Rodin, J. (PI); Sapp, C. (PI)

CS 278: Social Computing (SOC 174, SOC 274)


Today we interact with our friends and enemies, our team partners and romantic partners, and our organizations and societies, all through computational systems.
How do we design these social computing systems - platforms for social media, online communities, and collaboration - to be effective and responsible? This course

21 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

covers design patterns for social computing systems and the foundational ideas that underpin them.
Terms: Spr | Units: 3-4
Instructors: ; Bernstein, M. (PI)

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
Instructors: ; Dror, R. (PI); Bresette, L. (GP); Chen, C. (TA); Glenn, A. (TA); Im, C. (TA); Karelina, M. (TA); Lessard, S. (GP); Park, H. (TA); Singh, I. (TA); Sobecks, B.
(TA)

CS 281: Ethics of Artificial Intelligence


Machine learning has become an indispensable tool for creating intelligent applications, accelerating scientific discoveries, and making better data-driven decisions.
Yet, the automation and scaling of such tasks can have troubling negative societal impacts. Through practical case studies, you will identify issues of fairness,
justice and truth in AI applications. You will then apply recent techniques to detect and mitigate such algorithmic biases, along with methods to provide more
transparency and explainability to state-of-the-art ML models. Finally, you will derive fundamental formal results on the limits of such techniques, along with
tradeoffs that must be made for their practical application. CS229 or equivalent classes or experience.
Terms: Spr | Units: 3-4
Instructors: ; Guestrin, C. (PI)

CS 282: Computer Systems Architecture (EE 282)


Course focuses on how to build modern computing systems, namely notebooks, smartphones, and data centers, covering primarily their hardware architecture and
certain system software aspects. For each system class, we cover the system architecture, processor technology, advanced memory hierarchy and I/O organization,
power and energy management, and reliability. We will also cover topics such as interactions with system software, virtualization, solid state storage, and security.
The programming assignments allow students to explore performance/energy tradeoffs when using heterogeneous hardware resources on smartphone devices.
Prerequisite: EE180. Recommended: CS 140.
Terms: Spr | Units: 3
Instructors: ; Trippel, C. (PI); Nambi, S. (TA)

CS 286: Advanced Topics in Computer Vision and Biomedicine (BIODS 276)


This course in artificial intelligence will provide a deep dive into advanced computer vision techniques for reasoning about visual data, and their real-world use in
biomedicine. We will cover current cutting-edge models including different families of vision foundation models from representation learners to diffusion and
generative models, and both vision-only and vision-language models. We will also cover considerations for real-world use, including model size and computation,
training and inference settings, and training data, focusing on applications in biomedicine. Students will be actively engaged in studying and analyzing recent
advancements through written analyses, class discussions, and a final project. This course is considered an advanced course and students should be comfortable
with deep learning and computer vision at the level of CS231N or BIODS220.
Terms: Aut | Units: 3
Instructors: ; Yeung, S. (PI); Wang, X. (SI); Burgess, J. (TA)

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: Win | Units: 2-4
Instructors: ; Demszky, D. (PI); Tan, M. (TA)

CS 295: Software Engineering


Software specification, testing and verification. The emphasis is on automated tools for developing reliable software. The course covers material---drawn primarily
from recent research papers---on the technologyunderlying these tools. Assignments supplement the lectures with hands-on experience in using these tools and
customizing them for solving new problems. The course is appropriate for students intending to pursue research in program analysis and verification, as well as for
those who wish to add the use of advanced software tools to their skill set. Prerequisites: 108. Recommended: a project course such as 140, 143 or 145.
Terms: Win | Units: 3
Instructors: ; Achour, S. (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
Instructors: ; Reingold, O. (PI); Madrigal, H. (GP)

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

22 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

Instructors: ; Chou, T. (PI)

CS 323: The AI Awakening: Implications for the Economy and Society


This course examines how advances in AI are transforming the economy and society. Each week features guest speakers who are leaders in AI, economics,
government, or industry, along with discussions of cutting-edge research and its implications. Designed primarily for graduate students in economics, business,
computer science, and related fields, the course fosters interdisciplinary dialogue on the opportunities and challenges posed by AI.
Terms: Spr | Units: 3-4
Instructors: ; Brynjolfsson, E. (PI)

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); Sundaresan, P. (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 329A: Self Improving AI Agents


This graduate seminar course covers the latest techniques and applications of AI agents that can continuously improve themselves through interaction with
themselves and the environment. The course will start with self-improvement techniques for LLMs, such as constitutional AI, using learned/domain-specific
verifiers, scaling test-time compute, and combining search with LLMs. We will then discuss the latest research in augmenting LLMs with tool use and retrieval
techniques, and orchestrating AI capabilities with multimodal web interaction. We will next discuss multi-step reasoning and planning problems for agentic
workflows, and the challenges in building robust evaluation and orchestration frameworks. Industry applications that will be discussed include coding agents,
research assistants in STEM, robotics and more. Students will work on an original research project in this area, discuss the suggested readings in each class, and
learn from invited academic and industry speakers. Prerequisites: CS224N or CS229S; Fluency in Python programming and using large language model APIs.
Application required to get permission number, apply at https://docs.google.com/forms/d/e/1FAIpQLScRNLBJuIR0eOSWhzO0l6tiSVYq-lYj60RPqSEC4DZoGyGtaQ/
viewform Website: cs329a.stanford.edu
Terms: Win | Units: 3
Instructors: ; Chowdhery, A. (PI); Mirhoseini, A. (PI); Saad-Falcon, J. (TA); Yuksekgonul, M. (TA)

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
Instructors: ; Koyejo, S. (PI); Hasanaliyev, K. (TA); Truong, S. (TA)

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
Instructors: ; Gottschlich, J. (PI); Hellman, E. (TA)

CS 329R: Race and Natural Language Processing (CSRE 329R, LINGUIST 281A, PSYCH 257A)
The goal of this practicum is to integrate methods from natural language processing with social scientific 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. Graduate standing and instructor
permission required. Students interested in participating should complete the online application for permission https://web.stanford.edu/class/cs329r/. Limited
enrollment.
Terms: Aut | Units: 3

23 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

Instructors: ; Eberhardt, J. (PI); Jurafsky, D. (SI); Alvarez, G. (GP); Cheng, M. (TA)

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
Instructors: ; Datta, A. (PI); Mitchell, J. (PI); Taly, A. (PI); Singla, A. (TA)

CS 329X: Human Centered NLP (CS 129X)


Recent advances in natural language processing (NLP), especially around large pretrained models, have enabled extensive successful applications. However, there
are growing concerns about the negative aspects of NLP systems, such as biases and a lack of input from users. This course gives an overview of human-centered
techniques and applications for NLP, ranging from human-centered design thinking to human-in-the-loop algorithms, fairness, and accessibility. Along the way, we
will cover machine-learning techniques which are especially relevant to NLP and to human experiences. Prerequisite: CS224N or CS224U, or equivalent background
in natural language processing. Prerequisite: CS224N or CS224U, or equivalent background in natural language processing.
Terms: Aut | Units: 3-4
Instructors: ; Yang, D. (PI); Wang, R. (TA); Ziems, C. (TA)

CS 336: Language Modeling from Scratch


Language models serve as the cornerstone of modern natural language processing (NLP) applications and open up a new paradigm of having a single general purpose
system address a range of downstream tasks. As the field of artificial intelligence (AI), machine learning (ML), and NLP continues to grow, possessing a deep
understanding of language models becomes essential for scientists and engineers alike. This course is designed to provide students with a comprehensive
understanding of language models by walking them through the entire process of developing their own. Drawing inspiration from operating systems courses that
create an entire operating system from scratch, we will lead students through every aspect of language model creation, including data collection and cleansing for
pre-training, transformer model construction, model training, and evaluation before deployment. Application required, apply at https://docs.google.com/forms/d/
e/1FAIpQLSdW0HgT8MHzdM8cgapLWqX2ZPP1yHSX52R_r5JzF52poqXsHg/viewform
Terms: Spr | Units: 3-5
Instructors: ; Hashimoto, T. (PI); Liang, P. (PI)

CS 337: AI-Assisted Care (MED 277)


Today, anyone can train a near state-of-the-art machine learning model with a laptop, a dataset, and 6a few lines of code. For many applications, model building is
no longer the rate-limiting step in using AI and machine learning to improve human health. In this course, we examine the other areas that need to be addressed --
from choosing the right problem, to moving technical advances into the clinical setting and making sure we are actually improving outcomes that matter. This
course is geared at anyone who is looking to use AI and machine learning to make a real-world positive impact on human health. Students from all schools welcome.
The course can be taken for 1 unit (lecture attendance/participation) or 2-4 units, which will include a project component. Class website: https://
cs337.stanford.edu/
Terms: Aut | Units: 1-4
Instructors: ; Adeli, E. (PI); Durante, Z. (PI); Kaushal, A. (PI); Li, F. (PI); Milstein, A. (PI)

CS 339R: Collaborative Robotics (ME 326)


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

CS 342: Building for Digital Health (MED 253)


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

CS 343D: Domain-Specific Programming Models and Compilers


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

CS 343S: Domain-Specific Language Design Studio


This is a design-studio course for the creation of domain-specific languages (DSLs). We will start with lectures teaching fundamental skills for designing and

24 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

implementing DSLs, followed by a long term project designing and implementing a DSL of the student's choice. The course will particularly emphasize the role that
languages can play in tasks that we do not usually think of as programming, such as DSLs for knitting patterns or geometric constructions.
Terms: Spr | Units: 3
Instructors: ; Laufer, E. (PI); Ozdemir, A. (PI); Root, A. (PI); Sotoudeh, M. (PI)

CS 347: Human-Computer Interaction: Foundations and Frontiers


(Previously numbered CS376.) How will the future of human-computer interaction evolve? This course equips students with the major animating theories of human-
computer interaction by connecting those theories to modern innovations. Major theories are drawn from interaction (e.g., tangible and ubiquitous computing),
social computing (e.g., Johansen matrix), and design (e.g., reflective practitioner, wicked problems); they span domains such as AI+HCI (e.g., mixed initiative
interaction), accessibility (e.g., ability based design), and interface software tools (e.g., threshold/ceiling diagrams). Students read and discuss multiple papers per
week. Prerequisites: For CS and Symbolic Systems undergraduates/masters students, CS147 or CS247. No prerequisite for PhD students or students outside of CS and
Symbolic Systems.
Terms: Win | Units: 3-4
Instructors: ; Bernstein, M. (PI); Baillargeon, P. (TA); Genc, D. (TA); Lam, M. (TA); Ruth, P. (TA); Suzara, M. (TA)

CS 348C: Computer Graphics: Animation and Simulation


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

CS 348K: Visual Computing Systems


Visual computing tasks such as computational photography, image/video understanding, and real-time 3D graphics are key responsibilities of modern computer
systems ranging from sensor-rich smart phones, autonomous robots, and large data centers. These workloads demand exceptional system efficiency and this course
examines the key ideas, techniques, and challenges associated with the design of parallel, heterogeneous systems that execute and accelerate visual computing
applications. This course is intended for graduate and advanced undergraduate-level students interested in architecting efficient graphics, image processing, and
computer vision systems (both new hardware architectures and domain-optimized programming frameworks) and for students in graphics, vision, and ML that seek
to understand throughput computing concepts so they can develop scalable algorithms for these platforms. Students will perform daily research paper readings,
complete simple programming assignments, and compete a self-selected term project. Prerequisites: CS 107 or equivalent. Highly recommended: Parallel
Computing (CS149) or Computer Architecture (EE 282). Students will benefit from some background in deep learning (CS 230, CS 231N), computer vision (CS 231A),
digital image processing (CS 232) or computer graphics (CS248).
Terms: Spr | Units: 3-4
Instructors: ; Fatahalian, K. (PI)

CS 349D: Cloud Computing Technology


The largest change in the computer industry over the past twenty years has arguably been the emergence of cloud computing: organizations are increasingly
developing their workloads to be cloud native, using global-scale compute, storage, and communication services that were simply not possible with private
infrastructure. This research seminar covers the latest technical advances and open issues in cloud computing, including cloud infrastructure for AI inference and
training, cloud databases and data lakes, resource management, serverless computing, confidential computing, multi-cloud computing, and AI for cloud
management. Students will propose and develop an original research project in cloud computing. Prerequisites: Background in computer systems recommended but
not required ( CS 111/240, 144/244, 244B or 245).
Terms: Spr | Units: 3

CS 349F: Fabric Architectures For AI Systems


The course is concerned with the design and operation of the network fabrics which interconnect large-scale compute and storage nodes in modern AI GPU clusters,
cloud computing systems, and "time-sensitive systems" like financial trading platforms and massive multi-player games. We will consider architectures, protocols
and algorithms which enable these network fabrics to deliver deterministic and ultra-low latency at near-100% goodput. Topics include data center fabric
architectures - the fat tree topology, transport protocols - congestion control and load balancing, and scheduling algorithms - job scheduling, fabric scheduling and
their interaction. A particular focus will be the contrast and synergy between the edge- and network-centric approaches to building high-performance network
fabrics. Students will hear from industry experts who design, operate and use large-scale GPU and CPU clusters. Recommended: Knowledge of basic Networking, OS,
or Distributed Systems (CS 144, 140, or equivalent), as well as basic EE courses (EE 178) will be useful.
Terms: Win | Units: 2
Instructors: ; Prabhakar, B. (PI)

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); Yi, P. (TA)

CS 355: Advanced Topics in Cryptography


Topics: Pseudo randomness, multiparty computation, pairing-based and lattice-based cryptography, zero knowledge protocols, and new encryption and integrity
paradigms. May be repeated for credit. Prerequisite: CS255.
Terms: Spr | Units: 3 | Repeatable for credit
Instructors: ; Boneh, D. (PI)

25 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

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
Instructors: ; Durumeric, Z. (PI); Han, C. (TA)

CS 357S: Formal Methods for Computer Systems


The complexity of modern computer systems requires rigorous and systematic verification/validation techniques to evaluate their ability to correctly and securely
support application programs. To this end, a growing body of work in both industry and academia leverages formal methods techniques to solve computer systems
challenges. This course is a research seminar that will cover foundational work and current topics in the application of formal methods-style techniques (some
possible examples include SAT/SMT, model checking, symbolic execution, theorem proving, program synthesis, fuzzing) to reliable and secure computer systems
design. The course can be thought of as an applied formal methods course where the application is reliable and secure architecture, microarchitecture, and
distributed systems design. Prior formal methods experience is not necessary. Students will read and discuss published research papers and complete an original
research project. Open to PhD and masters students as well as advanced undergraduate students. Prerequisites: EE180 Digital Systems Architecture or comparable
course, or consent of instructor.
Terms: Win | Units: 3
Instructors: ; Trippel, C. (PI); Cleaveland, R. (TA)

CS 359D: Quantum Complexity Theory


Introduction to quantum complexity theory. Topics include: the class BQP and its relation to other complexity classes; quantum query and communication
complexity; quantum proof systems, Hamiltonian complexity, and the quantum PCP conjecture; the complexity & verification of quantum sampling experiments;
and quantum cryptography. Prerequisites: background in quantum computing and computational complexity theory
Terms: Win | Units: 3
Instructors: ; Bouland, A. (PI); Zhang, C. (TA)

CS 360: Simplicity and Complexity in Economic Theory (ECON 284)


Technology has enabled the emergence of economic systems of formerly inconceivable complexity. Nevertheless, some technology-related economic problems are
so complex that either supercomputers cannot solve them in a reasonable time, or they are too complex for humans to comprehend. Thus, modern economic
designs must still be simple enough for humans to understand, and must address computationally complex problems in an efficient fashion. This topics course
explores simplicity and complexity in economics, primarily via theoretical models. We will focus on recent advances. Key topics include (but are not limited to)
resource allocation in complex environments, communication complexity and information aggregation in markets, robust mechanisms, dynamic matching theory,
influence maximization in networks, and the design of simple (user-friendly) mechanisms. Some applications include paired kidney exchange, auctions for
electricity and for radio spectrum, ride-sharing platforms, and the diffusion of information. Prerequisites: Econ 203 or equivalent.
Terms: Spr | Units: 3-5
Instructors: ; Akbarpour, M. (PI)

CS 361: Engineering Design Optimization (AA 222, CME 222)


Design of engineering systems within a formal optimization framework. This course covers the mathematical and algorithmic fundamentals of optimization,
including derivative and derivative-free approaches for both linear and non-linear problems, with an emphasis on multidisciplinary design optimization. Topics will
also include quantitative methodologies for addressing various challenges, such as accommodating multiple objectives, automating differentiation, handling
uncertainty in evaluations, selecting design points for experimentation, and principled methods for optimization when evaluations are expensive. Applications range
from the design of aircraft to automated vehicles. Prerequisites: some familiarity with probability, programming, and multivariable calculus.
Terms: Spr | Units: 3-4
Instructors: ; Kochenderfer, M. (PI)

CS 362: Research in AI Alignment


In this course we will explore the current state of research in the field of AI alignment, which seeks to bring increasingly intelligent AI systems in line with human
values and interests. As the energy in the AI alignment landscape has been increasingly focused on political considerations, we seek to create a space to discuss
which direction we should be pointing in, now that we have a better idea of what AI scaling will look like in the near future. This is a philosophical task, and we will
invite several speakers that are philosophical in persuasion, but we also find that several of the most relevant philosophical questions cannot be asked without a
strong technical familiarity with the specifics of language models and reinforcement learning. The format will consist of weekly lectures in which speakers present
their relationships to the alignment problem and their current research approaches. Before each speaker, we will have some corresponding assigned readings and
we will assign some form of active engagement with the material: we will accept a blog post in response to the ideas in the readings, but we will encourage jupyter
notebooks that engage with the technical material directly. Therefore this course requires research experience, preferably using mathematical and programming
tools (e.g. Python, PyTorch, calculus), and is a graduate level course, open to advanced undergraduates.
Terms: Aut | Units: 3
Instructors: ; Viteri, S. (PI); Fronsdal, K. (TA)

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


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

CS 372: Artificial Intelligence for Reasoning, Planning, and Decision Making


Course Description:Large Language Models (LLMs) have revolutionized AI through remarkable pattern matching capabilities. However, the path to Artificial General

26 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

Intelligence (AGI) requires advancing beyond unconscious (System 1) to conscious (System 2) processing. This research-oriented course explores fundamental
approaches to elevate LLMs toward AGI capabilities through conscious reasoning, planning, and decision-making. Core Research Questions: 1. How can we enable
LLMs to transition from pattern matching to conscious deliberation? 2. What frameworks support robust reasoning and verifiable decisions? 3. How do we implement
planning and temporal awareness in LLM systems? 4. What role does multi-LLM agent collaboration play in advancing toward AGI capabilities? The course examines:
1. Theoretical foundations of consciousness in AI 2. Multi-LLM Agent Collaborative Intelligence (MACI) frameworks 3. Entropy-guided information exchange 4.
Constitutional AI principles 5. Temporal reasoning and planning architectures. Through lectures, discussions, and hands-on projects, students will explore practical
implementations across various domains. While healthcare provides immediate applications (diagnosis, treatment planning), the principles apply broadly to any
field requiring AGI-level reasoning capabilities. Prerequisites: Machine Learning, Deep Learning
Terms: Spr | Units: 3
Instructors: ; Chang, E. (PI)

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


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

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 377Q: Designing for Accessibility (ME 214)


Designing for accessibility is a valuable and important skill in the UX community. As businesses are becomeing more aware of the needs and scope of people with
some form of disability, the benefits of universal design, where designing for accessibility ends up benefiting everyone, are becoming more apparent. This class
introduces fundamental Human Computer Interaction (HCI) concepts and skills in designing for accessibility through individual assignments. Student projects will
identify an accessibility need, prototype a design solution, and conduct a user study with a person with a disability. This class focuses on the accessibility of UX with
computers, mobile phones, VR, and has a design class prerequisite (e.g., CS147, ME115A).
Terms: Win | Units: 3-4
Instructors: ; Tang, J. (PI); Nguyen, C. (TA)

CS 377U: Understanding Users


This project-based class focuses on understanding the use of technology in the world. Students will learn generative and evaluative research methods to explore
how systems are appropriated into everyday life in a quarter-long project where they design, implement and evaluate a novel mobile application. Quantitative (e.g.
A/B testing, instrumentation, analytics, surveys) and qualitative (e.g. diary studies, contextual inquiry, ethnography) methods and their combination will be
covered along with practical experience applying these methods in their project. Prerequisites: CS 147, 193A/193P (or equivalent mobile programming experience).
Terms: Spr | Units: 3-4
Instructors: ; Bentley, F. (PI)

CS 381: Sensorimotor Learning for Embodied Agents (EE 381)


This is an advanced course that will focus on modern machine learning algorithms for autonomous robots as an embodied intelligent agent. It covers advanced
topics that center around 1. what is embodied AI and how it differs from internet AI, 2. how embodied agents perceive their environment from raw sensory data
and make decisions, and 3. continually adapt to the physical world through both hardware and software improvements. By the end of the course, we hope to
prepare you for conducting research in this area, knowing how to formulate the problem, design the algorithm, critically validate the idea through experimental
designs and finally clearly present and communicate the findings. Students are expected to read, present, and debate the latest research papers on embodied AI, as
well as obtain hands-on experience through the course projects. Prerequisites: Recommended EE 160A/EE 260A /CS 237A or equivalent.
Terms: Win | Units: 3
Instructors: ; Song, S. (PI); Liu, Z. (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); Bailey, C. (PI); Barrett, C. (PI); Bejerano, G. (PI); Bernstein, M. (PI);
Bohg, J. (PI); Boneh, D. (PI); Borenstein, J. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Charikar, M. (PI); Dally, B. (PI); Dror, R. (PI); Duchi, J.
(PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Finn, C. (PI); Fischer, M. (PI); Fogg, B. (PI); Follmer, S. (PI); Fox, E. (PI);
Genesereth, M. (PI); Goel, A. (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); Kennedy, M. (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); Leskovec, J. (PI); Levis, P. (PI); Levitt, 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); Ng, A. (PI); Niebles

27 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

Duque, J. (PI); Okamura, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Pande, V. (PI); Parlante, N. (PI); Pavone, M. (PI); Pea, R. (PI); Piech, C. (PI); Potts, C. (PI);
Prabhakar, B. (PI); Re, C. (PI); Reingold, O. (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); Sidford, A. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Troccoli, N. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI);
Wetzstein, G. (PI); Widom, J. (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);
Zelenski, J. (PI); Zou, J. (PI)

CS 390B: Curricular Practical Training


Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in internship
work and integrate that work into their academic program. Students register under their faculty advisor during the quarter they are employed and complete a
research report outlining their work activity, problems investigated, results, and 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); Bailey, C. (PI); Barrett, C. (PI); Bejerano, G. (PI); Bernstein, M. (PI);
Bohg, J. (PI); Boneh, D. (PI); Borenstein, J. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Charikar, M. (PI); Dally, B. (PI); Dror, R. (PI); Duchi, J.
(PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Finn, C. (PI); Fogg, B. (PI); Follmer, S. (PI); Fox, E. (PI); Genesereth, M.
(PI); Goel, A. (PI); Goodman, N. (PI); Gregg, C. (PI); Guestrin, C. (PI); Guibas, L. (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); Kennedy, M. (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); Leskovec, J. (PI); Levis, P. (PI); Levitt, 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); 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); Potts, C. (PI); Prabhakar, B. (PI); Re, C. (PI); Reingold, O. (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); Sidford, A. (PI); Tan, L. (PI);
Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Troccoli, N. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI);
Winstein, K. (PI); Wootters, M. (PI); Wu, J. (PI); Yang, D. (PI); Yeung, S. (PI); Young, P. (PI); Zelenski, J. (PI); Zou, J. (PI)

CS 390C: Curricular Practical Training


Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in internship
work and integrate that work into their academic program. Students register under their faculty advisor during the quarter they are employed and complete a
research report outlining their work activity, problems investigated, results, and 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: ; Achour, S. (PI); Aiken, A. (PI); Altman, R. (PI); Bailey, C. (PI); Barrett, C. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Boneh, D. (PI); Borenstein, J. (PI);
Bouland, A. (PI); Cain, J. (PI); Charikar, M. (PI); Dally, B. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fedkiw, R. (PI); Finn, C. (PI); Fogg, B. (PI); Follmer,
S. (PI); Fox, E. (PI); Genesereth, M. (PI); Goel, A. (PI); Goodman, N. (PI); Gregg, C. (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); Kennedy, M. (PI); Khatib, O. (PI); Koller, D. (PI); Koyejo, S. (PI); Kozyrakis, C. (PI);
Lam, M. (PI); Leskovec, J. (PI); Levis, P. (PI); Levitt, 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); Ng, A. (PI); Okamura, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Parlante, N. (PI); Pavone, M. (PI); Pea, R. (PI);
Piech, C. (PI); Potts, C. (PI); Prabhakar, B. (PI); Re, C. (PI); Reingold, O. (PI); Rosenblum, M. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Schwarz, K.
(PI); Sidford, A. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Troccoli, N. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI); Widom, J. (PI);
Winstein, K. (PI); Wu, J. (PI); Yang, D. (PI); Yeung, S. (PI); Young, P. (PI); Zelenski, J. (PI)

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); Altman, R. (PI); Barrett, C. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Bohg, J. (PI); Boneh, D. (PI); Bouland, A. (PI);
Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Charikar, M. (PI); Dally, B. (PI); Dror, R. (PI); Duchi, J. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian,
K. (PI); Fedkiw, R. (PI); Finn, C. (PI); Follmer, S. (PI); Genesereth, M. (PI); Goel, A. (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); Kennedy, M. (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); Leskovec, J. (PI); Levis, P. (PI);
Levitt, 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); Ng, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Pande, V. (PI); Parlante, N. (PI); Pavone, M. (PI); Piech, C. (PI); Prabhakar, B. (PI); Re, C. (PI);
Reingold, O. (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); Tan, L.
(PI); Thrun, S. (PI); Tobagi, F. (PI); Valiant, G. (PI); Van Roy, B. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI); Winstein, K. (PI); Wootters, M. (PI); Wu, J. (PI);
Yeung, S. (PI); Young, P. (PI); Zelenski, J. (PI); Zou, J. (PI)

28 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

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. Enroll in the section that is led by your research 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); Bailey, C. (PI); Barrett, C. (PI); Bejerano, G. (PI);
Bernstein, M. (PI); Bohg, J. (PI); Boneh, D. (PI); Borenstein, J. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Charikar, M. (PI); Dally, B. (PI);
Demszky, D. (PI); Dror, R. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Finn, C. (PI); Fogg, B. (PI); Fox, E. (PI);
Genesereth, M. (PI); Goel, A. (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); Leskovec, J. (PI); Levis, P. (PI); Levitt, M. (PI); Li, F. (PI); Liang,
P. (PI); Liu, K. (PI); Ma, T. (PI); Manning, C. (PI); Mazieres, D. (PI); McKeown, N. (PI); Mirhoseini, A. (PI); Mitchell, J. (PI); Montgomery, S. (PI); Musen, M. (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); Potts, C. (PI); Prabhakar, B. (PI); Re, C. (PI); Reingold, O. (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); Sidford, A. (PI); Subramonyam, H. (PI); Syrgkanis, V. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C.
(PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (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); Zelenski, J. (PI); Zou, J. (PI)

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. Enroll in the section that is led by your research 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); Altman, R. (PI); Bailey, C. (PI); Bejerano, G. (PI); Bernstein, M. (PI); Boneh, D. (PI);
Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Cain, J. (PI); Charikar, M. (PI); Dally, B. (PI); Dror, R. (PI); Engler, D. (PI); Ermon, S. (PI); Fedkiw, R. (PI); Finn, C.
(PI); Fogg, B. (PI); Fox, E. (PI); Genesereth, M. (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); Leskovec, J. (PI); Levis, P. (PI); Levitt, 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); Ng, A. (PI); Olukotun, O. (PI); Ousterhout, J. (PI); Parlante, N. (PI); Pavone, M. (PI); Potts, C.
(PI); Prabhakar, B. (PI); Re, C. (PI); Rosenblum, M. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Thrun, S. (PI); Tobagi, F. (PI); Valiant, G. (PI); Van Roy, B.
(PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI); Wodtke, C. (PI); Wu, J. (PI); Yang, D. (PI); Young, P. (PI); Zelenski, J. (PI); Zou, J. (PI)

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
Instructors: ; Agrawala, M. (PI); Linhares-Huang, C. (TA); Tenorio, M. (TA)

CS 448I: Computational Imaging (EE 367)


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

CS 468: Topics in Geometric Computing - 3D and 4D Foundation Models


Contents of this course vary with each offering. Past offerings have included geometric matching, surface reconstruction, collision detection, computational
topology, differential geometry for computer scientists, computational symmetry and regularity, data-driven shape analysis, and non-Euclidean methods in machine
learning.
Terms: Aut | Units: 3 | Repeatable for credit
Instructors: ; Guibas, L. (PI); Stearns, C. (TA)

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: ; Kim, K. (PI); Zhu, A. (TA)

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


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

CS 499: Advanced Reading and Research


Letter grade only. Advanced reading and research for CS PhD students. Register using the section number associated with the instructor. Prerequisite: consent of

29 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

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); Barrett, C. (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); Charikar, M. (PI); Dally, B. (PI);
Dauterman, E. (PI); Dror, R. (PI); Duchi, J. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Finn, C. (PI); Fogg, B. (PI);
Follmer, S. (PI); Fox, E. (PI); Fox, J. (PI); Ganguli, S. (PI); Genesereth, M. (PI); Goel, A. (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); Leskovec, J. (PI); Levis, P. (PI); Levitt, 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); 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); Potts, C. (PI);
Prabhakar, B. (PI); Raina, P. (PI); Re, C. (PI); Reingold, O. (PI); Rosenblum, M. (PI); Rubinstein, A. (PI); Saberi, A. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J.
(PI); Savarese, S. (PI); Schmidt, L. (PI); Schwarz, K. (PI); Sidford, A. (PI); Song, S. (PI); Subramonyam, H. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C.
(PI); Utterback, C. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI); Winstein, K. (PI); Wootters, M. (PI); Wu,
J. (PI); Yamins, D. (PI); Yang, D. (PI); Yeung, S. (PI); Young, P. (PI); Zelenski, J. (PI); Zou, J. (PI)

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); Barrett, C. (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); Charikar, M. (PI); Dally, B. (PI);
Dauterman, E. (PI); Dror, R. (PI); Duchi, J. (PI); Durumeric, Z. (PI); Engler, D. (PI); Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Finn, C. (PI); Fogg, B. (PI);
Follmer, S. (PI); Fox, E. (PI); Fox, J. (PI); Ganguli, S. (PI); Genesereth, M. (PI); Goel, A. (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); Leskovec, J. (PI); Levis, P. (PI); Levitt, 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); 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); Potts, C. (PI); Prabhakar, B. (PI); Raina, P. (PI);
Re, C. (PI); Reingold, O. (PI); Rosenblum, M. (PI); Rubinstein, A. (PI); Saberi, A. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI); Savarese, S. (PI); Schmidt, L.
(PI); Schwarz, K. (PI); Sidford, A. (PI); Song, S. (PI); Subramonyam, H. (PI); Tan, L. (PI); Thrun, S. (PI); Tobagi, F. (PI); Trippel, C. (PI); Utterback, C. (PI); Valiant, G.
(PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI); Winstein, K. (PI); Wootters, M. (PI); Wu, J. (PI); Yamins, D. (PI); Yang, D. (PI);
Yeung, S. (PI); Young, P. (PI); Zelenski, J. (PI); Zou, J. (PI)

CS 521: Seminar on AI Safety


In this seminar, we will focus on the challenges in the design of safe and verified AI-based systems. We will explore some of the major problems in this area from
the viewpoint of industry and academia. We plan to have a weekly seminar speaker to discuss issues such as verification of AI systems, reward misalignment and
hacking, secure and attack-resilient AI systems, diagnosis and repair, issues regarding policy and ethics, as well as the implications of AI safety in automotive
industry. Prerequisites: There are no official prerequisites but an introductory course in artificial intelligence is recommended.
Terms: Spr | Units: 1

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); Lim, B. (GP); Xue, J. (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 | Units: 1 | Repeatable 3 times (up to 3 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
Instructors: ; Bernstein, M. (PI); Zhao, D. (TA)

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); Bejerano, G. (PI); Bernstein, M.
(PI); Boahen, K. (PI); Bohg, J. (PI); Boneh, D. (PI); Bouland, A. (PI); Boyd, S. (PI); Brunskill, E. (PI); Charikar, M. (PI); Dror, R. (PI); Durumeric, Z. (PI); Engler, D. (PI);
Ermon, S. (PI); Fatahalian, K. (PI); Fedkiw, R. (PI); Finn, C. (PI); Follmer, S. (PI); Fox, E. (PI); Fox, J. (PI); Ganguli, S. (PI); Genesereth, M. (PI); Goel, A. (PI);

30 of 31 27-02-2025, 18:36
Stanford University Explore Courses https://explorecourses.stanford.edu/print?filte...

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); Kennedy, M. (PI); Khatib, O. (PI); Kjoelstad, F. (PI); Kochenderfer, M. (PI); Koyejo, S. (PI); Kozyrakis, C. (PI);
Kundaje, A. (PI); Lam, M. (PI); Landay, J. (PI); Leskovec, J. (PI); Levis, P. (PI); Levitt, 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); Okamura, A. (PI);
Olukotun, O. (PI); Ousterhout, J. (PI); Pavone, M. (PI); Pea, R. (PI); Potts, C. (PI); Prabhakar, B. (PI); Raina, P. (PI); Re, C. (PI); Reingold, O. (PI); Rosenblum, M. (PI);
Rubinstein, A. (PI); Sadigh, D. (PI); Sahami, M. (PI); Salisbury, J. (PI); Schmidt, L. (PI); Sidford, A. (PI); Song, S. (PI); Subramonyam, H. (PI); Tan, L. (PI); Tobagi, F.
(PI); Trippel, C. (PI); Utterback, C. (PI); Valiant, G. (PI); Van Roy, B. (PI); Vitercik, E. (PI); Wang, G. (PI); Wetzstein, G. (PI); Widom, J. (PI); Winstein, K. (PI);
Wootters, M. (PI); Wu, J. (PI); Yamins, D. (PI); Yang, D. (PI); Yeung, S. (PI); Zou, J. (PI)

<--- END OF REPORT --->

31 of 31 27-02-2025, 18:36

You might also like