I'm enjoying following Chris Higgins' first year teaching computer science at his blog. On Friday he posted a pair of interesting posts. One is a review of the textbook he is using. The other is a description of how he is using some web based tools to make things more efficient.
I really appreciated the book review for a couple of reasons. The obvious first reason is that I am one of the co-authors. I really did appreciate his list of the positives in the book. It's nice to hear that someone is using there textbook and has some nice things to say about it. But the more important reason for liking the post is that it highlights some of the things that make writing a good textbook difficult. Writing review questions for the end of chapter and section is, for me at least, one of the more difficult parts of textbook writing. Actually I found writing test questions somewhat challenging as well. Evaluation is difficult and there is no getting around it. My co-authors helped with some of the review questions but I'm sure they could be better. It's something to keep working at. The other concern with many textbooks and with teaching from code examples is the tendency of students to just copy code and not spend enough time writing their own.
Professional programmers copy code frequently and it is a respected practice. But things are different for students. Students need practice creating their own code from scratch. Mr. Higgins has wisely supplemented the textbook with additional projects. I firmly believe that textbooks are valuable but should serve as starting points and not be considered as the end all and be all of teaching.
Mr. Higgins is also using an online content management system with his classes. This makes it easier for students to turn in their work. Collecting computer science projects is not like other projects. That's because one generally wants to execute the code and review source code. It's a struggle at times to keep track of everything. Mr. Higgins' solution seems to be working for him. How are others of you solving these problems? Or are you?