Welcome to CME 250!

CME 250: Introduction to Machine Learning   


  • 10/27: The lecture portion of the course is finished - No lectures this week or for the rest of the quarter! 
    • We will hold office hours this Thursday (10/29) during the normal class time in the basement of Huang Engineering. 
    • All homework exercises are due by Monday November 2nd (5pm). 
    • The mini-project is due November 15th (midnight).  
  • 10/22: Mini-project data, description and requirements have been posted. 
  • 10/20: The "applied" homework exercises will be due on Monday, November 2nd at 5pm. Instructions for submission can be found on the Homework page.
  • 10/15: The mini-project data collection survey has been released and can be accessed here. The survey is mandatory for all students enrolled in the course for credit and must be completed by midnight on Sunday (Oct 18)
    • To confirm your completion of the survey, send a screen shot of the completion screen with to cme250-aut1516-staff [at] lists [dot] stanford [dot] edu  with the email subject "CME 250 PROJSURV" 
  • 10/12: If you did not receive an email from Alex with subject "Announcements" sent to the class on 10/06, please let the instructors know so we can manually add you to the course mailing list. 
  • 10/05: We've posted an optional 10 minute video review for those who would like to brush up on linear algebra for Tueday's lecture on PCA. 
  • 09/26: The enrollment cap has been expanded. All students should now be able to successfully enroll in axess. If you are unable to enroll or are waitlisted please email us, and we will fix it.
  • 09/25: CME 250 will be using Piazza to answer student questions. Please sign-up for Piazza and join the class forum here
  • 09/25: The classroom has moved to room 200-002, in the History Corner on the Main Quad (map).


  • Tuesday and Thursday, 4:30-5:50pm (with a total of 8 sessions): September 29, October 1, 6, 8, 13, 15, 20 and 22.
  • Location: EDUC 128, next to Green Library moved to 200-002 History Corner, Main Quad (map)
Lecture Topics (tentative)

Lecture 1 (Sept 29)

Introduction to Machine Learning
Lecture 3 (Oct 6)

Clustering and Dimensionality Reduction
Lecture 5 (Oct 13)

Penalities, Sparsity and Regularization
Lecture 7 (Oct 20)

Classification and Regression Trees (CART)
Lecture 2 (Oct 1)

Linear and Logistic Regression
Lecture 4 (Oct 8)

Cross-validation and Missing Data
Lecture 6 (Oct 15)

Logistic Regression and Support Vector Machines 
Lecture 8 (Oct 22)

Ensemble Methods (Random Forests)

Course Description

An four week short course presenting the principles behind when, why, and how to apply modern machine learning algorithms. We will discuss a framework for reasoning about when to apply various machine learning techniques, emphasizing questions of overfitting/underfitting, regularization, interpretability, supervised/unsupervised methods, and handling of missing data. The principles behind various algorithms—the why and how of using them—will be discussed, while some mathematical detail underlying the algorithms—including proofs—will not be discussed. Unsupervised machine learning algorithms presented will include k-means clustering, principal component analysis (PCA), and independent component analysis (ICA). Supervised machine learning algorithms presented will include support vector machines (SVM), neural nets, classification and regression trees (CART), boosting, bagging, and random forests. Imputation, the lasso, and cross-validation concepts will also be covered. The R programming language will be used for examples, though students need not have prior exposure to R.

Contacting Instructors
  • Questions relating to course content, assignments, requirements, etc. should be posted to the class Piazza forum.
    • For individual questions onlyplease send email to both instructors and include "CME 250" in subject heading.

Course Requirements 
  • Course is 1 unit, graded Satisfactory / No Credit.
  • To receive credit, students must complete a subset of short assigned homework exercises and complete a light mini-project to gain practical experience applying course concepts to a real data set. 
  • Details about the mini-project will be given later in the course. It will be due on midnight November 15th and a hard-copy of the write-up must be submitted by 5pm the next day.


Course assumes no prior background in machine learning. Previous exposure to undergraduate-level mathematics (calculus, linear algebra, statistics) and basic programming (R/Matlab/Python) helpful.