I am now Professor Emeritus. I'm available for
consultation, but come to campus irregularly.
If you would like to set up a meeting, please telephone for an appointment.
I'm no longer maintaining the material at the above link; Google
Scholar does a more thorough job. You can also find
most of my more recent papers in my institution's
- I'm not currently holding in-person office hours
- For the duration of the COVID-19 emergency, I can meet by Zoom, Skype, Facetime, Google Hangouts, or POTS.
- Please telephone to set up a time. This is much more efficient than emailing back and forth.
- If you must email, please suggest a few times that work for you.
|Title||Course number||When taught|
of Programming Languages
||CS 320||Most recently taught Spring 2020|
|Algorithms & Complexity||CS 350||Most recently taught Winter 2019|
|Introduction to Programming and Problem-solving||CS 161||Most recently taught Spring 2017|
|Object-Oriented Programming||CS 420/520||Most recently taught Spring 2019|
|Scholarship Skills||CS 669||Most recently taught Winter 2020|
|Ethical, Social & Legal Implications of Computing||CS 305||Most recently taught Winter 2019|
|Computer Science for Beginners||CS 199||Most recently taught Summer 2009|
|Computational Structures||CS 311||Most recently taught Spring 2010|
|Extreme Programming: Principles & Practice||CS 410/510XP||Most recently taught Summer 2006|
(with Mark Jones)
|CS 410/510AP||Most recently taught Winter 2009|
|Distributed Computing||CS 410/510||Most recently taught Spring 2005|
Courses previously taught at OGI/OHSU
My research interests are in the area of programming languages,
operating systems, object-oriented systems and distributed
computing, and more specifically in the region where they overlap
(such as language design for distributed Object-oriented
I'm currently involved in developing a new, very simple,
object-based language called Grace,
named after Rear
Admiral Grace Hopper. Grace is intended for teaching novice
computer scientists to program in the object-oriented style, but
is a full-featured language that can be used for almost any
purpose, including its own compiler. You can try out Grace on the web; see
After Grace, my favorite system for trying out ideas is Smalltalk. I have written a few Squeak goodies that I believe are generally useful. I have worked on Traits with the folks from SCG in Bern; see Nathanael Schärli's Traits page for details.
I'm a co-author of two books on Smalltalk programming, Squeak by Example, and Pharo By Example.
My hobbies include cycling, cross-country skiing, hiking, mending houses.
Take a look at some not-so-recent photographs