CS129: Applied Machine Learning

Spring 2022


Teaching Assistants

Course Description  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. 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 discussion sections. This class will culminate in an open-ended final project, which the teaching team will help you on. Enrollment is limited.


  • The first day of class is on March 30th, 2021 from 9:45 am to 11:05 am via Zoom. You can find the Zoom link on Canvas.

Course Information

Time and Location
Wednesday 9:45-11:05 am
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 on Zoom. Please see Canvas to find the Zoom links for office hours.
Younes: Wednesday 11:05am - 12:35pm
Tina: Tuesday and Thursday 1:30 - 3pm
Niki: Monay 6 - 7:30pm
Keep track of everything on the class calendar
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 12 programming assignments, an open-ended term project and a final poster presentation. Programming assignments will contain questions that require Matlab/Octave 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.