So I have a number of textbooks in front of me, with at least one more coming. Four of the six are straight up networking textbooks, the fifth is a classic on Unix socket programming that would be a supplemental text, and the one coming is an O'Reilly book on
Java Network Programming that would also serve as a supplement.
Where do these evaluation copies come from? I actually paid cash for my Kindle edition of
TCP/IP Illustrated, Volume 1 a year and a half ago as I jumped into the course with very little notice. O'Reilly has an ebook based evaluation program, and I expect to receive a link for a copy of the ebook version of _Java Network Programming_ "any day now". The remaining books all came from Pearson, who provide a choice - either a traditional paper copy, or web access. No ebook option is offered. I would have preferred ebooks, and selected the paper book option as otherwise I would only be able to access the books when I had an internet connection.
The first thing to note is that of the 6 books, 5 are from Pearson, who have acquired Prentice-Hall and Addison-Wesley and thus moved into a dominating position in publishing for the college and university marketplace. So while there is certainly textbook choice, there isn't much publisher choice. Another element to consider is that ebook editions are available for all of these books except for the Unix socket programming text, although the price break for the Kindle editions is around 10%, so that $124 networking text doesn't get a whole lot cheaper in Kindle form.
Of the four networking texts from Pearson, two have "premium content" online. For both books, there is a scratchoff strip inside the front cover with a code that is good for 6 months of access. Presumably Pearson wants the instructors to use the online material in support of their courses. I considered this, and realized that it represents a fairly naked attempt to kill off the used textbook marketplace - the codes are onetime use and if used, the value of the used textbook drops rather sharply. I'm not playing that game. While I might adapt one of these texts, the course will not require that the students access the premium material.
In the case of one of the "premium content" books (Stallings, _Data and Computer Communications_, 10th edition) the two chapters on computer security are behind the online premium wall. I find this particularly egregious, and so the Stallings book is DQ'd from consideration from the very start.
Now I'm down to 3 straight up networking textbooks. The other book with premium content (Kurose & Ross, _Computer Networking: A Top Down Approach_) doesn't hide critical material in the same manner, so it remains in the mix for the time being. The premium content is related to class exercises and I can manage that on my own. It will be the student's choice whether they scratch off that strip.
The other two that are in the mix are Fall & Stevens (_TCP/IP Illustrated Vol 1, 2nd Edition_, the text I've been using), and and the 5th edition of Tannenbaum & Weatherall's classic _Computer Networks_.
So what are some of the differences and things of note?
Stevens and Tannenbaum both start from the bottom with layer 1 (the physical layer) and work their way up through the network stack. If I use one of these, I have to tinker with supplemental material so that I can get socket programming assignments going early on during the class. Neither of these books really pretends to deal with network programming anyway, but it's good for students to have at least some understanding, however cursory, of UDP and TCP before you tell them to start coding.
Kurose & Ross is structured very differently (It's that "Top Down" part of the title.) In looking it over, I can't help but think that this approach is a really good idea for several reasons. It puts me in a better place to give out assignments early on, and I think it's probably easier to motivate students by starting with applications, which is something they've already seen even if only as black boxes (e.g., web servers and mail servers.) Additionally, they do cover network programming - but they use Python (previous editions used Java). So if I go with this text, I'd want to have the supplemental textbooks available as I'm not inclined to dump a new language on students who are already dealing with lots of other things.
The fifth book is Stevens' _Unix Network Programming, Volume 1_ which would be a supplemental text for the C developers, and the sixth is the aforementioned O'Reilly book on Java Network programming. I will probably look for one or two other supplemental texts, but this is really the least of my concerns.
So basically, I am leaning towards Kurose & Ross despite the premium content issues because I like the order of presentation better. Now to start really looking at the books hard to see what's what. The next blog posting will discuss some of the challenges I perceive to exist given the online content.