CS 123: A Hands-On Introduction to Building AI-Enabled Robots
2026-2027 Fall Teaching Team:
Instructors: Jie Tan (Google DeepMind), Stuart Bowers (Google DeepMind, Hands-On Robotics)
Co-Instructor: Prof. Karen Liu (Stanford CS)
TAs: Ankush Dhawan (PhD, MechE), JC Hu (coterm, CS)
Sign-Up Form: This course’s enrollment is conducted via enrollment code. The Student Registration Form will open at 9 am on September 7th. We will select 6 people in each undergraduate year in a first-come, first-served manner.
Overview:
Welcome to the course page for Stanford’s class on legged 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 such as navigation and command following. The course covers a broad range of topics critical to robot learning, including motor control, forward and inverse kinematics, system identification, simulation, and reinforcement learning. Through weekly labs, students will construct and program an agile robot quadruped named Pupper. In the final few weeks, students will undertake an open-ended project, such as training Pupper to perform agile movements, developing a vision system to allow Pupper to play fetch, or adapting large language models to enable Pupper’s ability to communicate with humans.
“Empowering robots with AI is essential to make them smart and useful in people’s daily life. It is one of the most important research directions in both academia and industry. This class teaches the most relevant skills, gives students hands-on experiences, and prepares them for a career in the area of AI and robotics.” - Jie Tan, Director at Google DeepMind
Time: Monday, 3:30pm - 6:20pm
Lecture Location: STLC 114, in-person attendance required
- Instructor Office Hours:
Jie, Stuart & Karen: Office hours by appointment. Reach out to the teaching team via email to schedule.
TA Office Hours Location: Gates B08
TA Office Hours (subject to change 1st week by classroom availability):
Ankush: Mondays 9:30am - 11:00am, Thursdays 9:30am - 11:00am
JC: Tuesdays 3:00pm - 5:00pm, Thursdays 3:00pm - 5:00pm (Gates B02), additional hours by appointment.
Prerequisites:
CS106A (programming of all labs will be in Python)
CS107 (familiarity with the terminal and command lines is sufficient)
MATH51/CME100 (basic understanding of gradients)
No robotics experience necessary!!
Number of credits: 3
Grading: Students will work in assigned groups for all labs and the final project. All group members will receive the same score for each lab. Some labs may include individual written homework, which will be graded separately.
Attendance: Attendance is mandatory for all classes and counts for 3% of your grade. Missing 0-1 classes gives you full credit, missing 2 classes gives you 50%, and missing more than 2 gives you 0%. Students are expected to attend all classes in person. If you are unable to attend a class, please inform the teaching team in advance.
Lab Policies:
Labs: Labs are due before class the following week (by 3:30 PM on Mondays) unless otherwise noted. Each team has a total of 7 late days to use across all labs. Using one late day extends the deadline by 24 hours. A maximum of 3 late days may be used per lab. Labs submitted more than 72 hours after the deadline will not be accepted.
Use of AI: The use of AI tools and coding agents (e.g., Claude Code and Codex) is permitted in this course. However, expectations may vary by assignment. For some labs, we may discourage the use of coding agents when completing the implementation independently is an important part of the learning objective. For other labs, the optional labs, and the final project, we encourage students to make effective use of AI tools and coding agents to explore more ambitious ideas and achieve the best results they can. Assignment-specific guidance will be provided when applicable. Regardless of AI usage, students are responsible for understanding, testing, and being able to explain the code and work they submit.
Final project: No extensions are allowed for the final project proposal, progress report, or final demo video/presentation.
Optional Labs: Three optional labs will be offered this quarter, with the first released in Week 3. These labs will be significantly more challenging and time-consuming than the regular labs. They may involve concepts way beyond the scope of this course and the given prerequisites, and are intentionally open-ended. There are no due dates for these labs—students are encouraged to work on them at their own pace and are welcome to develop them further as part of their final projects. TAs will be available to support students working on the optional labs during their office hours.
Quizzes There will be two quizzes throughout the quarter, together accounting for 5% of the final grade. Quizzes will be completed individually, in person, and closed-book. They are intended to assess each student’s understanding of the course material and concepts covered in the labs and lectures.
The quizzes are not intended to be difficult or tricky. If you work through the labs yourself and understand the concepts and implementations involved, the quizzes should be very straightforward. Quiz scores will be assigned individually rather than by group.
Enrollment: 24 students; 8 groups of 3 students
Schedule
Note
The Fall 2026 course schedule is still in development and will be released on a weekly basis alongside Stanford’s fall quarter schedule. In the meantime, please refer to the Fall 2025 offering for a comprehensive course schedule with labs that are verified to work.
Week |
Lecture |
Lab |
Lab Due Date |
Other |
|---|---|---|---|---|
Week 1: 9/22 |
9/30/26 (extended) |
No class 9/21 (holiday); lecture recorded |
||
Week 2: 9/28 |
10/5/26 |
|||
Week 3: 10/5 |
10/12/26 |
References: References Page
Past Course Projects: Past Course Projects
Fall 2025 quarter website: Fall 2025 (Archived)
Spring 2025 quarter website: Spring 2025 (Archived)
Older offerings (materials only): Further Past Offerings