MIDA-Lab Machine Intelligence and Data Analytics (MIDA) Lab

AI Courses & Certificates

AI Courses

The University of Idaho offers 17 AI courses. MIDA Lab alone teaches 10 core AI courses, which include deep learning, machine learning, optimization, adversarial learning, data science, image processing, python for machine learning, and natural language processing. Our courses are designed to provide students with a solid foundation in the theory and practice of AI.

AI/ML Certificates

Artificial Intelligence and Machine Learning (AI/ML) Graduate Academic Certificate

Artificial Intelligence and Machine Learning (AI/ML) Undergraduate Academic Certificate

All courses and certificates are available online to remote students. Fully online students anywhere in the world only pay resident tuition rates. Please refer to the CS online MS program for details.

CS474/574: Deep Learning

Total Credits: 3 ; Time: Every Fall

Course Objectives: This course aims to present the major topics in deep learning for high-dimensional data representation. We will discuss the mathematic fundamentals, convolutional neural networks (CNNs), recurrent neural networks (RNNs), deep unsupervised learning, deep learning frameworks, tools, and applications.

Textbook: Deep Learning, Ian Goodfellow, Yoshua Bengio and Aaron Courville, MIT Press, 2016 http://www.deeplearningbook.org/

Instructor: Min Xian

Prerequisites: Linear algebra, statistics and probability

CS 477/577: Python for Machine Learning

Total Credits: 3 ; Time: Every Spring

Course Objectives: The course aims to present Python programming fundamentals and machine learning implementations, and will focus on offering a hands-on experience with machine learning using the Python programming language and Python-based machine learning libraries. This class will discuss the necessary details regarding machine learning and math concepts.

Textbook: Python Machine Learning, second edition, Sebastian Raschka, Vahid Mirjalili, PACKT, 2017

Instructor: Min Xian

Prerequisites: Linear algebra, statistics and probability

CS 4718/5718: Convex Optimization

Total Credits: 3 ; Time: Every Fall

Course Objectives: This course is designed to provide math foundation for many higher-level courses, such as advanced data mining, pattern recognition, statistic learning and computer vision. It will concentrate on presenting the fundamental theories of optimization and developing the ability to recognize and solve optimization problems in data analysis. Selected topics are: convex sets and functions; linear programming (LP), Quadratic programming (QP) and semi-definite programming (SDP); duality theory; interior-point methods; and data analysis applications.

Textbook: Convex Optimization, Stephen Boyd and Lieven Vandenberghe, Cambridge University Press, 2004. http://www.stanford.edu/~boyd/cvxbook/

Instructor: Min Xian

Prerequisites: Strong working knowledge of linear algebra and a programming language (R, Matlab, C++, Python, etc.)

CS 504: Digital Image Processing

Total Credits: 3 ; Time: Every Summer

Course Objectives: Digital image processing (DIP) focuses on two major tasks: improving image information for human interpretation and processing image data for storage, transmission, representation for autonomous machine perception. DIP techniques are used extensively in many applications such as self-driving, industrial inspection, artistic effects, medicine, geographic information systems, and law enforcement. This course aims to introduce digital image fundamentals and discuss the key techniques of image enhancement, morphological processing, image segmentation, object recognition, and image representation.

Textbook: C. G. Rafael, and E. W. Richard, Digital Image Processing, the 4th edition, Pearson, 2018.

Instructor: Min Xian

Prerequisites: Linear algebra, statistics and probability, and CS 120/121

CS 470/570: Artificial Intelligence

Total Credits: 3 ; Time: Every Summer

Course Objectives: This course covers the more important and successful techniques from the very broad field of artificial intelligence. Topics covered include search, game playing (adversarial search), constraint satisfaction, reasoning and knowledge representation, planning, fuzzy logic, and learning. In addition, we will discuss the philosophical aspects of AI. What is AI? Is it achievable?

Textbook: Russell and Norvig Artificial Intelligence: A Modern Approach, Prentice Hall (Suggested, but not required).

Instructor: Terry Soule

Prerequisites: CS 210 Programming Languages

CS 472/572: Evolutionary Computation

Total Credits: 3 ; Time: Every Spring

Course Objectives: Solving computation problems by “growing” solutions; simulates natural evolution using analogues of mutation, crossover, and other generic transformations on representations of potential solutions; standard EC techniques such as genetic algorithms and evolutionary programming, mathematical explanations of why they work, and a survey of some applications; the focus is on solving real-world problems using projects. Graduate-level research and possible paper or presentation required for graduate credit.

Textbook: Introduction to Evolutionary Computation, 2nd Ed. by A. E. Eiben and J. E. Smith, ISBN: 978-3662448731.

Instructor: Terry Soule

Prerequisites: CS 210 Programming Languages

CS 472/572: Machine Learning

Total Credits: 3 ; Time: Every Spring

Course Objectives: Analysis and implementation of classic machine learning algorithms including neural networks, deep learning networks, principle component analysis, decision trees, support vector machines, clustering, reinforcement learning, ensemble learning, K-means, self-organizing maps and probabilistic learning such as Markov Chain Monte Carlo and Expectation Maximization algorithms. Techniques of pre-processing data, training, testing, and validating will be discussed along with statistical measures commonly used and pitfalls commonly encountered. Additional work required for graduate credit.

Textbook: Machine Learning: An Algorithmic Perspective by Stephen Marsland (Second Edition!)

Instructor: Boyu Zhang

Prerequisites: CS 210 Programming Languages

CS 487/587: Adversarial Machine Learning

Total Credits: 3 ; Time: Every Spring

Course Objectives: The course introduces students to adversarial attacks and defenses against machine learning models. The particular focus is on adversarial examples in deep learning models, due to their prevalence in modern machine learning applications. Covered topics include evasion attacks against white-box and black-box machine learning models, data poisoning attacks, privacy attacks, defense strategies against common adversarial attacks, generative adversarial networks, and robust machine learning models. The course also provides an overview of adversarial attacks against machine learning models used in cybersecurity applications. Additional work is required for graduate credit.

Textbook: No Textbook

Instructor: Alex Vakanski

Prerequisites: Instructor Permission

CS 488/588: Applied Data Science with Python

Total Credits: 3 ; Time: Every Spring

Course Objectives: The course introduces students to tools and libraries that are commonly used for managing the various phases in the life cycle of data science projects. The course begins with a review of the fundamentals of Python programming. The data engineering theme presents techniques for data collection, exploration, and visualization. Model engineering pipelines are studied next, including topics related to model design, selection, and evaluation for image processing, natural language processing, and time series analysis. The course theme on Data Science Operations (DSOps) encompasses techniques for model serving, performance monitoring, diagnosis, and reproducibility of projects deployed in production. Throughout the course, students will gain hands-on experience with various Python libraries for data science workflow management. Additional work is required for graduate credit.

Textbook: No Textbook

Instructor: Alex Vakanski

Prerequisites: CS 212 Practical Python

CS 404/504: Natural Language Processing

Total Credits: 3 ; Time: Every Spring

Course Objectives: This course introduces students to the foundational concepts and techniques used in Natural Language Processing (NLP). It covers both the theoretical foundations as well as practical applications. By the end of the course, students will be familiar with various NLP tasks, algorithms, and will have hands-on experience with several NLP tools and libraries.

Textbook: Neural Network Methods for Natural Language Processing by Yoav Goldberg

Instructor: Boyu Zhang

Prerequisites: Instructor Permission for non-CS students

Other Related Courses