It’s a true joy, and I’m really looking forward to being able to read the “finished” work. It’s a project oriented book, though, which means that to really learn from it we’re going to have to play along at home, programming, and experimenting, and analyzing. We’re all going to have to set aside some time for this when it does come out. But it’ll be worth it. And while the claim is that we’ll be learning about Generative Projects or Genetic Programming or whatever Bill decides to have GP stand for when he wraps this thing, we’re also going to learn a lot about software development and problem solving along the way, from someone who’s got a lot of great things to say on those important subjects. So we’d best buckle our seatbelts!
I do, however, have to take issue with a claim Bill makes in the introductory “About this book” section:
This is not a textbook. If your instructors try to use it as one, complain. If they argue, send them to me.
To be honest, it’s turning out a lot more like an anti-textbook. It will not improve your performance on tests. We’ll use “advanced” techniques before we discuss “basic” ones, ignore common practices to focus on more appropriate contingent solutions for specific problems, and may not even touch on techniques your instructors think you ought to know.
Remember, my goal is to support and extend your existing skills so you can productively explore further. Seek comprehensive knowledge and historical grounding in other books. They are full of it.
I can’t help but think he had me in mind when he wrote these lines, and I doubt he’ll be surprised to learn that I’m certainly seriously considering using it in my Evolutionary Computation and Artificial Intelligence course in the Spring. <snigger>
The issue, I suspect, is what one considers a “textbook” and what the point of such a thing is. Traditionally textbooks are big, fat things that provide a “coherent” overview of “everything you need to know about subject X”. I’ve got a bunch of these on my shelves with nice overviews of things like calculus and physics and chemistry. Old things, with a clear sense of what matters and what order it should be presented in.
In teaching computer science, however, things are typically much less clear. What’s “vital” in our field? What’s the “natural” or most pedagogically sensible order to present that material? There are lots of ideas out there, but hardly consensus. And that’s on the introductory material; my upper division electives usually focus on material where there’s even less agreement.
Starting in the late 90’s I started moving away from “traditional” textbooks when I could. I found that the most important part of most of my courses was process rather then content. Most computing textbooks I’ve seen are, unfortunately, much stronger on content than process. There are piles of books full of catalogues of algorithms, but they’re mostly presented like magic tricks, things Very Smart People dreamt up in some strange opium vision, inaccessible to the rest of us. The challenge in my experience is coming up with these visions, the process and the problem solving. So a book like Fowler’s wondrous Refactoring is far more educational in the long run, giving us skills for life instead of a box full of baubles.
The contrast between process and content has been made far more pronounced by the web and its many tools and collections. Young folks (and even this old guy) almost never reach for a book when they want to look something up; that’s what Google is for. The reference value of big encyclopedias of “facts” is greatly diminished when we can so easily find things on-line, but a well-written description of an important process is still a treasure.
Which brings us back to Bill’s book.
He claims it’s not a textbook because he doesn’t plan to cover “every” technique or concept or approach. He’s going to doing things in the “wrong” order. Foolishly, he’s not going to help improve our performance on tests, choosing to instead helping us develop skills that will help us for years to come.
Silly, silly man.
So, yeah, I do want to use Bill’s book in my class, and my students are more than welcome to complain to me or take it up with Bill. I doubt, however, that they will. The writing is opinionated and ornery and humble in all the right ways, and the emphasis on projects and problem solving are the sort of thing our students just eat up. I’m guessing that they’d happily line up behind something like this vs. a more traditional text.
As will I.
P.S. You should check out the book’s LeanPub site (https://leanpub.com/pragmaticGP) and sign up for notification. It’s a great way for people to help delude Bill into thinking that he’s not actually wasting his time.
Or something like that.
]]>Via TechDirt I found this very cool video on how our “standard” notions of incentives don’t always work very well, especially when it comes to cognitive work. There’s a ton of cool ideas in the video (and more in the TechDirt piece, including some cool links).
The incentives in the talk are typically money, but I suspect that there are interesting things to be said about grades as an incentive in the academy. Does anyone know of work along those lines?
One really interesting story is about Atlassian, an Australian software company. (Their stuff is cool, and we’ve used some of it here at UMM in the past, but it’s gotten pricey and we’ve moved to other tools.) Apparently Atlassian gives their employees a 24 period every quarter to work on whatever they want, and then they have a party where people share what they’ve done. This apparently leads to a ton of cool ideas, bug fixes, and development. So, so cool.
How could we apply that here in the academy? What if we gave everyone in our Computer Science discipline a 24 hour period to work on whatever they wanted to and then had a big party where people shared what they did? Could we do it? Would it make sense if we did? What would it mean? We’d probably have to cancel at least our CSci classes that day, and probably make sure that no one was giving an exam the next day, etc., etc.
Because we would only control our discipline’s behavior, though, we wouldn’t give many of the students the freedom they’d need to really take advantage of the opportunity. It would presumably work a lot better if we did this across the entire campus – no classes, no exams, no papers due, and then some sort of event (or set of events distributed across campus) at the end for people to share their results.
Hmmm…
]]>
The May, 2010, issue of the Communications of the ACM (CACM – the flagship magazine of the ACM) features a photograph of UMM CSci alum Tyler Hutchison presenting research work done with Andy Korth and Nic McPhee at MICS 2007. The article is “Student and Faculty Attitudes and Beliefs About Computer Science”. Andy and Tyler won the best student paper award at that year’s MICS for their paper “On the impact of geography and local mating in evolutionary computation”. The photo (taken by me during Tyler and Andy’s joint MICS presentation) features some of Tyler’s artwork illustrating the material.
The graphics folks at CACM found my photo on Flickr, and contacted me via Flickr offering to pay me a small fee if I’d be willing to let them use it. I happily said "Yes", and the rest is history.
As well as being a cool computer-science-type, Tyler is also a cool comic-art-type, and did the nifty drawings for the cover of our book "A field guide to genetic programming".
Happy, happy, happy.
But I’m easily amused :-).
In fairness, this could well be the one and only time I ever get published in CACM. I’m not all that likely to submit an article to them (in part because I don’t tend to write things they might want), so this could easily be the pinnacle of my career in terms of the number of people in my field seeing my work.
Weird.
But cool.
]]>
All OK? You’ve been soooooo quiet.
Many, many thanks for asking. It’s nice to be missed :-).
And yes, all the big things are OK, even if some of the details are a little stressful at the moment.
My wife and son are still amazing people, UMM is still home to some incredibly cool folks at all levels, and institutional corn dogs at the Student Activities Fair remain one of my favorite start-of-the-school-year rituals.
On the other hand, I’m still scrambling with some school stuff like syllabi and planning — I’m seriously crap at almost all of the mechanics of teaching, which makes my career choice unfortunate at times. (At least I like my job, though, which puts me way ahead of lots of folks.)
Computer Science at UMM is also really swamped because a search failed and we’ve got 3 faculty doing what 5 faculty (actually 6 people, two of which were half time) were doing four months ago. We canceled a couple of things, and moved a few other things around, so I think it will all work out fine, but it’s a challenge.
And on top of that, it turns out that I have arthritis in my neck that is causing my vertebrae to poke at my spinal cord in ways that express themselves annoyingly in my left arm. I got a steroid shot in my neck last week up in Fergus Falls that was (I think) helping. Unfortunately I pulled an almost-all-nighter night before last doing course prep, and may have undone much of that progress. Damn. It would be useful if I remembered that I’m no longer 18 at key moments… On the neat side, though, I’ve got the MRI images, so I have lots of cool pictures of my spine which I can give to Len Keeler‘s physics course on medical imaging. So there will be a bunch of physics students marveling at what a complete mess my back is, and getting college credit for their trouble!
So in short, everything big is all still fine. Some of the details are a pain, however, and that tends to draw energy from all the “optional” pieces of my life (blogging, Flickr, people who aren’t standing in my office door looking confused or unhappy or just glad to see me again). Hence a fair amount of Twitter, but very little that moves any closer to the paragraph form.
Sorry, and thanks for asking. Hopefully things will settle down in the next week or two. If you can’t find me in my office, I might be taking a nap on the couch in the computer science lounge.
]]>