gpollice

Why is it so hard to find books for a Webware class?

In Computer science, Teaching, Web on May 10, 2012 at 9:06 pm

I just finished teaching Webware at WPI for the fourth time. I seem to get the opportunity to teach it every two years. The course is supposed to give the students a basic understanding of how to build applications that are delivered over the Internet, typically through Web browsers. The course description in the catalog is a little bit out of date, but it covers the main things students should expect to encounter in the course. Each time I’ve tried to teach this course I’ve struggled to find a single book that covers all of the material in the depth I expect my students to be able to handle. Each time, I’ve been unsuccessful.

The first problem that always seems to occur is the fact that books on Web application development are almost always out of date. This occurs more with this course than any other course I know of. The landscape of Web development changes at such a rapid pace that by the time a book is ready—whether it’s a new book or a new edition of an existing book—it’s quite out-of-date. It seems like the only way to keep up-to-date with Web development is to scour the Web for recent developments. If you’re like me and only teach Web development every couple of years, you probably don’t have the time to spend the time required to do this regularly. So, like me, you end up cramming for the information every time you’re going to give the course.

The second problem with finding a book, even if you can find one that’s recent is that so many of the books try to survey the Web development topics rather than go into depth in any of the subjects. If you’re blessed with having really good students, as I am, this becomes a problem. The books are just not something that they’re going to get much out of. The last time I taught the course we didn’t use a book. That didn’t work. Students want a book that presents the material covered in class. They want something they can read and study, all in one place.

The second time I taught the course we used the current volume of Sebesta’s Programming the World Wide Web. Some parts of it were quite good, but not enough to make the book a good fit for my class. Random chapters on PHP, and other topics that the students were never going to use for the class, with reasonably shallow treatment of the topics were reported by the students in their course evaluations as the major negative of the course.

The fact is, that you need material from several sources. The problem is that books are really expensive. This time I thought I’d try a custom textbook. There were three books that I found covering JavaScript (JavaScript by Example), Web site design (Basics of Web Design HTML5 & CSS3), and general HTML and Web topics (Internet & World Wide Web How to Program).  All of these were from the same publisher, Pearson, and they offer the possibility of customizing a text for a class.

I selected the appropriate chapters from each book, submitted my choices, and then found out that two of the books were not available for custom texts. That left me with just Deitel’s Internet & World Wide Web book, the weakest of the three. I have found that most of the Deitel books are rather shallow in their coverage of a topic and are at a level that is much too easy for most of the students I have. However, time was running short so I thought I’d select just a subset of the book that addressed topics I knew I’d cover. Since the Deitel book is a paperback book costing over $120 (with extra cost if you want their on-line chapters), it seemed too expensive for the value of the content.

It turns out that the sixteen chapters that I selected cost $91. At face value, this was a little bit better. However, the whole Deitel book was selling for less than $90 on Amazon. What really sealed the deal for my students buying the book from Amazon was that the custom book ended up getting printed from an old edition, not the current edition that covered HTML5 and CSS3.

I’m still hoping that it will be possible to create a custom text for this course. I may try to get it from more professional publishers like O’Reilly and The Pragmatic Programmers. The books from these publishers were ones that I actually used more than the broader Deitel book. I’ll provide a review of these books in my next post.

Advertisements
  1. It is my opinion that books teaching online skills need to be delivered online. The authors can update them continuously if they choose. Delivering content for Nook, Kindle and the like requires the same state-of-the-art techniques and are delivered to Nook, Kindle and the like. Print is nicer, but that is whining. /s/ Bill

    • Actually, almost all of my books lately are e-books, especially for Web and coding topics. The professional publishers do a good job of getting them out. I’ve also found that I like many features of e-books better than the printed ones. They get updated quicker. When you buy a book from the Pragmatic Programmers, you get updates forever. The downside is that you either have to keep the previous versions or you lose your bookmarks, but this is true with printed books. Searching is much easier in the e-books than it is in the printed ones.

      I like print for some things, but those books that I’m really going to use when I’m at the computer do fit my workflow better when they’re in electronic form. I want the more theory-oriented books to be paper so I’m not sitting in front of the demon machine when I’m reading.

  2. Such a tough problem. Books go out of date practically before they’re printed. I recently gave away an HTML5 book I had received as part of a 2-day class because it’s already out of date. Add to that the fact that there’s so much going on right now in web development (integration with mobile platforms, client-side architectures, cloud-based apps, etc) that it’s almost impossible for a book to cover it with sufficient breadth/depth. Is it possible to get by without a textbook and teach from the hip?

    • Liam, I’ve done that before. The problem for the teacher, if you’re not working with the topics every day is that it takes time to gather some resources to put together a cohesive course. Even with the book, I tended to do most of my lectures this term using demos. We used Aptana Studio as the IDE and the Heroku cloud, Git, and a Sinatra-based server in Ruby. It was simple enough for the students to keep up with and was a lot better, in my opinion, than slides. I always use the W3Schools Web pages for reference and tutorials and the students got used to that. The major problem is that students still want to have just one or two sources to study from.

      • You might want to move away from the W3Schools web pages for reference, they’re not so great (outside of their fantastic SEO skills)- take a look at http://w3fools.com. The MDN https://developer.mozilla.org/en-US/ is pretty good, personally I use http://dochub.io/ which I’m pretty sure is driven by the MDN but is a little easier for reference.

        Also, I wonder if node.js will ever make it into a webware class… It’d be pretty sweet to have an assignment based on websockets.

      • W3Schools is quite sufficient for what I’m doing and the interactive tutorials really make it easy to demonstrate some tings.. There’s also good stuff at HTML5Rocks. As for Node.ja and websockets, they’re yet another technology that’s in current favor. They don’t necessarily add much more to the basic principles of Web application design that I try to get across in the course. It’s also a little more complex than the simple server-side material I use with Sinatra. One of the problems is that people tend to see Web development as just going with the latest techno-fad rather than focusing on the right principles and patterns. You can learn the different technologies once you understand the foundations. What I did find out yet again is that many of the students know how to hack a Web application, but most of them really don’t understand what’s really happening. Starting them off with things like jQuery (instead of learning JavaScript first) or Rails (before understanding how to handle routes, HTTP messages, etc.) does a disservice to them in my opinion.

    • As Gary can tell you, I always taught from the hip. It works for some students, and is less effective for others. But it was never boring. One good thing is to avoid the bloated texts that bend the shelves of B&N. Page count has somehow been equated to “good”. Now that is boring. Perhaps SAGE offers a direction. It can be entirely web based, is continuously updated, and provides enough documentation in the form of online help. I do use a Python paper tome in conjunction with it. /s/ Bill

  3. I feel that the “text” part of textbook is the only really important part of a book for a class, if the index for a book is poorly constructed it can make a good book suffer, and the turn around time for writing, editing, approval, printing, and distribution of paper books will keep them from being a truly effective means of disseminating the current information on the shape of the Web. The combination of these points leads me to think that the Web itself is the best way to teach programming for the Web. You can get all of the information that you need for your classes for free by having a well researched set of bookmarked pages, reliable sources that can be up to date, searchable, and lead your students to understand that the answers are available when you know where and how to look for them. There are many people that need to have things presented to them in hard lines, laid out to follow along, and this is always something that can be provided so long as there is someone who puts the work into arranging the information into a followable path (like a book).
    The technology that you are trying to teach should really be folded in on itself to create something like what codeacademy.com is doing. They don’t have a perfect setup, but I’m sure you can see the benefits of what they are doing with the technology. Throw in some video instruction and a few well placed links alongside the incremental code sections and your class would practically teach itself.
    There’s no point in buying a textbook that is ridiculously overpriced, out of date, and padded with filler and code, if you are not likely to read it. To have a new form of book that is free (or $0.10 a page to print at the library if you’re a real tree hater), gets right to the point and is current is what the future should be about. You wouldn’t have to worry about leaving out chapters or having to wait for people to get their books shipped from amazon, just focus on the best way to arrange the links and keeping things up to date. This would probably make a really great project for a few lucky students.

  4. If you just use the Web for your material, there is a problem in that one is not always connected; at least, I’m not. I have an iPad, but not with my phone plan. If I don’t have wireless, I’m not able to get on the Web. I at least have my e-library on it and can read it. We are also faced with the dilemma of students who, frankly can’t afford total electronic connectivity and immersion (although that is less of a problem today than in the past). Some of your points are worth thinking about. Making the well-defined path is hard actually, especially since Web pages come and go and URLs change.

    These things can be overcome, but not without effort—sometimes significant effort. Having the publishers update their e-books is a help.

    I like the idea of open books that can be published, in part for minimal cost. That’s what I was hoping for with the custom book. My book in progress on software engineering is one that I’ve decided to self-publish for a nominal fee. Electronic will be very inexpensive and paper will cover the cost of printing plus a couple of dollars.

  5. The demos were great; I could usually get the most parts of the assignments done by going through the demos. Books came into play when I was in doubt, couldn’t figure out why my code wouldn’t work, when I was preparing for the exams, or when I occasionally fell asleep during a lecture (sorry but it was a 9am class!!), or when the wireless in the library was so bad that I just gave up going online.
    Although people above think the “text” part of a book is the best — I found reading through all the repetitive texts not that worthwhile, especially after I’ve already listened to the lecture, played around in w3, and did tons of Googling, and then going through all the ABCs again in all the textbooks made me impatient… Besides I was never able to finish reading all the “texts” in all the thick books, at least not at our 7-week WPI… I usually just look through all the code examples and only when I was wondering why some code was written that way would I go back and refer to the text explanations. (By the way the JavaScript by Examples was great.) Reading code is much faster than reading texts, and I think all the important points should be included in code. Maybe I’m just too lazy…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: