Teaching From The Art of Computer Programming
Teaching From The Art of Computer Programming
Frank Ruskey
(last-name)@cs.uvic.ca
ABSTRACT
Donald Knuths magnum opus, The Art of Computer Programming (TAOCP), is often bought, frequently cited, sometimes browsed, occasionally read, but almost never used for
teaching. The purpose of this paper is to describe the authors experience in teaching two courses, each based on different sections of TAOCP volume 4a, using the pre-fascicles
and fascicles that were available at the time. The conclusion reached is that such an adventurous undertaking can
be extremely rewarding, not only for the students, but also
for the instructor.
Keywords
The Art of Computer Programming, Donald E. Knuth, Advanced undergraduate and graduate student classes.
1.
INTRODUCTION
But I actually know of only one other course that used the
Art of Computer Programming as the primary textbook;
although many courses list it for supplementary reading.
That one course was similar to the courses described here in
the sense that it was focussed on Volume 4, particularly in
answering the questions that Knuth asked for help on; see
[2]. There have been some books devoted to other books
of Knuth, for example courses about Literate Programming
and about the MMIX architecture.
3.
BILL GATES: Even if they didnt do the doublestar problems, I mean, just the fact that theyd
read the whole book, you know, those are the
kinds of things you need to know to be a good
programmer. Actually, theres some of that you
dont even need to know, but the kind of algorithmic thinking thats promoted there.
So in a sense, we want to teach the same thing,
but wed like to teach it in a forum thats most
interesting. So, for example, the idea of, OK,
lets take some of those basic ideas and program
a robot to go somewhere or figure something out,
you want to inject that into the field. But what
youre really teaching the person about design is
pretty much the same as you wanted to teach
them 30 years ago. I mean, we still havent gotten past that. And so there may be rich runtimes
that we can give to universities that make sure
that the person learning those things feels like
theyre doing something very cool and very interesting.
Note that Gates is not saying that he would hire the person
because they have to be extraordinarily intelligent to read
TAOCP; rather it is because having read the book means
that they have read things necessary to being a good programmer and solving problems algorthmically.
3.1
Why then arent we all trying to get our students to
read and understand TAOCP?
We will get back to this question later.
2.
3.2
7.1 Zeros
7.1.1
7.1.2
7.1.3
7.1.4
and Ones
Boolean Basics
Boolean Evaluation
Bitwise Tricks and Techniques
Binary Decision Diagrams
3.3
Jun 5, 2008
Dec 3, 2007
Oct 24, 2006
May 6, 2005
Dec 13, 2004
Dec 16, 2003
Dec 3, 2002
Feb 9, 1999
4.
OUTCOMES
In both of these classes there were several students who received the famous Knuth checks for spotting errors in or
making useful suggestions for TAOCP Volume 4. Not only
that, but the checks were accompanied by Knuths handwritten comments about each of the errors or suggestions,
even for the suggestions that he decided not to follow. Knuth
pays $2.56 for each error and $0.32 for each useful suggestion. In October 2008 he stopped writing checks drawn on
a real bank, because it is no longer safe to write personal
checks. He started a fictitious bank, and now writes checks
in hexadecimal dollars. See Figure 1.
Knuth movies
We have become accustomed to having supplementary materials supplied by publishers in the form of presentations,
model solutions, example exams, and so on. These supplementary materials do not exist for this course. Of course, the
many exercises have solutions, which is often helpful. However, there are several movies on the web of Knuth introducing some of the topics covered in these courses. These are
from talks that are given to a audience that consists mainly
of undergraduate and graduate students at Stanford University. They are given at a level that a typical upper-level
computer science or mathematics student should be able to
follow. On several occasions we watched the movie, stopping
occasionally when the students had a question or some point
required further elaboration. They formed a great supplement for book.
The following Musings [3] were relevant to one course or
the other. Some were viewed in class and others were suggested for viewing outside of class. The students always
seemed to enjoy watching them.
Dec 9, 2008
5.
CONCLUSION
6.
ACKNOWLEDGMENTS
7.
REFERENCES