Research
The thread that runs through my work is understanding how we understand and gain confidence in software, through some combination of analysis (broadly construed to include testing as well as various static checking techniques) and design. I'm increasingly interested in interplay between synthesis (generating something from a spec) and analysis (checking consistency between a spec and an implementation). The synthesis part is related to an old interest in architectural design of software, which I've recently revisited in connection with assistive cartography.
Some things I've been interested in recently:
Book: Software Testing and Analysis
Mauro Pezzè and I are writing have
written a text,
Software Testing and Analysis: Process,
Principles, and Techniques.
It is available at Amazon
and other online bookstores, including Powells and Barnes and
Noble.
We hope this will be the book that advisors recommend to new graduate students who need a basic, broad background in testing and analysis, as well as a standard text in senior and beginning graduate courses.
Many of you have already commented on parts of the book, and a few of you have used drafts in courses. Thanks for your suggestions and encouragement, and I hope you like the result.
Conferences
ACM SIGSOFT 2006 / FSE 14, November 2006
ACM SIGSOFT 2006, the Fourteenth ACM Symposium on Foundations of Software Engineering (FSE 14) was held in Portland, Oregon in November 2006. I was general chair, and Prem Devanbu of UC Davis was program chair. See http://www.cs.uoregon.edu/fse14 for more information.
Community
Impact Project
The Impact Project is an ACM SIGSOFT initiative to determine the impact of software engineering research on software engineering practice. I am studying the historical development of static analysis techniques and tools for software fault detection.
Classes
Software Methodology (CIS 422/522)
Software Methodology 2 (Spring 2007)
This course will be cross-listed as CIS 423 and CIS 510. CIS 610 credit is possible for students who need 6xx credits and who are able and willing to contribute at that level.
For Spring 2007, the course will also be cross-listed as a Geography seminar taught by Amy Lobben. Amy and I will work together coaching a cross-disciplinary team of computer science and geography students to develop a web-based haptic soundscape campus map for blind users.
This is going to be a blast. There are lots of interesting and challenging problems, and a chance to work across disciplines (which is a really important aspect of computing in the real world), and a chance to build something new and useful. This won't be the first haptic soundscape map (check out related projects at UC Santa Barbara and U Calgary), but the field is really nascent and presents lots of opportunity to make real progress.
Compiler Construction (CIS 461/561, Winter 2007)
For notes on the most recent offering, see the course web site from Spring 2006.
Scientific Writing Workshop (CIS 610)
Sarah Douglas will offer the writing workshop course in Spring 2007. We expect to have a regular course number soon, and a new course title, pending University approval.
K-12 Outreach
I'm involved in a number of (somewhat overlapping) groups concerned with helping high school and middle school kids learn about computer science and prepare for it.
The ETIC Computer Science task force focuses on attracting and preparing high school students for university study in computer science. They publish the Get Real web site for high school students, teachers, and counselors.
The Oregon Pre-engineering and Applied Sciences Initiative (OPAS) has a related but broader focus on engineering, computer science, and applied sciences in general. I serve on the OPAS steering committee and one of the working groups, and am involved in the NOISE (Network of Informal Science Educators) spin-off activity.
The Oregon Computer Science Teachers Association (CSTA) is primarily an organization of high school computer science teachers, supported by the Software Association of Oregon. I participate in some events and discussions as a representative of university CS education.
Outside interests
I am a fairly serious coffee drinker, and also roast coffee at home. Here is some general information on semi-commercial espresso machines (high-end home machines) and some information on the Pasquini Livia 90 in particular. Recently I have discovered a espresso repair service in the Eugene area, Stefano's Espresso Care. Stefano (stress on the first syllable; I keep getting it wrong) repairs both commercial and home machines. Previously I was shipping my machine back and forth to HER in Seattle.
I am a recreational bicycle rider. I enjoy organized "event" rides. Rides I've enjoyed include the Seattle to Portland bicycle classic (my only "double century", that is, 200 miles in one day); the Blackberry bRamble starting right here in Eugene; the Covered Bridges tour from Albany (5 times); the Peach of a Century (twice); the Monster Cookie metric century; the Mount Hood Challenge Century (which seems to have been held for the first and last time in 2004); and the Torture 10,000 century east of Portland (also discontinued, alas).
I've set a personal goal of riding a century (100 miles in a day) each month in 2007, and to keep me motivated I signed up for the UMCA year-rounder challenge. That helped get me out early in the year, including a frozen day in January and a wet day in February. Century rides so far are documented here, from February on with GPS records.
Other great rides in the area:
There are many excellent routes starting in or near Eugene, ranging from under 20 to over 100 miles, and from very flat to quite hilly. If you are a cyclist visiting Eugene (especially if you're a computer scientist), I'd love to make a few suggestions or maybe go out on a ride with you, schedule permitting.
Here is why I always wear a helmet.