CS229a: Applied Machine Learning

Spring 2019


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, and basic linear algebra such as Math 51. 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. Consent of instructor required.


  • The first day of class is on April 8th, 2019 in 200-002. We will all be meeting there from 1:30 to 2:50 pm. Coursera invites will go out on Thursday April 4th.
  • Welcome to CS229a! Sections will be assigned on Tuesday April 9th 2019 If you are assigned to the monday section and monday is a holiday come to the Tuesday section!

Course Information

Time and Location
Other than the first day of class where we will all meet on Monday April 8th in 200-002. You will be attending one section every week. 3 sections will be proposed every week. Choose one and stay in it throughout the quarter. The proposed times will be given out on Week 2.
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 Piazza. 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 piazza if you need anything!
Office Hours - Huang Basement
Check out the 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. (CS 109 or STATS 116)
  • Basic linear algebra (Math 51)
Course Materials
If you are enrolled in CS229a, 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 Thursday 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 10min 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%, Attendance 5%, Midterm: 25%, Project 25%.
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 probelms 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.