TITLE: Picking a Textbook for Fall
AUTHOR: Eugene Wallingford
DATE: June 14, 2006 3:49 PM
DESC:
-----
BODY:
I've come to realize something while preparing for my
fall CS1 course.
I don't like textbooks.
That's what some people call a "sweeping generalization",
but the exceptions are so few that I'm happy to make one.
For one thing, textbooks these days are expensive.
I sympathize with the plight of authors, most of whom put
in many more hours than book sales will ever pay them for.
I even sympathize with the publishers and bookstores, who
find themselves living in a world with an increasingly
frictionless used-book market, low-cost Internet-based
dealers, and overseas sellers such as Amazon India. But
none of this sympathy changes the fact that $100 or more
for a one-semester textbook -- one that was written
specifically not to serve as a useful reference book for
later -- is a lot. Textbook prices probably have not
risen any faster than the rate of tuition and room and
board, but still.
Price isn't my real problem. My real problem is that I
do not like the books themselves. I want to teach
my course, and more and more the books
just seem to get in the way. I don't like the style of the
code shown to students. I don't like many of the design
ideas they show students. I don't like all the extra words.
I suppose that some may say these complaints say more about
me than about the books, and that would be partly true. I
have some specific ideas about how students should learn
to program and think like a computer scientist, and it's
not surprising that there aren't many books that fit my
idiosyncrasy.
Sticking to the textbook may have its value, but
it is hard to do when I am unhappy at the thought turning
another page.
But this is not just me. By and large,
these books aren't about anything.
They are about Java or C++ or Ada. Sure, they may be about
how to develop software, too, but that's an inward-looking
something. It's only interesting if you are already
interested in the technical trivia of our discipline.
This issue seems more acute for CS 1, for a couple of reasons.
First, one of the goals of that course is to teach students
how to program so that they can use that skill in later
courses, and so they tend toward teaching language. More
important is the demand side of the equation, where
the stakes are so high.
I can usually live with one of the standard algorithms books
or compilers books , if it gives students a reasonable point
of view and me the freedom to do my own thing. In those cases,
the book is almost a bonus for the students. (Of course, then
the price of the book becomes more distasteful to students!)
Why use a text at all? For some courses, I reach a point of
not requiring a book. Over the last decade or more, I have
evolved a way of teaching Programming Languages that no longer
requires the
textbook
with which I started. (The textbook also evolved away from
our course.) Now, I require only
The Little Schemer,
which makes a fun, small, relatively inexpensive contribution
to how my students learn functional programming. After a few
times teaching Algorithms, I am getting close to not needing
a textbook in that course, either.
I haven't taught CS 1 in a decade, so the support of a strong
text would be useful. Besides, I think that most beginning
students find comfort at least occasionally in a text, as
something to read when today's lecture just didn't click,
something to define vocabulary and give examples.
So, what was the verdict? After repressing my true desires
for a few months in the putative interest of political harmony
within the department, yesterday I finally threw off my
shackles and chose Guzdial and Ericson's
Introduction to Computing and Programming with Java:
A Multimedia Approach.
It is relatively small and straightforward, though a still
a bit expensive -- ~ $90. But I think it will "stay out of
my way" in the best sense, teaching programming and computing
through concrete tasks that give students a chance to see and
learn abstractions. Perhaps most important, it is
about something,
a something that students may actually care about. Students
may even want to program. This book passes what I
call the Mark Jacobson Test, after a
colleague
who is a big believer in motivation and fun in learning:
a student's roommate might look over her shoulder one night
while she's doing some programming and say, "Hey, that looks
cool. Whatcha doing?"
Let's see how it goes.
-----