CSE/STAT 416, Summer 2019: Syllabus

CSE/STAT 416: Introduction to Machine Learning

Overview (link)

Teaching staff:

Times:

  • Lecture: Monday & Wednesday from 9:40 to 11:50 in GWN 301
  • Final Exam Wednesday, August 21 from 9:40 am - 11:50 am, GWN 301

Other:

  • Prerequisite:
    • One of CSE 143, CSE 160, or CSE 163
    • One of STAT 311, STAT/MATH 390, or STAT 391
  • Course website: https://cs.uw.edu/416

Goals (link)

It is hard to imagine anything more fascinating than automated systems that improve their own performance. The study of learning from data is commercially and scientifically important. This course is designed to provide a thorough grounding in the methodologies, technologies, and algorithms of machine learning. The topics of the course draw from classical statistics, from machine learning, from data mining, and from statistical algorithmics.

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

The course is broken up into five overarching case studies

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

Assessment (link)

Here is how your grade will be calculated:

  • Homeworks: 70%
    • Programming Portion: 55%
    • Concept Portion: 15%
  • Final Exam: 30%

This maps to the 4.0 grade scale roughly as follows. You will get at least the grade below for the percentages shown:

  • 90% at least 3.5
  • 85% at least 3.0
  • 80% at least 2.5
  • 75% at least 2.0
  • 70% at least 1.5
  • 60% at least 0.7

Homework

Most weeks, there will be a homework assignment that is generally divided into two parts. The first is a programming assignment that will involve writing Python code, processing and analyzing data, and answering open ended questions all based on that analysis. The second part focuses on answering conceptual questions at a high level or might involve doing some calculation by hand. Each of these portions contribute to your grade separately as per the section above.

Homework assignments should be completed individually by each student without the use of materials outside the class. Please refer to the Academic misconduct policy.

If you are not satisfied with a grade you receive on a homework, you should refer to the regrade policy.

Final Exam

There will be one written final exam in the course on the last day of class. You will be allowed a single sheet of 8.5"x11" paper for notes (both sides).

Make-up exams will only be given in case of a serious emergency. If you miss an exam, even if you are sick or injured, you must contact Hunter BEFORE the exam (or arrange for someone to do so). You must show evidence that you are physically unable to take the exam. No make-ups will be granted for personal reasons such a travel or conflicting schedules. No accommodations will be made for students who arrive late to exams. The only accommodations for exams that will be made are those that correspond to the University's official accessibility guidelines, which must be reflected in your student account.

Late days (link)

Each student receives 4 "late days" for use on homework assignments. A late day allows you to submit a program up to 24 hours late without penalty. For example, you could use 2 late days and submit a program due Thursday 11:30pm on Saturday by 11:30pm with no penalty. Once a student has used up all the late days, each successive day that an assignment is late will result in a loss of 10% on that assignment. Regardless of how many late days you have, you MAY NOT submit a program more than TWO days after it is due. Leftover late days have no impact on your grade.

If unusual circumstances truly beyond your control prevent you from submitting an assignment or attending an exam on time, you should discuss this with the course staff ASAP. If you contact us well in advance of the deadline, we may be able to show more flexibility in some cases.

Academic honesty and collaboration (link)

We take academic honesty very seriously. Cheating not only deprives you of practice and understanding, but is also unfair to the rest of your class. Therefore, please restrict attention to the materials provided as a part of this course (lecture slides, quiz section handouts, etc.) when solving the programming assignments and concept quizzes and do not copy answers from anywhere. If you do happen to use other material, it must be acknowledged clearly with a citation on the submitted solution. Reading unauthorized material will be considered cheating. Please ask us if you unsure about the use of a particular reference.

You are still, however, encouraged to discuss assignments and course content on a high level with your classmates so long as you:

  1. Make a serious attempt on each and every problem or coding project before discussing it with others.
  2. Limit cooperation to just group discussion and brainstorming. A good rule of thumb is that you should not take away any written notes, photographs, or other records from your brainstorming session.
    • Do not show your code to another student, nor should you look at another student's code directly. This includes current and former students, tutors, friends, paid consultants, people on the internet etc...
    • Do not post your homework solution code publicly online for any reason.
    • Some of the concept questions might have multiple choice answers. These are generally much more difficult to talk about at a high level since we don't want you telling anyone which answers are correct or incorrect. Again, your discussions should be at a high level and should not discuss the actual answers.
  3. Write up each and every problem in your own writing, using your own words. (Similarly, you must write code on your own).
  4. List each person you collaborated with at the top of your written homework or in your project writeup and which parts you collaborated on.

If you have a specific question about your code or written work, the only person you may show your work is a member of the course staff.

Cheating: If you do not follow these rules, you will be considered to have cheated. Cheating is a very serious offense. If you are caught cheating, you can expect a failing grade and initiation of a cheating case in the University system. Cheating is an insult to other students, to the instructor, and to yourself. If you feel that you are having a problem with the material, or do not have time to finish an assignment, or have any number of other reasons to cheat, we have many mechanisms for getting help. Copying the work of others is not the solution.

For more details, see this Academic Misconduct page. If you're not sure if something constitutes cheating, send the instructor an email describing the situation.

Getting help (link)

There are two main ways of getting help:

  • Piazza:

    You can find the access code to join Piazza on our course Canvas page

    We use Piazza as an online Q&A forum where you may ask questions (both publicly and privately). If you have a question, this should be the first place to check & it's often the case that other students may have had the same question.

    We also strongly recommend you monitor new questions asked on Piazza semi-regularly: seeing questions other students ask can often be surprisingly enlightening.

    We do not have a course staff email so if you have a question about a particular concept or part of the assignment that you do not want to post publicly on Piazza, you should post privately so that the instructor or any of the TAs can answer. Students should prefer using Piazza instead of emailing individual staff members. Obviously, if your concern is a personal matter that you want to talk to the instructor about, you may email the instructor individually.

    Note: The use of "Piazza Careers" is not required and you do not need to put any personal information in the website.

  • Office hours:

    Please visit office hours! Answering questions during office hours is often one of the best parts of teaching, so please do us a favor and make use of them.

One additional resource to keep in mind is the resources page on the class website. This page contains links to a variety of guides, tips, and tricks on material we don't have time to fully cover during lecture or section. The resources there might not always be relevant, but they're checking from time to time.

Software and textbooks (link)

We will be using Jupyter Notebooks written in Python 3 in this class to solve the programming assignments. Students will have two options supported by the course staff to write/execute their code.

  • Google Colaboratory: An online editor and runner for Jupyter Notebooks made by Google. Requires no installation but does require an internet connection.
  • Jupyter Notebooks installed via Anaconda so you can write/run code locally on your computer. Installation instructions can be found on the Software page.

We will be using Gradescope to submit all assignments.

There is no required textbook for this class, all of the referenced resources are available online and for free! There may also be some optional readings from textbooks that can be purchased, but these are by no means required.