Awesome Conferences

See us live(rss)   

Using commercial tools to teach academic subjects

Mark Dennehy wrote and article called, "Joel Spolsky, Snake-Oil Salesman" in response to Joel's article, "Capstone projects and time management".

(I'll give you all some time to read the articles... done yet?)

I want to agree and disagree with something Mark wrote (and a big "P.S." at the end about something he said about my time management book).

Mark wrote:

Undergraduate courses in CS and CEng are not there to teach industrial tools, but basic principles

I agree... but please don't go too far. The use of industrial tools, when used, should be as a demonstration of the principles being taught, not to gain some kind of certification that they know how to use the tool. Eliminating such tools would be going too far. We all know there are students that are "visual learners", "audio learners" and "kinesthetic" learners. Using the tools in a real environment is where the kinesthetic learners will benefit.

When I took my undergraduate class on software engineering methodology I felt it was useless because I couldn't see the point of most of what I was being taught. Most of my programming had been done solo or on a small team. I could not take seriously the problems that were being "fixed" by the software methodologies discussed in our lectures. "Code size estimation? Bah! Impossible, so why even try!" What would have solved this problem? To put me in an environment where we had a large enough team that things started to break down and we needed GIT, Bugzilla, and Tinderbox.

However, that was 1987-1991. Back then basic tools like source code control, bug tracking, and automated testing were uncommon. Today's students get more exposure to those things via exposure to Open Source projects than I got in my entire college career.

What about the students that aren't exposed to how open source projects work? They get no exposure. They don't get taught these principles. My guess is that these students are the majority of college students today. The superstars get exposure but not everyone is a superstar. In fact, by definition most students are not.

Obviously first-semester students should focus on getting comfortable with smaller issues like text editors, files, and getting their first programs to work at al. However, after someone gets some exposure, they should hand their homework in via passing a GIT or Subversion URL to the instructor. Peers should test each other's code and submit bug reports, and be graded by whether they include reproducible test cases or not. Unit-tests and system-tests, in a simple automated test framework ("Makefiles" are sufficient) should be part of the assignment.

Tom

P.S. And since you mentioned TM4SA...

At least when Limoncelli wrote Time Management for Systems Administrators he was putting forward a set of skills that had proven to work for him in the field, and he was trying to pass on lessons learnt the hard way.

I made a conscious decision to write what worked for me and people near me rather than write a book about the theory of time management and productivity. Before writing the book I did some research and found that people do not tolerate more than a certain amount of theory in self-help books. A little bit is motivational, too much is a turn-off. On the other hand, research finds that geeks tend to be motivated by knowing how the internals of something work. That's an argument for including more theory. I had to strike a balance.

I don't recommend Time Management for System Administrators (TM4SA) as a textbook. It is a self-help book. People will only benefit from a self-help book if they feel they have a problem. The 80% of your class that doesn't feel they have a problem would hate the professor for making them read it. Oddly enough I had terrible time management skills when I was in college. My low GPA is proof! If only I had TM4SA then! (Go figure out that time paradox!)

On the other hand, I do promote The Practice of System and Network Administration as a text book. It was written with colleges classes in mind (senior undergraduate and masters programs). As proof, each chapter ends with questions, something one generally finds in text books. The questions are designed to help the student review the material with a few "soul searching" questions mixed in here and there. The latter are potentially good term-paper ideas.

No TrackBacks

TrackBack URL: http://everythingsysadmin.com/cgi-bin/mt-tb.cgi/1054

3 Comments | Leave a comment

Mark seems to forget that the Joel on Software blog has always been a commercial blog*. If not for FogCreek, than for Joel himself.

Expecting objectivity about FogCreek software from Joel, is like expecting objectivity from Redmond Magazine about Microsoft products.

Joel offering students free hosting for their capstone projects is a nice idea. Could he have mentioned other options (google code, github, etc.)? Yes. But that would require objectivity.

Joel and Jeff (Atwood) are not archetypes to measure yourself against. But they are "making it happen". Writing code, building a business, and helping others do the same. For better or worse.

*IMO, Joel on Software is not a "blog", because (for an obvious reason) it lacks comments. Rather, it's a collection of essays. This is an important distinction, and further builds the case that it's commercial in nature.

and getting their first programs to work at all

LOL! who else remembers the "Bubble Sort"??

Having very recently been an undergrad, I think you're right on the money with your comment. The majority of students come out of a CS or IT program having been tested on some abstract concepts, but with no clue of how to apply them in the real world. My last semester in CS (last year) we were told to use CVS (a bit archaic) for a two-person project. That was the extent of SCM. The students who do learn how to actually apply their skills learn it outside of the classroom.

Leave a comment