Professional and Biographical Information

I am a graduate of Princeton University (BSE) and Carnegie Mellon University (PhD). My research falls into the broad area of algorithms and data structures. I am particularly interested in routing algorithms, dynamic graph algorithms, on-line algorithms, and heuristics for NP-hard problems.

One of the joys of being at Amherst is the opportunity to teach a wide variety of courses. Most years I teach one or two lower-level courses, perhaps an introduction to computer science and/or an introduction to data structures or algorithms.  I also regularly teach electives in the theory of computation and compiler design, and I sometimes lead our seminar course, most recently on the topic of combinatorial optimization.

Each year I serve as the research advisor for one or two of our senior honors candidates. Many of their recent projects have focused on questions related to highway routing or route finding in transit systems.

I am currently chair of the Department of Computer Science. I served previously as the class dean for the Class of 2017. Working with faculty and with the rest of the staff in the Office of Student Affairs, I provided academic support to members of my class and to other Amherst students.