Compy Ed: Blogging about Computer Science Education

Thursday, September 28, 2006

Installation Anyone?

Filed under: Uncategorized — compyed @ 5:31 pm

I was talking to a friend recently.  As a teacher, he had to install some software needed by his class.  A MIPS interpreter.  The submit server that he had written.   Perhaps a few other things.  He had to fight the Linux installation.   There was a lack of real tech support staff to get him through this mess.  Lucky for him, he had been through installation hell like this many times before.  It didn’t make it much easier, but he knew, with time, he could persevere.

How common is this task?

For a class of computer science/programming teachers, the tasks he had to do may have been beyond belief.  I know of professors who would simply yell at the tech staff.  Professors don’t need to fill their brains with useless arcana of Linux.  Get the d**n thing to work.

But what my friend went through is starting to become typical.  Computer science types need to know how real systems work (and more often than that, how they don’t work).

What’s my point?

How much should we insulate students from this kind of mess?  Computer science teachers like to present a pristine programming world where every worry is confined to a clean language that is unchanging and sensible.  For example, the student doesn’t worry about installing a compiler.  They don’t worry about the operating system.  They just think about loops and functions and objects.

I recall, as a kid, watching a science television show, called 3-2-1 Contact.  It was on PBS.  Its goal was to teach young viewers a love of science.  Of course, it lacked one key ingredient.  Math.  Yup.  The thing that most scientists must know well is math, and yet, these shows basically show the glamor of science, without any of the difficulties.

Of course, students that lack talent in math are weeded out pretty quickly, and so it’s not as if we waste students’ time by giving a candy coated vision of science.

We do try to present this vision of programming however.  I’ve read that the Computer Science AP folks, who write college placement exams for high school students across the United States, want to make a core Java, that is insulated from the changes in Java, so students won’t be scared away by a language that is still evolving.

I don’t know exactly what I feel about this.  On the one hand, I think it’s a shame that the computing industry evolves as quickly as it does, and that it takes an incredible amount of work to make things simple, whereas it takes almost no work to make things complex, and that most software developers have to deal with complexity.

At universities it’s common to have specialization.  Professors learn advanced math and some advanced programming, but ignore the evolution of Linux, clinging to the permanence of the knowledge they have, while deriding the fleeting fad of the real world.  If a computer doesn’t work, the sys admin takes care of it.  Specialization.

Maybe the software industry will become extremely specialized, with people isolating other people from differing levels of expertise.

For example, it takes a certain skill set to simply write code, but takes another to optimize.  Most programmers would say optimization is simply the next level up, that a good coder eventually needs to know how to optimize, otherwise they aren’t so good.  (By optimization, I mean make the code run faster, or make the code use less memory as it runs).

Would this skill ever be specialized enough that someone would come in and do that work?  Certainly, there are people specialized in, say, internationalization, and focus on getting applications to work in different character sets, while insulating others from having to know anything about this.

I know this is an old topic, but I believe we tend to focus on intro courses where we inspire students to the world of programming, but the same people that do that are often loathe to discuss the messy stuff, partly (perhaps mostly) because they don’t know how to teach the messy stuff.

I can’t say I know how to teach it either.  It’s the messy stuff that drives students away (heck, even debugging drives students away).   Programming takes a good deal of patience.

No Comments Yet »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

Blog at WordPress.com.