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. Introduction to Computing ... A Multimedia Approach 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. -----