Ok, when it comes to textbooks, they really should focus on the goal of somebody being able to utilize them whether they are in an actual classroom or not. Now, for many CS books, it isn't too difficult to do so, (I will state though having an instructor explain some of the concepts does make life much easier sometimes) but unfortunately not all Collegiate level textbooks are like this. I've seen textbooks from several departments that fail in this regard, but I have seen only one department that really fails in this respect. With that in mind, I want to draw special attention on textbooks made to focus on Math.
As somebody who in the span of the past year and a half has taken courses for High School Algebra, College Algebra, Trigonometry, and Calculus (Along with Acing every class successfully despite not having taken any legitimate Math courses since finishing Algebra 2 over eleven years ago) I have been able to compare how the instructors cover math concepts and how textbooks have covered the concepts. When I look at my notes for textbooks, they give a much better explanation on figuring out a problem than the textbooks do usually which really should not be the case. The exclamation point of this though came when I looked at some of the explanation with regard to Mathematical Induction in my Discrete Mathematics book. It states the basis and inductive steps correctly, but showing how to proving the inductive step is where it completely fails. Along with other flaws in its examples, I feel that the only reason for having the book is for the practice questions and that it was a waste of the $80 I paid for it.
With these shortcomings in mind, I feel that the current math textbooks need to be overhauled so that they can be utilized by students who are not in any formal classroom setting. It is very sad when I see a pseudocode example for a merge sort that looks so horrendous that I can possibly make pseudocode for it that is easier to read. One of the reasons for the programming concepts guides is cause some introductory programming books sometimes fail to cover basic concepts and theories. (One example is that the intro to Java book I had actually did not cover recursive algorithms, data structures, and PROPER exception handling (which means catching the exceptions and setting up a method that either allows the program to exit gracefully or recover and continue.)) Then again, who knows if some of the publishers will listen to this.