CWST4120 is a course in the Department of Mechanical Engineering at the University of Alberta. The course focuses on principles and techniques used in the application and analysis of various machine learning algorithms. Topics covered include models for supervised, unsupervised and reinforcement learning, automatic feature selection, Bayesian networks, neural networks, genetic algorithms, clustering and fuzzy logic. The course also covers topics on natural language processing such as language models and syntactical analysis. Finally, the course provides an introduction to deep learning, covering popular architectures such as convolutional neural networks and recurrent neural networks.