A different kind of computing curriculum? – Thoughts on an interview with Smalltalk Dave

Teamwork
I finally got around to listening to this interview with Smalltalk Dave Thomas (as opposed to Ruby’s Dave Thomas) from the Agile Toolkit Podcast. There’s a lot of interesting stuff in this puppy, and curriculum design would be a totally different animal if more academics were listening to people like Thomas.

He’s clearly a big fan of functional languages and tools

It’s really too bad we didn’t actually keep that course that taught those students functional programming and make them see Haskell or Scheme.

and also argues that JavaScript (a) is huge (in small part because Google just uses it so much, and so well) and (b) is essentially Scheme with a different (nastier, in his opinion) syntax. We teach a little JavaScript in an introductory non-majors course, but I think we almost entirely don’t touch it after that. Hmmm… Maybe we need to look into that.

Also, and not surprisingly given his Smalltalk history, he’s big into duck typing (like Smalltalk and Ruby) and not a big fan of heavyweight static typing. I twitch a little when I hear this stuff because static typing has always been a big deal in my universe, especially in teaching. An interesting take on this, though, is that

Test first really does the same thing as a typechecker, and in fact it does a little more.

My graduate experience at UT was very much a formalist experience, with lots of emphasis on formal methods and static types. Clearly there’s an alternative model here where serious test driven development provides the safety and correctness. You obviously need the discipline to make this work, but you arguably need discipline to do any sort of interesting software development well. Taking that as your premise, however, would lead to a very different curriculum model than most traditional arrangements.

What would a curriculum look like if you took agile methods and test driven development as your key premises from the very beginning. If all the early assignments were all unit tests that need to be passed? (The students would be writing their own tests for later assignments.) If everything was done in pairs/teams? If you emphasized dynamic tools and languages, using heavy tests to keep the quality high?

I’ll leave everyone with this very cool (for someone who teaches this stuff) line:

There is going to be an acute shortage of talented software people.

We all (and I mean everyone in our society) have come to seriously depend on software, so we all need talented people to be doing that work. This means we need to be encouraging bright young people to consider software development and computer science as an important and exciting option. We need to provide curricula that challenge, excite, and prepare them. I think we’re doing a good job at Morris, but could do better. Unfortunately, I think there are still way too schools that are stuck somewhere in the mid-80’s (“Hey, objects are actually pretty cool!”).

No tag for this post.

Related posts

Think of how many calories we must be throwing away

Dagstuhl buffet
Walking home from the office today, I was listening to a Scientific American podcast Putting Food On The Table: What To Eat (go to sciam.com/podcast/ for their full set of podcasts), featuring an interview with the appropriately (or ironically – is irony dead?) Marion Nestle, author of the book “What to eat“, and an article entitled “Eating made simple” in the current issue of Scientific American.

Lots of it is well covered (but still important) ground – eat less overall, get more exercise, favor salad over fries. An amazing bit, though, is that since 1980,

Calories available per capita in the national food supply (that produced by American farmers, plus imports, less exports) rose from 3,200 a day in 1980 to 3,900 a day two decades later.

Yikes! That means that for each of us in the U.S., there are nearly twice as many calories per person out there waiting to be eaten than we actually need.

She’s quick to point out that not all these calories are actually being consumed, i.e., we’re not as obese as we could be. But, as she also points out, the structure of the current financial markets strongly reward growth, which in the food industry typically means selling more of those surplus calories than your competitors, all of which tends to favor pushing buckets of empty calories like soda rather than fresh tomatoes. And, of course, from an environmental standpoint, the idea of producing nearly twice as many calories as we need is enormously wasteful, for our choices are either to consume them (and turn into monstrous butterballs in the process) or throw them away (ensuring we have some of the best fed landfills in all of human history). What a frightful mess.

(Composting, of course would be a preferable destination for those calories than either obesity or landfilling them, but even that doesn’t make it “right” or “desirable”, just slightly less stupid.)

It’s also interesting that the food industry’s massive marketing machine has chosen to shove crates of processed junk our way. They could, of course, simply encourage us to exercise like Lance Armstrong in training; those fellows can pack away nearly 6K calories a day because they burn it right off. It’s a shame that PepsiCo isn’t pushing bikes and community fitness programs instead of chips and fizzy pop, although I suspect it’s easier to convince Joe and Jane Couch Potatoe to relax and enjoy a beer and some chips during the big game than it is to get them to go actually play.

The other interesting bit was that apparently for the first time junk food is now cheaper per calorie than good fruit and veg. Back home we make an effort to buy a lot of locally grown organics from our local co-op and (in the summer) the Easy Bean Farm, but all that wondrous grub isn’t cheap. There’s lots of nice organic stuff on offer over here, but with 60% salary and the exchange rate smacking us about the head and shoulders 24/7, it’s pretty tough to pay that premium.

Unfortunately, buying healthy, environmentally responsible food has become to a significant degree a privilege not so readily available for those in financially difficult circumstances. (A major change from 100 years ago, where the cheap stuff would have been the local produce.) It’s clear that any plan to save the world really needs to include plans to reduce financial inequities, and probably changes in the farming and food distribution incentives as well.

No tag for this post.

Related posts