On Textbooks
I thought I'd answer Alfred Thompson's recent post on using textbooks. Like Alfred, I've never used textbooks particularly effectively. Even when I taught math I mostly used them as a resource for problems.
I also agree with Alfred in questioning the "flipped class" model or as I like to call it "homework" for reasons similar to Alfred's.
Even back in the Pascal days of APCS getting textbooks was an ordeal in NYC. First, the book had to cover both the A and AB parts of the class since I rarely had budget to buy two books for a class, then they had to be sold by the high school division of the publishing house eliminating many college texts and finally we had to get the books on the "NYSTL list" so we could buy and pay for them.
I finally found a book I liked that covered the full year by Nance and Naps. By then I knew that I wouldn't really work it into the class but I felt that it explained things, the data structures and algorithms in particular very well.
That's one thing I always look for in a text book. If I'm not tightly integrating the text then I want the text to be a worthwhile resource for the student. If a kid doesn't get it in class I want the text book to be a second chance.
When we moved to C++ we moved to Nance and Naps for the language and Nance and Lambert for the Data Structures. Somehow I got the school to fund both books.
Everything changed when the AP class went to Java. I never found a Java based book that covered the data structures in a way I liked but finding a text was a problem even beyond that hurdle.
All of the Java based texts tightly integrated with some project or library provide by the author. It was just like the AP case study. If the case study worked well into your course and the way you taught it was great, otherwise it was a bear to deal with. I settled on Lewis and Loftus which integrated their own graphics library but always as an add on to each chapter rather than tightly integrated.
For my homebrew classes, I've never found a single textbook. The nice thing today is that there are so many resources already available. Tutorials, videos, online practice sites like codingbat and more. There are also a number of authors who make their books available online for free. I use one - Automate the Boring Stuff with Python in one of my classes but I purchased a copy for myself and encourage my students to do so as well if/when they're able to based on economic situation. Usually I can cobble together a good set of resources for the students that are both free and probably superior to any single text book out there.
All of this said, it's important that students have resources independent of the teacher. If you can get a good textbook, that can be it but fortunately, in this day and age we have many great alternatives.