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

Pupper cover
Pupper Robot

2025-2026 Fall Teaching team:

Sign-Up Form: This form will open on Monday, 9/8/2025 at 9AM PST for applications. Please fill out this form if you are interested in enrolling for our Fall offering! We will select 24 out of the first 100 applicants in a lottery that considers equal seniority distribution among undergraduates.

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, Staff Research Scientist at Google DeepMind

Time: Monday, 3:30pm - 6:20pm

Lecture Location: CoDA B90, in-person attendance required

Instructor Office Hours:
  • Karen: TBD

  • Stuart, Jie, Wenhao, Tingnan: Office hours by appointment. Reach out to the teaching team to schedule.

TA Office Hours Location: CoDA B50

TA Office Hours:

  • Ankush: Mondays: 10:00am - 11:00am, Wednesdays: 10:00am - 11:00am

  • JC: Tuesdays 2:00pm - 3:30pm, Fridays 3:00pm - 4:30pm (in CoDA B04), additional hours by appointment.

  • Benji: Thursdays: 12:45pm - 2:45pm

Prerequisites:

  • CS106A (programming of all labs will be in Python)

  • CS107 (familiarity with the terminal and command lines)

  • 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.

Final project: No extensions are allowed for the final project proposal, progress report, or final demo video/presentation.

Optional Labs: Two 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 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.

Enrollment: 21 students; 7 groups of 3 students

Schedule

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/29/25

Week 2: 9/29

Lecture 2: Forward Kinematics

Lab 2: Forward Kinematics

10/6/25

Week 3: 10/6

Lecture 3: Inverse Kinematics

Lab 3: Inverse Kinematics and Trajectory Tracking

10/13/25

Optional Lab 1: Implicit Compliance

Week 4: 10/13

Lecture 4: Heuristical Gait Control

Lab 4: Model-Based Control and Trotting Gait Implementation

10/20/25

Week 5: 10/20

Lecture 5: Reinforcement Learning for Robotics

Lab 5: How to Train Your Dog

10/27/25

Optional Lab 2 coming soon!

Week 6: 10/27

Lecture 6: Large Language Models for Robotics

Lab 6: Do What I Say

11/3/25

Week 7: 11/3

Lecture 7: Computer Vision for Robotics

Lab 7: The World I See

11/10/25

Week 8: 11/10

Final Project Schedule & Directions

Final Project Proposal

11/14/25

Week 9: 11/17

Open Lab Time for Final Projects

Thanksgiving Break: 11/24

Week 11: 11/30

Finals Week: 12/7

References: References Page

Past Course Projects: Past Course Projects

Spring 2025 quarter website: Spring 2025 (Archived) Older offerings (materials only): Further Past Offerings