I'm no longer maintaining the material at the above link; Google
Scholar does a more thorough job. You can also find
many of my papers in my institution's
- Spring Quarter 2020 Office hours
- — I'm working part-time this quarter. For the duration of the COVID-19 emergency, I can meet by Zoom, Skype, Google Hangouts, or POTS.
- — I'm holding office hours on Monday & Wednesday 13:00-15:00, or Thursday 10:00–12:00. Schedule an “office hours visit” at https://calendly.com/apblack.
- — By appointment: please telephone to set one up.
|Title||Course number||When taught|
of Programming Languages
||CS 320||Spring 2020|
|Previously taught courses:|
|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||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