CS 123: A Hands-On Introduction to Building AI-Enabled Robots

Pupper cover
Pupper Robot

2026-2027 Fall Teaching Team:

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

Lecture 1: ROS Introduction and PD Control

Lab 1: ROS Introduction and PD Control

9/30/26 (extended)

No class 9/21 (holiday); lecture recorded

Week 2: 9/28

Lecture 2: Forward Kinematics

Lab 2: Forward Kinematics

10/5/26

Week 3: 10/5

Lecture 3: Inverse Kinematics and Heuristic Walking

Lab 3: Inverse Kinematics and Heuristic Walking

10/12/26

Optional Lab 1: Implicit Compliance

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