All times listed on the 416 course website are in Seattle time. If you are in another time zone, it is your responsibility to know how a due date in Seattle time relates to your time zone. You can use this site to translate times.


There are no differences between the STAT and CSE and A or B section of this course. We try our best to say CSE/STAT 416 everywhere, but sometimes we shorten it to CSE 416. Which class you are signed up for has no meaningful impact on this course except what shows up on your transcript and as your section in Canvas!


Machine learning (ML) touches all aspects of our lives. It informs financial decisions, policy decisions, and hiring decisions. It is used in cutting-edge scientific research. It enables us to communicate across lingual borders, to receive tailored news feeds, and to apply puppy filters to our faces. Yet, machine learning’s influence has been far from uniformly positive, with documented cases of discrimination against gender minorities, racial minorities, and low-income people, with devastating real-world consequences. It is crucial for members of our modern society to be able to understand and shape the machine learning systems that are having such a powerful impact on our lives. To that end, this course is designed to provide a thorough grounding in the methodologies, technologies, and algorithms of machine learning, as well as to provide frameworks to think about the positive and negative social impacts of machine learning systems. The topics of the course draw from classical statistics, from machine learning, from data mining, from statistical algorithms, and from science and technology studies.

The course is broken up into five overarching case studies (order might change):

  1. Regression
  2. Classification
  3. Deep Learning
  4. Clustering and Similarity
  5. Recommender Systems

Students entering the class should have a pre-existing working knowledge of probability, statistics and algorithms, although the class has been designed to allow students with a strong numerate background to catch up and fully participate. Students should also have a pre-existing working familairity with computer programming.


  • Programming: CSE 143, CSE 160, or CSE 163.
  • Statistics: STAT 311, STAT 390, STAT 391, IND E 315, or Q SCI 381.

Course Rigor

There are many places to learn about machine learning online and at the University of Washington. CSE/STAT 416 is intended for the broadest audience of students. We want to make sure everyone can leave this class with a strong foundational understanding of machine learning techniques and concepts. Our guiding philosophy for this course now and when we were originally designing it is:

Everyone should be able to learn machine learning, so our job is to make tough concepts intuitive and applicable.

In practice, this means:

  • We minimize pre-requisite knowledge as much as possible. Students enrolled in this course should not be scared of seeing something they haven’t seen before and we encourage an environment where students grow as learners.
  • We focus on important ideas and sometimes skip derivations or proofs to avoid getting bogged down. This does not mean proofs and derivations are not important (they are!), but we just don’t necessarily have the capacity to tackle them in this course. Alternate courses like CSE 446/546 or STAT 435 dive much deeper into the mathematical basis of machine learning.
  • We focus on the ability to apply theory to practice to best help students use these important concepts, or know when not to use them.

If you are a student that wants a much deeper course in machine learning, that’s great! We recommend keeping up with the optional readings we post, or consider taking CSE 446/546 or STAT 435.

Class Sessions

The class is primarily in-person this quarter, but lectures will be live-streamed using Panopto. Class time will be a mix of time for lecture and time for students to work on activities. Time in class spent on students actively participating in their learning has been shown numerous times to improve learning outcomes for students. To ensure there is time in class for these opportunities for active practice, we may also ask you to prepare to come to class each day by watching a pre-lecture video or reading a pre-lecture reading each day of class. The video or reading should take about 30 minutes to complete before class and the class session will begin where the pre-lecture content left off.

The live class sessions will be Monday/Wednesday, from 2:20 pm - 4:10 pm in SAV 260 and live-streamed on Panopto (access through Canvas). Lecture attendance is not recorded, but it is expected that you attend class in order to stay on top of the course. Recordings will be available of the live lectures, but it is encouraged that you attend the live session if you are able so that you can 1) benefit from active participation with with your peers and 2) ask questions during class. After every lecture there will be a checkpoint, in the form of an EdStem quiz, to help you test your retention of lecture concepts and identify areas you might need to study more.

We recommend the following workflow to help you get the most out of your time with us during the quarter. For each day of class:

  • Complete the Pre-Lecture Content: On days where there is pre-lecture content, watch the videos for the day. Learning is a process of trial and error! Write down your though process and if the explanation provided in the video/reading reveals something you didn’t think of originally, make sure to write that down!
    • You should definitely be taking notes to refer to later! The videos will be broken up into smaller portions, so use the time before starting the next video to make sure your notes on the last section are complete.
    • Take pauses to pause and reflect on what you’re learning so far. How does this new concept relate to a past one? What doesn’t quite make sense about this yet?
  • Attend the Class Session: Come to class prepared with your notes from the pre-lecture content and what you found hard to understand or what you want to learn more about. We will start with a brief overview of the pre-lecture content and then dive in to the material for the day. There will be periodic time to answer questions that come up in class and time to work in groups on interactive exercises.
  • Reflect: Now that you got some practice with the material for the day, it’s time to reflect on what you learned and you how you felt the day went. Write down a closing section of your notes to summarize what you learned and leave notes to yourself about what you might need to study more.
    • In a few sentences, describe in your own words what you learned learned today.
    • Why did we learn this concept?
    • How does this concept relate to what we’ve learned previously?
    • What parts did you find tricky? Are there things you feel like you still need to work on more before you master the concept?
  • Checkpoint: Complete the checkpoint to test your retention of lecture concepts. Checkpoints are due 30 mins before the next lecture. We recommend you complete it the day after lecture, so the concepts have had time to sink in.

You’ll find that with a topic like machine learning, which has many interconnected concepts, having a good set of notes to work from as a knowledge base is very important. Your goal is to try to build up a mental model for: (1) which techniques or ideas are relevant to a particular situation; (2) how one idea compares/contrasts with another; and (3) recalling terms and definitions from class. Trying to write these down as you go is an important step in the learning process, even though it takes extra time while you are taking notes. We’ll come back to this idea later in the syllabus, but you’ll find a good set of notes made during the week will be quite helpful when it comes time to do the weekly Learning Reflections.

Discussion Sections

There are also discussion sections on Thursdays that will operate to provide structured practice. Sections will differ from our M/W class sessions in that they are smaller and run by the teaching assistants (TAs). Sections will focus on tying together concepts from the various days and giving you programming experience that will help prepare you for your weekly homework assignments! Attendance in the class sessions and discussion sections are not recorded or used as part of your grade. However, it is expected that you are showing up and participating as much as you can to maximize your learning!

Sections are held in-person. You’re welcome to attend any section, even if you’re not officially registered to attend that one.

Required Coursework

There will be four categories of course work you will do in this class:

Homeworks (weekly)

Deadline: 11:59pm every Tuesday, completeed individually.

Longer programming and conceptual assignments that will assess your mastery of the skills and concepts covered in class. Homework assignments primarily cover topics from the lectures that week (e.g., the homework released on week 4 will cover the lecture content from Mon and Wed of week 4). Each homework is generally divided into two parts:

  • Programming: This part involves writing Python code for specific programming problems that apply various machine learning topics learnt in class. You will write your code locally on EdStem (for most assignments) or Google Colaboratory. You will submit your code on EdStem (for most assignments) or Gradescope, where there will be an autograder to ensure your code’s full accuracy. Autograder score is visible at the time of submission, and the autograded score on your last submission is final. For programming assignments that are autograded (most assignments), we won’t attempt to read your code, so there’s no need to worry about style. However, we won’t award extra points for effort if your code fails, so please make sure to debug. Please do not hard-code your variables, as we will use different datasets for the unit tests.

  • Conceptual: Conceptual questions check your understanding of the core machine learning concepts taught in the course. There will be two types of questions: (1) multiple choice, which are similar to checkpoint questions; and (2) free response, which will require you to defend your answers and show detailed work to ensure you have a thorough understanding of class concepts. The conceptual component of the homework is hosted on Gradescope, and you have unlimited attempts before the deadline. Unlike the checkpoint questions, you won’t know the autograded score until after the deadline.

In summary, all conceptual assignments must be submitted on Gradescope for credit, and unless otherwise stated programming assignments must be submitted on EdStem for credit.

Checkpoints (every lecture)

Deadline: 1:50pm before the next lecture

To go along with each lecture, there will be a “Checkpoint” for you to take on EdStem. Each checkpoint will consist of a few questions that help you test your understanding of concepts covered in the pre-lecture content and lecture. The questions are intended to be straightforward to answer and are provided to help you better assess your learning through the course. Each checkpoint should not require more than 20-30 minutes. Checkpoint questions come in two forms: multiple choices (selecting one choice or many choices) and numerical answers. You have unlimited attempts on these questions. Once you get a question right, you should be informed that the answwer is correct along with an explanation. Checkpoints are graded on both completion and correctness; to earn the points for a checkpoint, you need to successfully complete all sections (called a “slide”) of the checkpoint before the due date. Solutions will be available after the deadline.


On EdStem, you will see a green checkmark next to each slide you complete. If you complete all of the slides in a checkpoint, you will see a green checkmark on the main page of lessons in Ed. This green checkmark on the lesson itself (not the individual slides) means you have earned an E for the entire checkpoint. See Ed for more information!

Checkpoints will be due 30 minutes before the next class. So for a class on Wednesday, the checkpoint for that day is due the following Monday at 1:50pm. Checkpoints can be submitted up to 7 days late after the day they were due for 50% credit. You will submit Checkpoints on EdStem in the “Lessons” tab under that day’s lesson.

Learning Reflections (weekly)

Deadline: 11:59pm every Friday

To aid your process of learning in this course, we will ask you to build up your own reference sheet for each week so that you can better look back at what you learned each week. More details on what you should turn in can be found here, but it is meant to be a low-stakes form of staying on top of the course. What we ask you to turn in is rather narrow in scope in the scope of your learning, so you are encouraged to keep other notes or reference materials outside of what we ask you to turn in!

You will submit learning reflections on Gradescope.

Final Exam

The final exam will be a take-home exam released on Wed 8/17 at 9:00am and due Thurs 8/18 at 11:59pm. It will be designed to take the length of one lecture (1 hour 50 minutes) to complete, and you can complete it anytime in the 24+ hour window it is open. To free up time for taking the final exam, lecture and discussion sections will be canceled on the days the final exam is open. You may refer to any notes you took during this class, or any of the course material (e.g., on the course website, EdStem, or Gradescope). However, you may not refer to any other website or source while taking the final exam.

You will complete and submit the final exam on Gradescope.

Late Work


Each student receives six late days for the entire quarter. You may use up to 2 late days on each homework except the last one, and each late day allows you to submit up to 24 hours late without penalty. For example, if you submit a homework assignment on Thurs 11:59PM, that will count as two late days. Once a student has used up all their late days, each successive day that an assignment is late will result in a loss of 10% on that assignment. The deduction will not be immediately applied, but will be reflected in the final grades you see on Canvas by the end of the quarter. It is your responsibility to track how many late days you have used in the quarter. You do not need to contact the course staff if you want to use a late day; our tools are set up to allow you to turn in late by your choice. There is a small grace period for last-minute submission issues, but you should plan ahead to avoid depending on it.

No assignment may be submitted more than 2 days (48 hours) late without permission from the course instructor. If unusual circumstances truly beyond your control prevent you from submitting an assignment, you should discuss this with the course staff as soon as possible. If you contact us well in advance of the deadline, we may be able to show more flexibility in some cases.


You cannot use late days on checkpoints. However you can turn them in up to a week after their due date for 50% credit.

Learning Reflections

You cannot use late days on learning reflections. We do not accept late submissions.

Note on Extenuating Circumstances: If you have extenuating circumstances for an assignment, please contact the instructor as soon as possible to discuss accommodations. See the section below on Extenuating Circumstances.


Grade Breakdown

Your percentage grade in this course will be weighted using these categories:

Category Total Num Weight
Homeworks - Programming 7 40%
Homeworks - Conceptual 7 25%
Checkpoints 14 10%
Learning Reflections 8 10%
Final 1 15%
Total 100%

We will also drop your lowest 2 Checkpoints and 1 Learning Reflection in your final grade computation.

There may be small extra credit opportunities as well, but these will not make a major impact in course grades. The extra credit can affect your grade by potentially pushing you up to the next grade point if you are very close (e.g. 3.0 to 3.1). They are meant to be fun extensions rather than required parts of the course. Our advice is to complete extra credit for your own learning or review, but it is unlikely to be an efficient use of your time if you are completing it solely to boost your grade.

Course Grades

A very common question students ask is: “Is this class curved?” Curving is generally seen as process of assigning course grades so that there is a fixed, pre-determined mean or median (although there are many different things people can mean when something is curved). We do not curve in this course!

Instead, we will assign course grades using a bucket system: if you earn at least the percentage specified in the left column, your course grade will be at least the grade listed on the right. These are minimum guarantees: your course grade could be higher than what this table suggests. Do note, we do not make any guarantees of the course grades within these buckets.

Percent Earned Course Grade
90 3.5
80 3.0
70 2.5
60 2.0
50 0.7

If you have a specific goal in your course grade, please feel free to reach out to the course staff or directly to the instructor and we can work together to talk about what you can expect in terms of meeting that goal.

Getting Help from Staff & Peers

There are two primary ways to get help from course staff: office hours and the EdStem discussion board. Office Hours are scheduled times where you can meet with members of the course staff synchronously to discuss course concepts, get assistance with specific parts of the assignments, discuss computer science and/or life outside of it, and work with peers and course staff in a small group setting. The EdStem discussion board is a way to asynchronously get answers to your questions. You can submit questions anonymously or privately to the course staff if you prefer.

NOTE: for most forms of help like conceptual misunderstandings, debugging code, or pointers in the right direction, we _strongly encourage- students to attend office hours. We may even respond to a student’s EdStem question asking them to come to office hours instead. EdStem should be primarily used for questions that don’t require back-and-forth interaction, like clarifying questions, pointing out typos, etc.

Finally, you will make a lot of academic progress by making friends and interacting with other peers. We strongly encourage you to form study groups by exchanging contact information with your peers and working together to review course concepts.

Academic Honesty and Collaboration Policies


Learning is a collaborative process, and everyone benefits from working with others when learning new concepts and skills. In general, we encourage you to collaborate with your classmates in your learning and take advantage of each others’ experience, understanding, and perspectives.

However, there is a difference between learning collaboratively and completing work for someone else. This can be a subtle but important distinction. Ultimately, the goal of the course is to ensure that every student masters the material and develops the skills to succeed in future courses, projects, and other related work. Submitting work that is not your own, or allowing another student to submit your work as their own, does not contribute toward developing mastery. In addition, this deprives you of the ability to receive feedback and support from the course staff in addressing the areas in which you are struggling.

For more information, consult the Allen School policy on academic misconduct.

Permitted and Prohibited Actions

Sometimes the line between productive collaboration and academic dishonesty can be confusing. The following is a partial list of collaborative actions that are encouraged and prohibited. This list is not intended to be exhaustive; there are many actions not included that may fall under either heading. This list is here to help you understand examples of things that are/aren’t allowed. If you are ever unsure, please ask the course staff before potentially acting in a way that violates this policy.


The following types of collaboration are encouraged:

· Discussing the content of lessons, sections or any provided examples.

· Working collaboratively on solutions to practice problems or checkpoints.

· Posting and responding to questions on the course message board, including responding to questions from other students (without providing assessment code; see below).

· Describing, either verbally or in text, your approach to a take-home assessment at a high-level and in such a way that the person receiving the description cannot reliably reproduce your exact work. Such description should be in English or another natural human language (i.e., not code).

· Asking a member of the course staff about concepts with which you are struggling or bugs in your work.


The following types of collaboration are prohibited and may constitute academic misconduct:

· Looking at another person’s submission on a take-home assessment, or substantially similar code, at any point, in any form, for any reason, and for any amount of time. This restriction includes work written by classmates, family members or friends, former students, and online resources (such as GitHub or Chegg), among other sources.

· Showing or providing your submission on a take-home assessment to another student at any time, in any format, for any reason.

· Submitting work that contains code copied from another resource, even with edits or changes, except for resources explicitly provided by the course staff.

· Having another person “walk you through” work you submit, or walking another person through work they submit, such that the work produced can be entirely and reliably reconstructed from the instructions provided. (That is, submitting work that you produced simply by following instructions on what to write.) This restriction includes classmates, former students, family members or friends, paid tutors or consultants, “homework support” services (such as Chegg), etc.

If you discuss a assignment with one or more classmates, you must specify with whom you collaborated in the header comment in your submission. You may discuss with as many classmates as you like, but you must cite all of them in your work. Note that you may not collaborate in a way that is prohibited, even if you cite the collaboration.


A good rule of thumb to ensuring your collaboration is allowed is to not take written notes, photographs, or other records during your discussion and wait at least 30 minutes after completing the discussion before returning to your own work. You could use this time to relax, watch TV, listen to a podcast, or do work for another class. For most students, this will result in you only bringing the high-level concepts of the collaboration back to your work, and ensuring that you reconstruct the ideas on your own.

Instead of utilizing forbidden resources, we hope you will submit whatever work you have, even if it is not yet complete, so you can get feedback and revise your work later. If you are ever in doubt if a collaboration or resources is permitted or not, please contact a member of the course staff.


The course staff has endeavored to create an environment in which all students feel empowered and encouraged to submit their own work, regardless of the quality, and avoid prohibited collaboration. However, despite our best efforts, students may occasionally exercise poor judgement and violate this policy. In many cases, these students come to regret this decision almost immediately. To that end, we offer the following opportunity for amnesty:

If you submit work that is in violation of the academic conduct policy, you may bring the action to the instructor’s attention within 72 hours of submission and request amnesty. If you do so, you will receive a reduced grade on just that assignment but no other further action will be taken. This action will not be shared outside of the course staff and will not be part of any academic record except in the case of repeated acts or abuses of the policy.

This policy is designed to allow students who have acted in a way they regret the opportunity to correct the situation and complete their work in a permitted way. It is not intended to provide forgiveness for violations that are detected by the course staff, nor to be invoked frequently. It is still in your best interest to submit whatever work you have completed so that you can receive feedback and support.

Software and Textbooks

Most of the course will be run on EdStem. This includes the checkpoints, as well as the discussion board and where you can complete coding portions of assignments. We will use EdStem to turn in checkpoints, and Gradescope to turn in the homeworks and learning reflections.

There is no official textbook for the course yet (we are currently working on one!) so any readings or videos will be posted on the course website.

One of the benefits of using EdStem is that it comes fully featured with an online programming environment. This means you do not need to install any software as long as you can work online! If you would like to set up Python for local development, we will use Python 3 installed via Anaconda on all programming assignments and Jupyter Notebooks are the editors we will use for our programming. You may use other installations of Python or IDEs, but the course staff may not necessarily be able to help you with any set-up related questions you may have.

This quarter, we will use a number of different tools in CSE/STAT 416. Reach out to the course staff if you have questions about using any of them. Please see the Course Tools page for more information about the particular tools we will use this quarter and our policies surrounding them.


During the scheduled class sessions, some time will be spent having you work with your peers in small groups. To accommodate students who can not make the actual class time, we provide live-streamed recordings on Panopto. However, only the instructor’s voice will be heard clearly. If you were to speak in the classroom during lectures, that will not likely to be heard in the recordings. The recordings will only be accessible to students enrolled in the course to review materials. These recordings will not be shared with or accessible to the public.


All students are welcome in CSE/STAT 416 and are entitled to be treated respectfully by both classmates and the course staff. We strive to create a challenging but inclusive environment that is conducive to learning for all students. If at any time you feel that you are not experiencing an inclusive environment, or you are made to feel uncomfortable, disrespected, or excluded, please report the incident so that we may address the issue and maintain a supportive and inclusive learning environment. You may contact the course staff or the CSE academic advisors to express your concerns. Should you feel uncomfortable bringing up an issue with a staff member directly, you may also consider sending anonymous feedback or contacting the UW Office of the Ombud.

Course Climate

Extenuating Circumstances: “Don’t Suffer in Silence”

We recognize that our students come from varied backgrounds and can have widely-varying circumstances. We also acknowledge that the Covid-19 pandemic is ongoing, which gives rise to challenging and unique situations. If you have any unforeseen circumstances that arise during the course, please do not hesitate to contact the instructor to discuss your situation. The sooner we are made aware, the more easily we can provide accommodations.

Typically, extenuating circumstances include work-school balance, familial responsibilities, health concerns, or anything else beyond your control that may negatively impact your performance in the class. Additionally, while some amount of “productive struggle” is healthy for learning, you should ask the course staff for help if you have been stuck on an issue for a very long time.

Life happens! While our focus is providing an excellent educational environment, our course does not exist in a vacuum. Our ultimate goal as a course staff is to provide you with the ability to be successful, and we encourage you to work with us to make that happen.


Your experience in this class should not be affected by any disabilities that you may have. The Disability Resources for Students (DRS) office can help you establish accommodations with the course staff.

DRS Instructions for Students

If you have already established accommodations with DRS, please communicate your approved accommodations to the lecturers at your earliest convenience so we can discuss your needs in this course.

If you have not yet established services through DRS, but have a temporary health condition or permanent disability that requires accommodations (conditions include but not limited to; mental health, attention-related, learning, vision, hearing, physical or health impacts), you are welcome to contact DRS. DRS offers resources and coordinates reasonable accommodations for students with disabilities and/or temporary health conditions.

Reasonable accommodations are established through an interactive process between you, your lecturer(s) and DRS. It is the policy and practice of the University of Washington to create inclusive and accessible learning environments consistent with federal and state law.

Religious Accommodations

Washington state law requires that UW develop a policy for accommodation of student absences or significant hardship due to reasons of faith or conscience, or for organized religious activities. The UW’s policy, including more information about how to request an accommodation, is available at Religious Accommodations Policy. Accommodations must be requested within the first two weeks of this course using the Religious Accommodations Request form.