teaching
Courses being taught by Prof. Mark Crowley.
Ongoing Courses
ECE 499 Engineering Project
The ECE 499 Project is an elective course that can be taken once by a student in their 4A or 4B term. Note that this is a single-term course. Once a project topic of interest is determined, then a supervisor should be found (typically a faculty member of ECE). The departmental web pages for faculty should be consulted to learn more about the research interests, recent publications and supervised graduate student thesis titles of the individual faculty members.
You can find more information on outline.uwaterloo.ca for the current term https://outline.uwaterloo.ca or at the page below:
- Every Term (4a/4b) ECE 499 Engineering Project
ECE 650 Methods and Tools for Software Engineering
This is an introductory graduate course. Its intent is to provide all students that are interested in software systems with a basic background that will help them succeed in subsequent endeavours (courses, research, and work in industry) related to software. The course is intended to be “hands-on” – there is a large project component that involves building a software system.
ECE 657A Introduction to Artificial Intelligence
This course provides an exploration of foundational concepts and techniques in Artificial Intelligence (AI), focusing on key subfields such as search, reasoning, planning, robotics, and uncertainty modeling. Students will learn to apply techniques like uninformed and heuristic search, constraint satisfaction, game-tree search, and probabilistic reasoning using Bayesian networks and decision theory (MDPs and POMDPs). The course also introduces planning for robotics, including SLAM and motion planning, and examines ethical considerations and societal impacts of AI.
- Winter 2026: ECE 657A - Introduction to Artificial Intelligence
ECE 475C : 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.
- Spring 2025 : ECE 457C - Reinforcement Learning
- Spring 2024 : ECE 457C - Reinforcement Learning
- Spring 2023 : ECE 457C - Reinforcement Learning
- Spring 2022 : ECE 457C - Reinforcement Learning
- Spring 2021 : ECE 493 - Reinforcement Learning
- Spring 2020 : ECE 493 - Probabilistic Reasoning and Reinforcement Learning
- Spring 2019: ECE 493 - Probabilistic Reasoning and Reinforcement Learning
Other Courses
ECE 457B: Computational Intelligence
This course provides a rigorous examination of machine learning, structured to progress from fundamental principles to advanced methodologies. It encompasses a broad spectrum of supervised learning topics, including nonparametric and parametric models, linear and nonlinear approaches, deep learning paradigms, and probabilistic models. In the domain of unsupervised learning, students will delve into clustering, density estimation, and dimensionality reduction, while reinforcement learning will be introduced preliminarily. Assignments, an essential part of the curriculum, enable students to explore the intricate applications of machine learning. Theoretical knowledge is translated into practice through tutorials on industry-standard tools such as PyTorch and Keras. Interactive classroom discussions will pivot around both the practical trade- offs inherent in real-world applications and the theoretical underpinnings that provide an intuitive grasp of the field.
- Winter 2025: ECE 457B - Computational Intelligence
ECE 657A : 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.
- Winter 2025: ECE 657A - Data and Knowledge Modeling and Analysis
- Winter 2023: ECE 657A - Data and Knowledge Modeling and Analysis
- Winter 2022: ECE 657A - Data and Knowledge Modeling and Analysis
- Spring 2021: ECE 657A - Data and Knowledge Modeling and Analysis
- Winter 2020: ECE 657A - Data and Knowledge Modeling and Analysis
ECE 750 T40 : Topics in Reinforcement Learning
This advanced topics graduate course will focus on the theories, methods and applications of Reinforcement Learning (RL). RL is an Artificial Intelligence/Machine Learning (AI/ML) approach for building systems that can learn how to make decisions through their own experiences in an environment. The domain is more difficult than supervised ML since it involves uncertainty and limited information about how the world, and its dynamics, actually function. It can also be seen the AI analogy for the Optimal Control problem, where there are no dynamics models available and the objective is not globally known.
- Fall 2024 : ECE 750 T40 - Reinforcement Learning
ECE 606: Algorithms
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.
- Winter 2023: ECE 406 : Algorithm Design and Analysis