CS129: Applied Machine Learning

Fall 2019

Instructors

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. Consent of instructor required.

Announcements

  • The first day of class is on September 24th, 2019 in 300-300. We will all be meeting there from 10:30 am to 11:50 am. Coursera invites will go out that day.
  • Starting the second week of classes we will have two possible sections you can attend. (They are both the same, so you only have to attend one). The first one is the usual Tuesday 10:30-11:50 am in 300-300 and the second one will be on Wednesday 9:00-10:20 am in 300-300. You only have to attend one section. Pick one and stay in it through out the rest of the quarter so you can get to know everyone in it.

Course Information

Time and Location
Section 1: 300-300 on Tuesdays 10:30-11:50 am
Section 2: 300-300 on Wednesdays 9:00-10:20 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 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
Younes: 8:30 - 10:20 am on Tuesdays
Paul: 4:30 - 6:30 pm on Mondays and 9:00-10:00 am on Thursdays
Keep track of everything on the class calendar
Course Advisors


Logistics

Prerequisites
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.
Grading
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.