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

I want my Intarweb! All the time!

An evening on the computer

This was started on 9 Aug 2007, in the Preston Library, with various edits between then and the arrival at semi-consistent internet.

Don’t let anybody tell you that free internet in the library is just as good as having it at home. Today we spent two hours in the library in Preston (Lancashire, UK) library using their free internet, and it’s nothing close to the experience we left behind in Morris or the connectivity we hope to establish in Colchester.

The problem isn’t the library – it’s a very nice library, and they provided fine facilities (if the connection itself was a bit slow). The problem isn’t really that you have to wait in line (or book in advance), or that you have to use their equipment and annoying IE browser, or that you have no control over the facilities. (Although all these things are certainly a significant nuisance.) The problem is that the value of so much of the Internet is simply that it’s there, at your beck and call when you need it, and that just don’t work in hour long blocks once a week.

World Book Encyclopedia by -Mandie-
When my mom was a kid, they had the standard references (encyclopedia, dictionary) right near the dining table so they could be quickly consulted when a question arose during dinner. This was, in its way, the 1940’s/1950’s version of having a proxy library nearby. It was also the 1970’s version as well, and I still remember our family’s purchase of a World Book Encyclopedia in 1972. Over the years I read very large parts of that many volumed beast, and it was a great resource for a growing kid.

Now, however, traditional print encyclopedias have been almost entirely eclipsed by the amazing range and currency of on-line sources. The encyclopedia I grew up with was purchased in 1972, which means that as far as it was concerned nothing in the world changed after that moment in time. (There were annual yearbooks that we got for quite a while after, but their integration was limited at best, and I don’t remember using them much.) Thus that encyclopedia (which my parents still have) knows nothing about the end of the Soviet Union and the fall of the Iron Curtain, nothing about two Iraq wars, and nothing about personal computers and the Internet itself.

Sure, Wikipedia has its issues, and Google doesn’t always drive you directly to what you’re looking for, but they beat the tar out of that old 1972 encyclopedia. For a library at your fingertips, there has never been anything in human history that comes close to the power of the net. A key part of that value, however, is the “at your fingertips” bit, and that just doesn’t work if you’re scheduling your internet time in two hour blocks days or weeks in advance.

This isn’t to say that I wouldn’t want free internet in libraries. I could see wanting to read or do research in a library (some people like that atmosphere), and wanting to be able to quickly look something up on-line. I finally finished Neil Gaiman’s excellent Sandman series this summer, and there were all manner of odd references that I would look up while I was reading. At home I’d just grab a laptop and Google; if I was instead reading in a library or a coffee shop or at the University, I’d want to be able to do essentially the same.

All of which is another way of saying I want on-line access on demand all the time, even if it pains me to admit it. And I want it for my son, and my students, and everyone else as well. I realize that this comes with risks; I taught a summer class for kids from 9 to 17, and getting them off of IM and Facebook and the host of other on-line distractions was not a trivial thing. My guess, though, is that we will, over time, learn to manage those risks, and that they’ll be outweighed by the benefits of ready access to so much information.

Sadly, this is also probably ultimately an argument for the ubiquity of web enabled cell phones and similar devices. I’m not really a big fan of cell phones. They generally (in my experience) have much poorer sound quality than a good land-line phone, “I’m on the train!” is truly obnoxious, and I’m not sure I want to be that available (people already find me enough as it is!). Still, ubiquitous (and perhaps embedded) computing devices with the ability to access the web are increasingly a reality and almost certainly represent the future.

And in that future, we’ll all have that library at our fingertips all the time, whether we’re in the library or not.

No tag for this post.

Related posts