CS229: Machine Learning

Summer 2020


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.


  • Welcome to CS229 Summer 2020! We look forward to seeing you all in the first course introduction meeting on Monday 06/22 at 13:30. You can find the Zoom link and password in Canvas.

  • Course Information

    Time and Location
    We will be re-purposing lectures from Summer 2019, made available under Course Videos in Canvas.
    Contact and Communication
    Due to a large number of inquiries, we encourage you to read the logistic section below and the FAQ page for commonly asked questions first, before reaching out to the course staff.
    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, please attend office hours.
    • TA office hours and the course calendar can be found here.
    • Before the beginning of the course, please contact the course coordinator Swati Dube Batra for logistical questions (ideally after consulting the FAQ page)


    1. Prerequisites
    2. 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 (relevant classes incldue, but not limited to MATH 51, MATH 104, MATH 113, CS 205, CME 100, CME 103)
    3. Course Materials
    4. There is no required text for this course. Notes will be posted periodically on the class syllabus.
    5. Piazza and Gradescope
    6. We use Piazza for Q&A and Gradescope for assignment submission.
      Piazza and Gradescope access will be granted after enrollment to the class as we periodically synchronize with the official course roaster.
    7. Grading
    8. There will be three assignments and one final exam. The assignments will contain written questions and questions that require some Python programming.
      Course grades: Each assignment worth 20% and final exam contributes to 40% of the total grades. Note: This quarter's grading basis is Letter or CR/NC.
    9. Submitting Assignments
    10. Assignments will be submitted through Gradescope. You will receive an invite to Gradescope for CS229 Machine Learning Summmer 2020. If you have not received an invite email after the first few days of class, first log in to Gradescope with your @stanford.edu email and see whether you find the course listed, if not please post a private message on Piazza for us to add you. This quarter, students are allowed to submit in pairs. If you do so, make sure both names are attached to the Gradescope submission. However, students are not allowed to work with the same partner on more than one assignment.
    11. Late Assignments
    12. Each student will have a total of three free late (calendar) days to use for homeworks. 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. Each 24 hours or part thereof that a homework is late uses up one full late day. Please note that late days are applied individually. If an assignment is submitted late, then each student in the submission is docked the corresponding number of late days (for example, if an assignment is submitted 5 hours late, each student will be docked 1 late day).
    13. Honor Code
    14. 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 solution independently, and without referring to written notes from the joint session. Students submitting in a pair act as one unit - they may share resources (such as notes) with each other and write the solutions together. Note that both of the two students should fully understand all the answers in their submission, even though only one of them needs to write up a solution to a question. In other words, each student must understand the solution well enough in order to reconstruct it by him/herself. In addition, each student must write on their assignment submission the set of people with whom s/he collaborated.

      It is an honor code violation to copy, refer to, or look at written or code solutions from a previous year, including but not limited to: official solutions from a previous year, solutions posted online, and solutions you or someone else may have written up in a previous year. Furthermore, it is an honor code violation to post your assignment solutions online, such as on a public git repo.

      The Stanford Honor Code.

      The Stanford Honor Code as it pertains to CS courses .

    15. Lecture Video Policy
    16. All lectures this quarter are recorded and released on Canvas. For your convenience, you can access these recordings by logging into the course Canvas site. These recordings might be reused in other Stanford courses, viewed by other Stanford students, faculty, or staff, or used for other education and research purposes. Note that while the cameras are positioned with the intention of recording only the instructor, occasionally a part of your image or voice might be incidentally captured. If you have questions, please contact a member of the teaching team.
    17. Zoom Office Hours and Queue Status
    18. We will be using QueueStatus and Zoom to hold remote office hours this quarter. After putting your name in the queue (can be found here), please watch for messages from the TAs on QueueStatus. If there are several people in the queue, we will ask that everyone who has the same question also join the Zoom meeting, so we can process people in parallel.
    19. Incomplete Requests from Previous Quarter
    20. If you have an Incomplete from previous quarter and you wish to complete the course this quarter, please contact one of the instructors/TAs to notify us that you would like to complete CS229 this quarter.

    Teaching Assistants