Machine Learning Courses

University of Colorado, Boulder

Last Update
August 2017


Machine learning is a subfield of Artificial Intelligence concerned with developing computer systems that learn and make predictions from data. Machine learning systems have shown great success in tasks as varied as recognizing objects in images, understanding speech, interpreting natural language texts, classifying documents by content, guiding robots in unfamiliar environments, making product and movie recommendations to consumers, predicting disease outbreaks, inferring social relationships from communication patterns, and anticipating human errors.

Machine learning provides the intelligence underlying fields sometimes knowns as big data analytics, data science, and data mining.  Machine learning methods are widely used in engineering and natural science fields to interpret and model data, and is increasingly coming into play in the social sciences as well.

The University of Colorado at Boulder has a strong group of faculty in machine learning, spread across multiple academic departments, including computer science, applied math, electrical engineering, and  psychology.

Graduate Introductory Course Offerings

The topic of machine learning has exploded in recent years, and a single graduate-level course cannot fully span the range of methods used in state-of-the-art applications. We have designed a set of four courses that can be taken in any order, depending on a student's interests and goals. Students wishing to pursue research opportunities and/or professional careers in machine learning should consider taking a majority of the four.

CSCI 5352: Network Analysis and Modeling

This course focuses on methods for the  methods for the analysis and modeling the structure and dynamics of complex networks. This course is distinguished from CSCI 5622 by focusing on data sets that have relational structure readily represented by networks, an area that has been all but ignored early in the history of machine learning. 

CSCI 5622: Machine Learning

This course is a survey of traditional techniques for machine learning, including: decision trees, neural nets, support-vector machines, boosting, sparse regression, clustering techniques, and reinforcement learning.

CSCI 5822: Probabilistic Models

This course provides an in depth introduction to methods in machine learning that are based on generative models, probabilistic inference, and  nonparametric Bayesian methods. Many but not all machine learning algorithms can be cast within the framework of probabilistic generative models.

CSCI 5922: Deep Learning and Neural Networks

This course presents an in depth treatment of neural networks, covering the history of the field from the 1960s to the present wave of enthusiasm for deep learning. Neural networks are particularly effective on problems involving high-dimensional noisy feature vectors where there is little explicit knowledge of the processes underlying the generation of these vectors. Application domains where deep learning and neural nets have been successfully applied include: object recognition, image classification, speech understanding, and natural language interpretation.

Graduate Advanced Course Offerings

CSCI 6622: Advanced Machine Learning

This course is focused on semester-long research projects of the student's choosing, and reading and discussing research articles from the academic literature. Prerequisite: CSCI 5352, 5622, 5822, or 5922.

CSCI 7000: Algorithmic Economics and Machine Learning (Spring 2017)

This class will explore topics in algorithmic economics and algorithmic game theory, highlighting connections and applications to theoretical machine learning. The class will alternate between lectures to give adequate background and student presentations on related research papers or additional material. Topics will include algorithmic mechanism design, social choice, online learning, information elicitation, empirical risk minimization, prediction markets, crowdsourcing mechanisms, and differential privacy.

ASEN 6519: Algorithms for Aerospace Autonomy (Spring 2017)

This advanced grad course will cover modern statistical learning and AI techniques that allow autonomous systems to successfully reason under uncertainty. Topics include: probabilistic models, batch/offline learning, apporximate inference methods, sequential optimal decision making and dynamic programming, online learning.

ECEN 5322: Analysis of High-Dimensional Datasets

This course provides an exposition of the most recent methods for searching and analyzing high dimensional datasets. The class includes a project: students will design and implement a content-based music information retrieval, such as the ones used by Gracenote, Shazam, or Pandora.

APPM 8500: Statistics, Optimization, and Machine Learning Seminar

This is an upper-level graduate seminar course, meeting once a week. Each meeting will have presentations from either speakers (external or from campus), or half-hour presentations from students. Students enrolled in the class must give a half-hour presentation on either a research topic (either original research or present a paper).

Related Course Offerings

Machine learning makes contact with many fields. Interested students may wish to take courses that go into depth in these related fields. We list some of the courses our students have taken in the past and have found valuable. 

APPM 5120: Introduction to Operations Research

APPM 5520: Introduction to Mathematical Statistics

APPM 5540: Introduction to Time Series

APPM 5560: Markov Processes, Queues, and Monte Carlo Simulations

APPM 5570: Statistical Methods

APPM 5720: Advanced Topics in Convex Optimization

ATLS/CSCI XXXX: Interactive machine learning for customizable and expressive interfaces (Spring 2018)

Ben Shapiro, instructor. Course number to be determined. Course introduces students to techniques for applying machine learning in the development of customizable human-computer interfaces. Students will learn to process a variety of input data (e.g., video and accelerometer stremas) using different ML algorithms to detect semantically meaningful events that can afford the construction of new interactive systems.

CSCI 5254: Convex Optimization

CSCI 5502: Data Mining

CSCI 5722: Computer Vision

CSCI 5832: Natural Language Processing

CSCI 6302: Speech Recognition and Synthesis

CSCI 7000: Systems and Algorithms for Massive Data Applications

CSCI 7000-010: Mind Reading Machines (Spring 2018)

Sidney D'Mello, instructor. Can we teach computers how to read peoples' thoughts and feelings to improve engagement, efficiency, and effectiveness? For example, can computers tell when their users are confused or frustrated, mentally zoned out, cognitively overloaded, or in an optimal mental state? This course will teach you how to make computers smarter and more human-like by reading their users' minds (much like we do). In this interdisciplinary research-focused course, you will read, present, and discuss key papers in the fields of affective computing, attentional computing, augmented cognition, and multimodal interaction. You will also apply what you learned by developing your own research project. By the end of the course, you will be knowledgeable about the relevant theories and technologies, have conducted hands-on research in the area, and will have sharpened your critical thinking and scientific discourse skills.

CSCI 7000-008: Human Centered ML (Spring 2018)

Chenhao Tan, instructor. Machine learning research has been focusing on improving the capability of machines, which sometimes even outperforms humans. In this course, we will center around humans and explore how we can use machine learning to improve human performance in various scenarios. We will cover topics such as interpretable machine learning, machine teaching, cognitive bias, education, accessibility, etc. This is a research focused class. Students are expected to discuss related papers, work on research proposals, and finish a final project on related topics.

PSYC 5175: Computational Neuroscience

PSYC 7215: Reinforcement Learning

Course Offering Schedule

What follows is a tentative plan for graduate level ML instruction for the coming semesters.

FALL 2017: CSCI 5352, CSCI 5622, CSCI 5922

SPRING 2018: CSCI 5622, CSCI 5822, CSCI 7000 (Mind reading machines), CSCI 7000 (Human-centered ML)

Beyond Coursework

Join the Machine Learning at CU Boulder mailing list and participate in the weekly reading group. The mailing  list is used to announce readings for the week as well as job postings. The group is open to all CU Boulder undergraduate and graduate students.

Join the Data Science Team to gain hands-on experience in machine learning and to participate in competitions. The group is open to all CU Boulder undergraduate and graduate students.

Many departments and institutes host visiting speakers working in the area of machine learning. Follow colloquium schedules for Computer Science, Applied Math, Biofrontiers, the Institute of Cognitive Science, and Information Science.

A list of faculty interested in machine learning theory and applications of machine learning can be found here.