Professor Ibarra has taught courses in the following areas: Automata Theory Formal Languages Design and Analysis of Algorithms Parsing Techniques Theory of Computation Computational Complexity