CS129: Applied Machine Learning

Winter 2024


Teaching Assistants

Course Description  You will learn how to implement and apply machine learning algorithms. This course emphasizes practical skills, and focuses on teaching you a wide range of algorithms and giving you the skills to make these algorithms work best. You will learn about commonly used learning techniques including supervised learning algorithms (logistic regression, linear regression, neural networks/deep learning, decision trees), unsupervised learning algorithms like k-means, reinforcement learning algorithms like Q-learning, as well as specific applications such as anomaly detection and building recommender systems. Prerequisites: Programming at the level of CS106B or 106X, probability theory at the level CS109 or STATS116 and basic linear algebra at the level of MATH51. 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 lectures that go deeper into some of the math and discussion sections about applying the algorithms. This class will culminate in an open-ended final project, which the teaching team will mentor you on. Enrollment is limited.


  • Jan 9. Students have been invited to EdStem and Coursera. We invite a new batch each day. If it has gone two days since you signed up on Axess or if you're auditing the course, and do not have access to EdStem, please reach out to Henrik.
  • Jan 7. Students will be invited to EdStem and Coursera on Monday and Tuesday (Jan 8 and 9)

Course Information

Time and Location
Thursdays 9:00-10:20. Lane History Corner 002 (200-002).
Please note: Previously, a different location was listed on the website!
Contact Information
If you have a question, to get a response from the teaching staff quickly we strongly encourage you to post it to the class EdStem . For private matters, please make a private note visible only to the course instructors.
For longer discussions and to get help in person, we strongly encourage you to come to office hours.
Contact us on EdStem if you need anything!
Office Hours
All office hours will be held in person in Huang basement.
Younes: Thursdays 12:00pm - 1:30pm (except midterm week, and the week after)
Henrik: Mondays 9:30am to 11:30am. Fridays 11:40 - 1:40pm
Zoe: Thursdays 1:30pm - 3:30pm
Star: Fridays 11:00am - 1:00pm
Course Advisors


Students are expected to have the following background:
  • Knowledge of basic computer science principles and skills, at a level sufficient to write a reasonably non-trivial computer program
  • Basic probability theory (CS109 or STATS116)
  • Basic linear algebra (MATH51)
Course Materials
If you are enrolled in CS129, you will receive an email from Coursera confirming that you have been added to a private session of the course "Machine Learning". This email will go out on Tuesday of Week 1. Follow the instructions to setup your Coursera account with your Stanford email.
On the Coursera platform, you will find:
  • Lecture videos which are organized in "weeks". You will have to watch around 10 videos (more or less 10 min each) every week. Make sure you are up to date, to not lose the pace of the class.
  • Quizzes (≈ 10-30min to complete) at the end of every week. These quizzes are here to assess your understanding of the material.
  • Programming assignments (≈ 2h per week to complete). The programming assignments will usually lead you to build concrete algorithms, you will get to see your own result after you've completed all the code. It's gonna be fun! For both assignment and quizzes Follow the deadline on Syllabus
You will follow the syllabus, week by week, and have discussions during our weekly session. These discussions will go over the algorithms in more detail. We will derive a few of them together and solve practice problems.
There will be some programming assignments and quizzes on Coursera, an open-ended term project and a final poster presentation. Programming assignments will contain questions that require Python programming. In the term project, you will investigate some interesting aspect of machine learning or apply machine learning to a problem that interests you.
Course grades: Problem Sets 20%, Programming Assignements and Quizzes: 25%, Midterm: 25%, Project 30%.
Submitting Assignments
For this course, you will be invited to a private Coursera Session. In this session, you will be able to watch videos, do quizzes and complete programming assignments. Each quiz and programming assignment can be submitted directly from the session and will be graded by our autograder.
Late assignments
There will be no late days for the coursera assignments. For the problem sets and project reports, you are allowed three in total. One late day counts as one calendar day and you are not allowed to use more than one late day per problem set, milestone, or proposal. You can not use a late day on the final report or poster subbmission.
Honor code
We strongly encourage students to form study groups. Students may discuss and work on programming assignments and quizzes in groups. However, each student must write down the solutions independently, and without referring to written notes from the joint session. In other words, each student must understand the solution well enough in order to reconstruct it by him/herself. In addition, each student should submit his/her own code and mention anyone he/she collaborated with.

Acknowledegment   This webpage is using the code from Shuqui Qu and Ziang Xie who have built the CS229 webpage, special thanks to them.