Course Prerequisites
This machine learning class is built on prior knowledge in statistics, probability, linear algebra, algorithms, and programming with Python. It is strongly encouraged that you have taken CSci 2033 Elementary Computational Linear Algebra, Stat 3021 Introduction to Probability and Statistics or their equivalent, and have some knowledge about multi-var calculus. If not, please talk to the instructor.
You can assess your readiness for the class in Homework 0. If you found the problems beyond your understanding especially after you review the following materials, you might have difficulty in passing the class.
Here are some good resources for your preparation or assessment of your readiness for the class.
• Matrix calculus and linear algebra (Matrix Cookbook) (Links to an external site.)
• Probability theory (Bishop-Chap2) Download Probability theory (Bishop-Chap2)
• Python Programming Tutorials (Links to an external site.)
Course Description
Machine learning is one of the fastest growing fields in computer science. The objective of this class is to provide rigorous training in conceptual, theoretical and experimental machine learning through lectures and hands-on experience. Topics include various supervised and unsupervised learning methods including a basic introduction to deep neural networks. The course will not only teach the theoretical underpinnings of machine learning, but also train the practical know-how to powerfully apply these methods to various problems and applications pertaining to machine learning and artificial intelligence.
Textbook
Required textbook:
• Introduction to Machine Learning (Links to an external site.) Third Edition by Ethem Alpaydin.
Recommended reading:
• Pattern Recognition and Machine Learning by Christopher Bishop.
Other supplementary materials and lecture notes will be used and uploaded to Canvas.
Course Components and Meeting Times
The course will be in remote format, with (1) lectures meeting remotely and asynchronously 75-90 minutes/week, covering basic concepts and general topics of machine learning; and (2) lectures/discussions meeting remotely and synchronously 60-75 minutes/week, covering more specific concepts and algorithms, examples, and applications.
Specifically, (1) the asynchronous lecture recordings will be posted on Canvas at least 2 days before the first class of the week, and you are expected to view them on your own. The Tuesday classes (i.e., 01:00 PM – 02:15 PM Tuesdays) will hold instructor office hours instead, and participation is optional. You can also choose to use this time to watch lecture videos, and/or ask questions along the way if any. (2) The Thursday classes (i.e., 01:00 PM – 02:15 PM Thursdays) will be remote and synchronous lectures/discussions, and you should participate synchronously if possible.
Instructor contact hours: As a 3 credit class, it will include 1.25-1.5 hours of video lectures and 1-1.25 hours of remote synchronous lectures/discussions.
Student workload statement: It is expected that a student will spend about 1-2.5 hours/week watching lecture videos, 1-1.5 hours/week attending lecture/discussion sections, and 6-10 hours/week on reading, homeworks, and other studying.
Lectures may contain information not in the assigned readings, but you will be responsible for this information on the exam and assignments. Thus, it is important that you watch/attend the lectures and discussions.
Discord
We will use Discord (Links to an external site.), where students can post and answer questions about the course content. You can join the Discord via this link (Links to an external site.). In addition, we will use it to form study groups. There will be 4 main ways on Discord for students to engage:
• Student discussion channel. This channel is created for only students to ask and answer questions from each other. This is the quickest way to get an answer for your questions, and this is also one of the best ways to consolidate your understanding by answering your peers’ questions. The TAs will occasionally monitor this channel, but will not answer any questions here.
• General channel. This channel is for any general course discussion (logistics, exams, hw, you name it) between students as well as between students and TAs. The TAs will monitor the chat and answer questions to the best of their ability and time. If you have a time-sensitive question, posting in the student discussion channel is more likely to get it answered sooner.
• Study groups. These channels are created for students who’d like to be assigned to a study group on Discord.
• Off-topic channel. This channel is for any conversations that are non-course-related. We encourage students to socialize and communicate with each other via this channel. Be sure to remain civil, polite, and follow all community guidelines.
Course Evaluation
Your performance will be evaluated based on the following components:
Quizzes 9% (3 x 3%): There will be 4 quizzes (best 3 out of 4 scores will be used). Each quiz will take about 15 mins. It will be posted at the end of the Thursday class and due in 24 hours at Gradescope. The quiz will be open book, with access to only materials from this class.
Homeworks 56% (4 x 14%): 5 homework assignments. HW0 will not count towards your grade but will evaluate your background and readiness for the course. All homeworks are due at 11:59 PM CDT. You can do the programming only in Python and using specific libraries. Please follow the instructions in each homework for details.
Midterm 15%: There will be one midterm between 01:00 PM – 02:15 PM, Thursday, October 28th. The exam will be open book, with access to only materials from this class. The exams will be posted on Canvas at the beginning of class on the exam date, and you will have 24 hours to complete and submit your exam to Gradescope.
Final 20%: There will be one final around the scheduled final exam time (date TBD). The exam will be open book, with access to only materials from this class. The exams will be posted on Canvas, and students will have 48 hours to complete and submit their exam to Gradescope. More information will be posted later in the term.
Course Schedule: see Schedule.pdf Download Schedule.pdf
Note on collaboration: in general, you are welcome to discuss the assignment problems in general with others, but you must work out and write your own solutions: any in-person or online discussion should stop before you start discussing or designing a solution.
Final Grades:
Grading for this course is on an absolute scale, so that the performance of others in the class will not affect your grade. If you are registered A-F, final grades will be assigned based on the following University of Minnesota Letter Grade Scale:
• 100%-93%: A
• 93%-90%: A-
• 90%-87%: B+
• 87%-83%: B
• 83%-80%: B-
• 80%-77%: C+
• 77%-73%: C
• 73%-70%: C-
• 70%-67%: D+
• 67%-60%: D
• 60%-0%: F