I can totally follow this train and see where this can lead to Bad Things. That said, however, I must say that I’ve found tools like Cucumber, Aruba, and Geb very useful in my university classes.
In the simple case, tools like Cucumber and Aruba often great for writing executable specifications for class projects. This is somewhat similar to the goal of having the business team write the tests, but obviously I’m in the fortunate position of being a developer as well as the person writing the specs. It’s very nice for teaching, though, because I can specify what I want them to do without over-specifying how they do it. Unit tests will typically need to reflect all sorts of design decisions, and part of the point is often for them to work through the design, so it’s nice to have tests that both they and I can use to sanity check their solutions without tying us all down to a particular set of design choices.
In the more complex case, our students have often found these tools to be extremely useful for their own tests, especially when they’re struggling with a new problem domain and/or a new set of languages, tools, libraries, etc. In many ways a unit test requires the ability to envisions at least some of the structure of the solution; you have to be able to see where a unit will be. If they’re writing their first web app from scratch, using languages and libraries they’re just learning, it can be really hard to know what the first test might look like. So they tend not to write it, instead doing “spikes” to try to understand how the pieces work. These “spikes” go on and on, get bigger and bigger, and often become the project instead of being thrown away, and none of that development was supported by any sort of tests.
While it can be really difficult to envision units in a totally new space, hopefully they can understand use cases and user behavior. Tools like Geb allow them to specify what the tool should do without (yet) understanding what the insides will look like.
In many ways the two cases are quite similar: A.T./BDD lets us write tests without committing to design decisions yet. In the first I don’t want to dictate those decisions, and in the second they simply don’t yet know what those will look like yet, but either way we get to specify what is hopefully some useful and significant behavior right away without getting bogged down in those issues.
In a perfect world, they’d start writing unit tests for key pieces of internal logic as the design develops, especially for units whose behavior is complex enough that it’s hard to catch all the combinations through the user interface. That doesn’t always happen, but eventually the instability of the UI often drives teams to bring some of the testing from the UI into more stable areas of the code.
So, do I think every project should start with Cucumber tests? No, definitely not. But I do think they’re damn useful in certain circumstances and I’m quite glad to have them.
]]>The U.S. Department of Energy is featuring a small set of six U.S. colleges and universities that they feel are doing cool things to help us move into a more sustainable future. The second video to be “aired”? The University of Minnesota, Morris :-)
Our computing folks are getting involved in this by building tools that will help provide community members with current (hopefully nearly real-time) information on both energy consumption and production. Down the road we’re hoping to give people some predictive assistance, suggesting possible times when discretionary high-load jobs would take best advantage of things like our wind turbines.
Most (all?) of the photos from Fashion Trashion (about two minutes in) were also taken by yours truly. Thanks to Jess for inviting me to take photos at these extremely cool events.
]]>It’s been interesting as we’ve visited a zillion colleges this summer, which schools are helping students learn to navigate the unknown, and which are turning out editors for textbook companies :)
]]>We then spent most of the day hanging around Portland together, including a visit to the mighty and wonderful Powell’s City of Books (one of the last, great independent book stores) and checking in at GECCO to get my registration stuff. Tom totally loved Powell’s (“I could get lost in here!”), and has in fact spent large amounts of my money and his time there this week while I was at the conference. We also went out and saw Toy Story 3 that night, which turned out to be every bit as good as everyone’s said it is – lots of fun and very well written.
Day 8 was our last college visit in this part of the world, as we headed up to Olympia, Washington (2 hours north of Portland) to visit Evergreen State College. This was a real eye opener for both of us. I knew Evergreen was cool (and another of the small number of public liberal arts colleges in the U.S.), but didn’t know a lot of the details, and I think we both found the unusual curriculum and environment really interesting and thought provoking.
I had arranged beforehand to meet some of the computing faculty at Evergreen so we could learn a little more about their program as part of a program review we’re doing at Morris, so after the information session and tour we met up with Sherri Shulman and then headed over to meet her husband and fellow CS faculty, Neal Nelson. When Neal walked in, there was this very weird moment where we both those we knew each other but weren’t sure why. Duh, duh, and double duh – Neal was my undergraduate thesis advisor at Reed! I’d lost track of him when he left Reed in 1988, and I somehow thought he’d gone into industry so I wasn’t even looking to find him anywhere in our travels. Given all that and the the fact that his name doesn’t particularly stand out (and that I’m really crap with names), I totally didn’t consider the possibility that I knew this Neal guy we were going to see. After recovering from that somewhat awkward start, Sherri, Neal, and I had a really excellent conversation that ran a couple of hours easy. Lots of catching up on old times, as well as discussing undergraduate computing curriculum with limited resources in a public school – many thanks to both of them for all their time!
After returning to Portland, we went to Papa Haydn’s, possibly the best source of wonderfully scrumptious and rich desserts that I know of in the U.S. I had a wonderful Autumn Meringue and it was just like being a college student again (without the metabolism of a 20 year old). We used to walk out to Papa Haydn’s from Reed (maybe a 30 minute walk) several times a year and indulge, and was so cool to go back and find that it really hadn’t changed much in all those years.
That night was the opening reception at GECCO, so Tom and I hung around for a few hours eating little snacky things and chatting with various folks. Tom had never met most of my EC friends and colleagues, and he was very cool at meeting a bunch of strangers that are, even worse, all science nerds to a very high degree. Luckily it’s a really cool group of people, and I think he actually enjoyed himself.
By Day 9 I’d actually skipped out on the bulk of the first two days at GECCO, so at this point I essentially abandoned my son to the wilds of downtown Portland and started pretending to be a scientist for a bit. He spent most of his time hanging at Powell’s and reading books, while I listened to people talk about their cool evolutionary computation research.
That night I did actually skip out on the last session, though, and went back to Reed to join a bunch of faculty that have a regular Friday beer and food gathering at Woodstock Wine and Deli up the hill from campus. Jim had invited me to join them, and it was a great chance to meet some people I knew that I’d missed before (like Ray Mayer) and a bunch of other faculty that are new to the college since I was a student there in the dim past.
I wasn’t the only one meeting up with old friends, as Tom met up with Perry Webster from Morris (currently attending the University of Portland) and hung with her and a family friend pretty much the whole evening, which was a neat chance for him to spend a little time with people more his age :-).
Day 10 was much the same, although I stayed at the conference pretty late because the poster session and associated reception was that evening.
Day 11 (today) was the end of the conference, including eating lunch in the hotel sports bar with a bunch of very enthusiastic Europeans watching the World Cup final! Eli Mayfield (UMM ’09, now a grad student at Carnegie Mellon studying natural language processing) gave a talk today, and did a really excellent job. Tom and I went out to Jake’s Famous Crawfish with Eli and Bill Tozier. Jake’s was a great seafood house back in the day, and they didn’t disappoint, providing us with excellent food to go with the fine conversation. That was a great way to end our time in Portland!
Now we’re off to bed, and tomorrow we drive south to Tule Lake and Lava Beds National Monument. With a little luck we may hook up with Wayne Manselle in Eugen on the way!
]]>
The University of Minnesota, Morris, recently open its new Welcome Center, a major renovation of what had become a sad little building into a shining, spiffy new space. Among other things, it’s a real tribute to the campus’s commitment to sustainability:
When certified, the Welcome Center will be the first LEED Platinum building in the University of Minnesota system; the first LEED Platinum building on the National Register of Historic Places; and one of only thirteen higher education LEED Platinum certified buildings in the world. The Welcome Center is also the first building in Minnesota to use energy efficient chilled beam technology.
They’ve put out a call for art for the building, with a particular interest in work from alumni and others connected to the campus. In a foolish moment, I’ve submitted 20 photos. Now we wait and see if they want to purchase any of them!

This year’s CSci graduates included students graduating with high distinction, students who’d published their research in major international conferences, done extensive volunteer work, travelled the world, pursued diverse interests, and won highly competitive national awards. Some are going into grad school, some to jobs, some to volunteer work, and some are still trying to figure out the next step. One of the great advantages of a small department is that I’d worked personally with almost all of them on special projects, and had the rest in at least a few classes, and I consider it an honor and a privilege to have gotten to know them.
And that’s just the CSci grads. Another advantage of a small campus is you get to know lots of students in lots of areas. People I knew from the radio station graduated today, along with committee members, musicians, artists, actors, historians, psychologists, biologists, and the lot. This included two Truman Scholars and, as we were reminded today, the only other schools that could boast two Truman Scholars at their graduation this year were Stanford and Wellesley. Not bad for a little school in the middle of nowhere that no one’s ever heard of, eh?
Talking about how great this or that group of students is always sounds dangerously like comparing children, but we just keep getting cool students to work with. This is really the “norm”, whatever that means when both the individuals and groups have such distinct personalities. These folks leave, taking with them a lot of experience and knowledge and enthusiasm, and there’s no doubt that we’ll miss them. There are, however, plenty of great students still on campus, and wonderful new admits that will be joining us in August.
So, best wishes to all this year’s graduates.
Do cool things.
And send us a postcard now and then.
P.S. I’ll try to get the pictures I took today up on Flickr sometime in the next few weeks, but with grading, the May Session course, and being in Ann Arbor the second half of the week, processing all those photos is going to have to wait a bit.
]]>