Mohammad Mahmoud
Assistant Professor, Teaching Stream, Computer ScienceUniversity of Toronto Mississauga
I teach the theory of computation: computability and complexity, algorithms, data structures, and numerical methods.
My mathematical home is computable structure theory, which asks how hard it is to tell when two infinite structures are the same. I did my PhD at the University of Waterloo with Barbara Csima. I also supervise undergraduate research teams. They have built a programming language for Turing machines, an AI-assisted theorem prover, and quantum-annealing experiments, and several of those projects have ended in peer-reviewed papers.
mo.mahmoud [at] utoronto.caGitHubLinkedInUTM profile
Every primitive recursive function is built from these three by composition and recursion. I still read them as a small genesis: first nothing, then something, then a choice. Off the clock, I am a latte dad.
Most exciting lately
Guess, then check
I have been building interactive lessons: four so far, in logic, machine learning, running time and Turing machines. Each exercise asks for your answer before it shows you anything. Here is one; it takes about ten seconds.
Now
- Fall 2026Teaching CSC236, Introduction to the Theory of Computation.
- 2026A paper with my student team on quantum-annealed graph isomorphism was accepted at the QuBench workshop of IEEE Quantum Week (QCE ’26).
- 2026With M. Mirabi, Scott complexity of trees of finite rank is under review at the Journal of Symbolic Logic.
More
Teaching
How I teach, the courses I have taught at Toronto and Waterloo, and the materials I wrote for them.
Research
Computable structure theory, Vaught’s conjecture, machine reasoning, and the full publication list.
Projects
Interactive lessons you can try, and the tools my student teams built and published.
UTM students looking for a project course or a summer research position: start with working with me.