CS229: Machine Learning

Summer 2019


Course Description   This course provides a broad introduction to machine learning and statistical pattern recognition. Topics include: supervised learning (generative/discriminative learning, parametric/non-parametric learning, neural networks, support vector machines); unsupervised learning (clustering, dimensionality reduction, kernel methods); learning theory (bias/variance tradeoffs, practical advice); reinforcement learning and adaptive control. The course will also discuss recent applications of machine learning, such as to robotic control, data mining, autonomous navigation, bioinformatics, speech recognition, and text and web data processing.


  • 06/21/19 Welcome to CS229! We look forward to meeting you on Monday 6/24 1:30 pm at Bishop Auditorium!
  • Course Information

    Time and Location
    MWF 1:30 PM - 3:20 PM, Bishop Auditorium
    Contact and Communication
    Piazza is the forum for the class.
    • All official announcements and communication will happen over Piazza.
    • Any questions regarding course content and course organization should be posted on Piazza. You are strongly encouraged to answer other students' questions when you know the answer.
    • If there are private matters specific to you (e.g special accommodations, requesting alternative arrangements etc.), please create a private post on Piazza.
    • For longer discussions with TAs and to get help in person, please attend office hours.
    • If there are confidential matters you want to report, please write to the Instructors or TAs over email, with subject including the term "CS229".
    • Answers to commonly asked questions and clarifications to the homeworks will be posted on the FAQ.
    Office Hours
    Office hours can be found here.
    Teaching Assistants
    Answers to frequently asked questions can be found here.


    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 in Python/numpy.
    • Familiarity with probability theory (CS 109 or STATS 116)
    • Familiarity with multivariable calculus and linear algebra (MATH 51)
    Course Materials
    There is no required text for this course. Notes will be posted periodically on the class syllabus.
    There will be three written homeworks and one take-home final. The assignments will contain written questions and questions that require some Python programming. We try very hard to make questions unambiguous, but some ambiguities may remain. Ask if confused or state your assumptions explicitly. Reasonable assumptions will be accepted in case of ambiguous questions.
    Course grades: will be based 60% on homeworks (20% each), 40% on the final.
    Extra credit: Active participation in the class (answering questions and constructive contributions on Piazza, attendence and involvement in Lectures for on-campus students) can earn you one higher letter grade (e.g B+ becomes A-) at the discretion of the instructor. The precise requirements for earning this is intentionally left vaguely specified.
    Submitting Assignments
    Assignments will be submitted through Gradescope. You should have received an invite to Gradescope for CS229 Machine Learning. Login via the invite, and submit the assignments on time. If you have not received an invite, please post a private message on Piazza.
    Late assignments
    Each student will have a total of three free late (calendar) days to use for your submissions. Once these late days are exhausted, any assignments turned in late will be penalized 20% per late day. However, no assignment will be accepted more than three days after its due date, and late days cannot be used for the final. Each 24 hours or part thereof that a homework is late uses up one full late day.
    Honor code

    We strongly encourage students to form study groups. Students may discuss and work on homework problems 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 write on the problem set the set of people with whom s/he collaborated.
    Further, since we occasionally reuse problem set questions from previous years, we expect students not to copy, refer to, or look at the solutions in preparing their answers. It is an honor code violation to intentionally refer to a previous year's solutions. This applies both to the official solutions and to solutions that you or someone else may have written up in a previous year.