Teaching
Current and past courses in theoretical computer science, algorithms, and mathematical foundations.
Undergraduate course, California State University, Fresno, Department of Computer Science, 2026
Fall 2026. This course develops the mathematical language and reasoning used throughout computer science. Topics include abstraction, logic, data models, induction, recursion, program correctness, recurrence relations, and introductory algorithm analysis.
Undergraduate course, California State University, Fresno, Department of Computer Science, 2026
Fall 2026. This theory-centered course studies formal models of computation and the proof techniques used to reason about them. It begins with strings, languages, and finite automata, then develops the relationships among automata, regular expressions, grammars, and computational models.
Graduate course, Rutgers University, Computer Science Department, 2025
This is a graduate-level course on the design and analysis of algorithms. We will explore fundamental techniques for designing and analyzing efficient algorithms for computationally challenging problems. The course will cover classic paradigms as well as modern algorithmic techniques. The goal is to provide students with a robust theoretical foundation and an understanding of the mathematical tools needed to tackle complex algorithmic problems in their own research.