Current Projects
I tell my students to create an elevator pitch for every project they work on. The point isn’t to be ready for a chance encounter with Bill or Sergey; it’s to make sure they know why they’re doing what they’re doing. In the spirit of full disclosure, here are pitches for the things I’m working on myself.
Background
The real “grand challenge” in scientific computing is that most scientists don’t know how to develop software efficiently, have no idea how reliable their programs are, and can’t reproduce their results. This isn’t surprising: after a generic first-year course in programming, they are expected to pick up everything else on their own, which is about as fair as showing someone how to differentiate polynomials and then asking them to reinvent tensor calculus.
Most new graduates of university computer science programs aren’t any better at building real applications. The reason is that while undergraduate courses teach people the syntax of programming languages and what computers can do, few if any teach the mechanics of software development. Some students pick this up on their own, but most do not.
My research interests therefore grow out of the following question:
What software development tools and practices can and should be taught to novices once they have mastered the basics of programming, and how best can this be done?
Computers are as important to modern science as telescopes and test tubes, but few scientists have ever been taught how to use them effectively. The goal of the Software Carpentry course is to give them the skills they need to build and share software they can trust without superhuman effort. Unlike most other programming courses for scientists, Software Carpentry focuses on software development, rather than numerical methods or high-performance computing.
Status:
- The current course gets over 14,000 visits per month, but needs an overhaul. I am currently trying to raise funding so that I can devote a year to this.
- We finished the largest-ever survey of how scientists use computers in December 2008, and presented results at SECSE’09 in May 2009.
Basie is a web-based project management portal that integrates revision control, issue tracking, mailing lists, a wiki, and other tools that software development teams need. Unlike other portals, Basie was designed to be simple enough for undergraduate students to master without really thinking about it. Basie is built on Django and jQuery, and is now self-hosting.
Status:
- Basie’s predecessor, DrProject, is being used by two dozen groups around the world.
- Version 0.6 is scheduled for release in December 2009.

My first three M.Sc. students finished their theses in January 2009:
- Samira Ashtiani Abdi: Recovering Related Artifacts in Software Projects’ History: a Comparison of Information Retrieval Based Methods
- Jeremy Handcock: How Developers Use an Awareness Tool: Patterns and Usage Scenarios
- Carolyn MacLeod: Patterns in Novice Design Analysis Using Spin
My current students are still settling on projects, but in broad terms:
- Aran Donohue is looking at programmers’ personality types.
- Alecia Fowler wants to find ways of making online maps more accessible to people with visual disabilities.
- Jason Montojo wants to understand how novice programmers find their way around large code bases.
- Rory Tulk hopes to build a reverse test oracle and see what impact it has on students’ working practices.
- Mike Conley and Zuzel Vera Pacheco started coursework in September 2009, and have not yet picked thesis projects.
Fiction
Having published two children’s books, I’m now trying to sell a novel-length fantasy called Beneath Coriandel that explores how fate and chance tie people’s lives together. A young man descends into the crypts beneath the city to slay a monster; a woman plots to steal her niece’s youth; a talking horse foils a robbery, a ghost remembers how it earned its name, and a magician wonders why she can’t get a particular nursery rhyme out of her head. Swordplay, betrayal, forbidden love, a philosophically inclined pair of boots—Beneath Coriandel has them all, and should appeal to anyone who liked The Innkeeper’s Song, The Curse of Chalion, or The Lies of Locke Lamora.
Status:
- The novel has been rejected several times, primarily because its use of multiple voices and multiple times is hard to follow.
- I hope to find time in 2010 to reorganize the existing material and add another 12,000 words.

