Ph.D. (1985) and M.S. (1981) from the School of Computer Science at Carnegie Mellon. B.A. (1980) with dual majors in Mathematics and Religious Studies from Grinnell College. In 1975-76 I attended Deep Springs College, a very interesting place. In 1978-79 I attended Hebrew University of Jerusalem in 1978-79, where I studied (among other things) differential equations in Hebrew while learning the language. In high school, I learned Calculus and my first bit of computer science at Ohio State University.
In later years I have taught undergraduate and graduate courses at both of my alma maters, Carnegie Mellon and Grinnell. The latter honored me as the initial Robert Noyce Visiting Professor in 1998-99. I served as an adjunct faculty member at the University of Michigan for several years around the turn of the millennium, and in the fall of 2021 I returned to a part-time role there.