Courses being taught by Prof. Mark Crowley.

Reinforcement Learning

One of my core research areas is into understanding the computational mechanisms that can enable learning to perform complex tasks primarily from experience and feedback. This topic, called Reinforcement Learning, has a complex history tying fields as diverse as neuroscience, behavioural and development psychology, economics and computer science. I approach it as a computational researcher aiming to build Artificial Intelligence agents that learn to way Humans do, not by any correspondence of their "brain" and it "neural" structure by the algorithms they both use to learn to act in a complex, mysterious world.

Data Analysis and Machine Learning (DKMA)

Engineers encounter data in many of their tasks, whether the sources of this data may be from experiments, databases, computer files or the Internet. There is a dire need for effective methods to model and analyze the data and extract useful knowledge from it and to know how to act on it. In this course you will learn the fundamental tools for assessing, preparing and analyzing data.


Algorithms provide methods for solving problems, and are at the foundation of computing. It is important that practitioners in electrical and computer engineering understand how algorithms are designed, and how to analyze them for correctness and efficiency. It is important also to be able to distinguish intractable problems from ones that are tractable so one does not naively seek efficient solutions when none may exist. For cases that are intractable, it is important to know how to design approximate solutions that satisfy bounds on correctness and efficiency. Industry has long recognized the critical importance of algorithms that are correct and efficient.

Other Courses

See my department website for an archival list of courses I have taught.