|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
From... The best Java books for beginners
January 22, 1999 by Laurence Vanhelsuwé (IDG) -- Until, say, 1996, I wouldn't have blamed any teacher still using Pascal as the main teaching prop in an introductory computer science curriculum (often code-named CS 101 or CS1). The obvious alternative (C++) was quite rightly considered by many teachers to be a pedagogical minefield. Today, however, there is no excuse: If you're not using Java to give your students their first taste of programming, then you are leaving the door wide open to being rightfully accused of not giving your students the best possible computer science education. In the past year, a small minority of teachers found themselves unsatisfied by "just" pushing the teaching envelope in their respective classrooms (that is, by ditching Pascal and the legacy of its generation's procedural programming style, and adopting Java and its modern object-oriented programming style). These pioneering few went a step further by writing teaching texts for complete beginners, betting the whole shop on Java. This month's book review takes a look at seven books that share the goal of teaching complete non-programmers how to program, and to do so with Java. (Notice that these books are quite distinct from those books designed to teach Java to programmers who've never used Java before. These books are for students who've never programmed with any computer language before.) The titles reviewed are:
Below is a comparison table to provide you with a bird's-eye view of each title's main characteristics. For a more in-depth review of each book, click on the link to its title in the IDG.net Related Stories box below.
** Strictly speaking yes, but the CD-ROM content is unrelated to the book's content! In the absence of tools to calculate the true cost-per-bit equivalent of a book, the "Listings density" row gives you an idea of how dense or "aerated" the program listings are. Low lines and/or page values usually mean unreadable listings and a high page-fill factor, so the higher this value, the better. The "Object-oriented early?" row indicates how modern the text is. Modern texts tackle object-orientation first, while conservative texts start by exploring procedural programming concepts. Although conservative texts need not be problematic, per se, you are advised to consider first texts that submerge you in the modern computer-science world view of object-oriented software. The "Applets or applications?" row indicates which type of Java programs the authors primarily use. Java applets tend to be regarded as more fun (or "cool") by new students, so there's a lot to be said for texts that use lots of applets, especially early on. The "Graphics early?" row indicates whether the author(s) let the student use graphics programming early on. Letting students see their programs "live" by way of dynamic, graphical output (instead of comparatively boring, plain text output) is a proven approach to get students interested in a programming course.
The "Support classes?" row indicates whether the authors attempt to shield students from Java's few student-unfriendly facets, by interposing some support classes (a text-formatting class, for example) between example programs and the raw Java classes. The "Keywords highlighted?" row indicates whether the text enhances its program listings by highlighting keywords (and maybe other grammatical elements, such as program comments). Since even software veterans appreciate such highlighting (on the screen, as well as on paper), you can bet that such highlighting could significantly help students new to programming comprehend their first batch of examples. The "Suitable for hobbyist?" row indicates whether the text takes the reader through all the necessary steps to fully install and configure a working Java software development environment. Most texts leave significant gaps in this area, presumably relying on a real-life teacher to be at hand to help with such initial tasks. Let's do the Bubble Sort Shuffle... and see which books sink and swimThis month, picking winners and losers needs to be done from two opposite perspectives: from a teacher's perspective and from a student's. A bit like magicians and their endless repertoire of tricks, teachers can never master enough pedagogical techniques, or own
enough teaching props, or know enough well-trod, proven paths through some complex subject. In view of this, I'd suggest
teachers go out and buy copies of the following titles (yes, all of them):
If you distill the best from all these titles, your course will be dynamite, and your students will emerge from your classroom as competent Java developers. As a teacher, you may also want to browse Java -- An Object First Approach, by Fintan Culwin (Prentice Hall), simply to make doubly sure that your course's approach does not resemble this book's approach. If you're a student, you need a text that teaches you the right mix of material, in an order that makes sense, and without teaching you things that are wrong or that you will have to unlearn later. The three titles enumerated above actually come close enough to delivering those common-sense requirements (oh, and by the way, don't let the very latest Java 2 platform release confuse you: you do not need this latest version of Java to learn Java. Java 1.1 (the previous stable release) is the best choice for beginners). If, for some reason, you already know that you wish to concentrate on Java, as opposed to learning the fundamentals of modern programming using Java, then Java How To Program, by Deitel & Deitel (Prentice Hall) is packed with suitable information and exercises. None of these books are exactly cheap, but their price can be put in a more realistic perspective if you consider that these books can teach you a skill that will eventually allow you to earn their cover price in a single hour (as a software consultant). Laurence Vanhelsuwé is an independent software engineer. Self-taught, he dropped out of college and immediately started a professional career writing arcade games. He has worked on X.25 WAN routers, virtual reality flight simulation, Postscript, and realtime digitized video-based traffic analysis. Vanhelsuw is on sabbatical and is not responding to email. Comments to jweditors@javaworld.com | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Back to the top © 2000 Cable News Network. All Rights Reserved. Terms under which this service is provided to you. Read our privacy guidelines. |