Machine Learning, Spring, 2019
Course Number: COMPSCI 589
Time: MW / 2:30-3:45 PM
Room: Goessmann Lab. Add rm 64
Course Final: Thursday, May 9th, 3:30 - 5:30pm (Normal classroom)
Instructor: Justin Domke
Staff Email: Please usa Piazza
Course Website: Detailed materials for the course will be hosted on Moodle. Syllabus (this page) is at
Instructor Office Hours: TBD
TA Hours: TBD
Course Description: This course will introduce core machine learning models and algorithms for classification, regression, clustering, and dimensionality reduction. On the theory side, the course will focus on understanding models and the relationships between them. On the applied side, the course will focus on effectively using machine learning methods to solve real-world problems with an emphasis on model selection, regularization, design of experiments, and presentation and interpretation of results.
Override questions: I constantly get questions about override requests for this course, so I apologize that I cannot answer your question individually. If you'd like to take this course but cannot register, please submit an override request through the online system. Above all, please describe your background in linear algebra, probability theory, and basic multivariate calculus. Please list any courses you've taken either in those topics, or using those topics or any other relevant training or experience you might have. Out of fairness, emailing me directly will not result in any preferential access. Note that it is likely there will be a substantial waitlist for the course, so I can't guarantee anyone entry to the course from the waitlist regardless of preparation.
Textbooks: The course readings will primarily be based on two open textbooks:
Homework: There will be five homework assignments.
Quizzes: There will be approximately 5-6 quizzes, each taking place in-class.
(Unit 4: Bayesian Methods)
What is the difference between CMPSCI 589 and CMPSCI 689?: 589 has been designed to focus on understanding and applying core machine learning models and algorithms, while 689 focuses on the mathematical foundations of machine learning. While both courses require a background in multivariate calculus, linear algebra, and probability; 689 is more theoretically focused and will use more of this background material than 589. In particular, 589 will not focus on deriving learning or optimization algorithms.
Should I take CMPSCI 589 or CMPSCI 689?: 589 is appropriate as an introductory machine learning course for senior undergraduate students, masters students, and MS/PhD students interested in applying machine learning in their research. Note that 589 can count for credit for MS/PhD students, but it does not satisfy an AI core requirement. Graduate students who intend to pursue research in machine learning or who need a course to satisfy the AI core requirement should take 689.
Required Background:While this course has an applied focus, it still requires appropriate mathematical background in probability and statistics, calculus and linear algebra. The official prerequisites for undergrads are CMPSCI 383 and MATH 235 (CMPSCI 240 provides sufficient background in probability and Math 131/132 provide sufficient background in calculus). Graduate students can check the descriptions for these courses to verify that they have sufficient mathematical background for 589. The course will also use Python as a programming language including the numpy, scipy, and scikit-learn. Some familiarity with Python will be helpful, but senior CS students should be able to learn Python during the course if needed. Graduate students from outside computer science with sufficient background are also welcome to take the course. The following references can provide a useful reviw: