As I mentioned a few weeks ago, we’re putting together some new software engineering courses at the University of Toronto. I’d be very interested in hearing from former 49X students: looking back, what did you learn from doing your project? What did you find valuable in the course, and what was just plain wrongheaded?
Later: Olivier Yiptong decided to provide feedback in the form of a mindmap—another first for this particular blog
A workshop called “Software Issues in Computational Science and Engineering” is running in Uppsala, Sweden, this August. Here’s their blurb:
Software for numerical computations faces multiple challenges. The software should be easy to use. Ideally, adaptation to new applications should be flexible, and extension to incorporate new numerical techniques straightforward. At the same time the software should execute extremely efficiently on various high-performance computing platforms. Accuracy and robustness are other key features. The overall challenge is to find ways to construct numerical software so that all these different goals are met simultaneously.
Once again, there’s no mention of making the programs right—nothing about testing, nothing about tracking results so that when a bug does appear you know what you should retract, nothing. I’m sure the organizers would say, “Oh, that’s part of accuracy,” but I’ve been part of enough discussions to know that when numerical scientists say “accuracy and robustness”, they’re talking about algorithms, not about coding bugs. Given stories like this one, it’s a revealing oversight.
Via Alberto Savoia (a contributor to Beautiful Code), this: JUnitFactory is a web-based test generation service. You send the code, it sends back unit tests. I’ll be very interested to hear what people think…
Beautiful Code, Uncategorized
This, via several sources: chronicle-recorder records writes to memory and registers using Valgrind, so that it can later answer questions like, “When was location X executed between times T1 and T2?” Tools like this (and rewind debuggers, and the stuff Andreas Zeller and others have been working on) promise to deliver a new generation of super-debuggers in the next few years. Now, would someone please write the damn book?