Below is the syllabus for the course. We’re excited to be teaching you this semester!


Course Overview

The homepage has a week-by-week coverage on the topics covered in this course. Note, this course is focused on teaching the basics of machine learning and a light coverage of deep learning models.

Here are other courses offered by the EECS department that are adjacent to machine learning:

  • CS 188 (Artificial Intelligence) - covers classical approaches to learning, including search, logical planning, games, Bayesian models, and a deeper coverage of Markovian models.
  • CS 182 (Deep Learning) - covers more recent deep learning architectures in greater detail.
  • CS 280 (Computer Vision) - covers advances in the field of vision models in the past 20-30 years.
  • CS 281A (Statistical Learning Theory) - delves into greater detail about statistical learning than CS 189/289A.
  • CS 285 (Deep Reinforcement Learning) - covers recent advances in the fields of robotics, imitation learning, control theory, and reinforcement learning.
  • CS 288 (Natural Language Processing) - covers techniques used to understand patterns and perform tasks on text. Also covers recent advances in language models.

In-Person Instruction

CS 189 will be taught fully in person this semester, unless conditions change and university policy mandates otherwise. We are planning to record lectures, but we won’t be releasing the recordings on an ongoing basis. Instead, we currently plan to release lecture recordings in two batches shortly before the midterm and final exams, with the intention that they be used for studying.


Auditors are welcome to attend lecture only if there are extra seats available in the lecture hall. We anticipate that lectures will be very full for the first couple weeks of the semester. Unfortunately, we cannot devote instructional resources to auditors, but you are welcome to use materials that are posted publicly on this site. We will not be adding auditors to bCourses or to Ed Discussion, and auditors may not attend discussion sections or office hours.

Non-EECS Graduate Students

If you are a graduate student from a department other than EECS who is blocked from joining the CS289A waitlist, please email the Head GSI ASAP with your department and degree program. We unfortunately cannot guarantee that any non-EECS students will be admitted into the course, but we can send you a form to fill out to express your interest in enrolling.

Concurrent Enrollment Students

Concurrent enrollment applications are processed during the first few weeks of the semester, and we cannot provide any guarantee whether these applications may be approved. If you’d like to be added to the Gradescope and Ed, please email the Head GSI.

DSP Students

We will only offer accomodations to students who have letters of accomodation through the DSP (Disabled Students’ Program). Please visit to get more information on getting a letter of accomodaton (LoA).

If your LoA says that you would require assignment extensions, only then will late homeworks be accepted.

If your LoA requests for extended time on exams, you will receive an exam reflecting this extended time, and you’ll receive an email closer to exam dates about your room location (which will likely not be the main room).


Ed Discussion

We will use Ed Discussion as the “one-stop shop” throughout the semester for a Q&A forum and for official announcements. Enrollment in Ed Discussion is mandatory. If you have not yet been added to the CS 189 Ed, please email the Head GSI. If you have questions about anything related to the course, please post them on Ed rather than emailing the instructor or TAs. Please do not post anything resembling a solution to a homework problem before it’s due. If in doubt, you should make your post private (visible to instructors only). We always welcome any feedback on what we could be doing better. You are required to use your actual name on Ed.


All homework will be submitted through Gradescope, and all grades will be returned through Gradescope. If you have not been added to Gradescope, please email the Head GSI.


We will use bCourses to upload lecture recordings for this course just before exams. Only people officially enrolled into the class will be able to access bCourses (i.e. if you are auditing or awaiting concurrent enrollment, we cannot add you to bCourses). bCourses should automatically add you to the CS 189/289A bCourses, but if you cannot accessit, please email the Head GSI.

Instructional Servers

This course does not make use of instructional accounts, but if you would like a computer account for this course, go to, or click ‘WebAcct’ on

Class Support

Professor Office Hours

Professors will host office hours after lecture everyday from 3:30 PM to 4:30 PM. Please use this time to ask more conceptual questions or talk to the Professors. If you have in-depth homework help, please visit GSI office hours instead.

GSI Office Hours

GSIs will hold office hours throughout the week to answer conceptual, homework, and discussion questions.

When requesting help in office hours, please make a ticket at, and have notifications turned on for when a GSI is ready to help answer your question. Please add a note on what question you need help for, so that we can group similar tickets together and get your question answered faster!

Note: GSIs are not required to debug your code. Because office hours tend to have long wait times, course staff needs to be fair in answering as many questions as possible, and it’s thus infeasible for a GSI to spend 20 minutes debugging someone’s code. Before you make a code debugging-related ticket, please take time to thoroughly debug your code. Thank you!

Homework Party

We will be hosting a homework party every week in the Wozniak Lounge (Soda 430-438), informally called the “Woz”, on Fridays 1:00 PM to 3:00 PM. Please follow the same guidelines as GSI office hours.

GSIs will setup tables for each problem, so please sit at the table assigned for the specific problem you’re working on. Not only will this help us get to answer more people’s questions at once (and reduce your wait time), but you’ll also be able to think about solutions together with other students. Please keep in mind the Academic Integrity and Collaboration policies below though.


The grading breakdown for this class will be:

  • Homework: 20%
  • Midterm: 35%
  • Final: 45%

Note: CS 189 and CS 289A will be graded on separate curves. Also, CS 289A students will have extra exam question(s) for the midterm and final. There is no class project.


Homeworks will be a combination of math problems and coding assignments, both of which will be submitted to Gradescope. Coding tasks may be autograded or graded by readers. Instructions for where to submit will be given on each homework.

There will be about 7 homeworks for this class, released 2 weeks at a time. Readers will grade homeworks throughout the semester, and grades will be released on Gradescope. If you wish to request a regrade on a homework assignment, you have 5 days to do so. Any regrade requests after this time window will not be considered by course staff. Doing the homeworks and reading the solutions is vital for your learning. You are expected to show your work and justify all of your answers.

We are implementing the following policy to reduce student stress: homework will be scored out of 80%. In other words, your final homework score will be computed as such: Final HW Score = min(Raw HW Score / 80%, 100%). For instance, if you scored a 50% on the homework, then your actual grade is 50/80. If you scored a 80% on the homework, then your actual grade is 80/80. If you scored 80+ on the homework, then your actual grade is capped at 80/80.

Your lowest two homework scores will be dropped, but these two drops should be reserved for emergencies. We will not grant additional homework drops or homework extensions for any reason.


Discussion worksheets are released the day before the first discussions of the week. The discussion sections may cover new material and will give you additional practice solving problems. You may attend whichever, as many, and as few discussion sections as you like.


The midterm is Friday, October 13 from 7:00 PM to 9:00 PM in Pimentel 1. The final is tentatively scheduled for Tuesday, December 12, from 8:00 AM to 11:00 AM, with location TBD. All students are required to take exams in person. No alternate exams will be offered. Please make a private Ed post if you have an extreme hardship related to these policies.

Academic Integrity

Ethical behavior is an important part of being an engineer. It is a part of our responsibility to act ethically and honestly, and moreover, ethical behavior is what helps you learn best. Cheating is fundamentally dishonest and antisocial behavior. We have a zero-tolerance policy for cheating. Any offense will result in negative points for the category that the offense occurs in, with no bound on how negative it can go, and a referral to the Center for Student Conduct.

You are not permitted to upload any of our problems, solutions, or your own solutions to our problems to any site that is accessible by other people. Use Ed to discuss content. The only limited exceptions to this are online communication mediums between you and the collaborating individuals explicitly listed on your homework assignment. Looking at online solutions from previous semesters or other students is forbidden, as is sharing of your solutions with others. Furthermore, students all have an affirmative duty to report possible cases of cheating or unauthorized communication to the course staff, immediately. Acknowledgement of and failure to report cheating implicates the bystander since this is academic misconduct. Cheating hurts us all and engineering ethics requires us to point out wrongdoing when we are aware of it.


You are encouraged to work on homework problems in study groups of up to five people, however, you must always write up the solutions on your own. You are not permitted to look at the final written solution even for members of your own study group. Similarly, you may use books or online resources (not solutions from previous terms) to help solve homework problems, but you must always credit all such sources in your writeup and you must never copy material verbatim. We believe that most students can distinguish between helping other students and cheating. Explaining the meaning of a question, discussing a way of approaching a solution, or collaboratively exploring how to solve a problem within your group is an interaction that we strongly encourage. But you should write your homework solution strictly by yourself. You must explicitly acknowledge everyone whom you have worked with or who has given you any significant ideas about the homework.