Mohammad Mahmoud Computer Science · UTM
Mohammad Mahmoud

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.

GitHubLinkedInUTM profile

Z(x) = 0There is nothing.
S(x) = x + 1From nothing, something, and then more.
Pni(x1, …, xn) = xiWe can make a choice.

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.

All four lessons

Now

More

UTM students looking for a project course or a summer research position: start with working with me.