Professional and Biographical Information
Ph.D., Carnegie Mellon University, 1987
M.S., Carnegie Mellon University, 1983
B.S.E., Princeton University, 1981
A.M. (honorary), Amherst College, 2000
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 and 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.
Scholarly and Professional Activities
During my recent sabbatical, I was a visiting professor of Computer Science at the University of British Columbia.