Extensive experience in practical implementation of algorithms. Extensive teaching experience of theory courses. Student reviews emphasize that the professor has ability to make hard and abstract concepts understandable in a natural way. Most courses 4000-level and above can be credited to all degree programs.
All courses are subject to advisor approval.
Knowledge of automata and formal language theory is desired but not necessary. Familiarity with discrete mathematics and analysis of algorithms will be assumed. Mathematical maturity is required as the lectures and the homework assignments will involve proofs. Computational complexity is an area of computer science that contemplates the reasons why some problems are so hard to solve by computers. We study the relation among these models in terms of their computational resources.