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.