advertising information

CNN.com
 MAIN PAGE
 WORLD
 ASIANOW
 U.S.
 LOCAL
 POLITICS
 WEATHER
 BUSINESS
 SPORTS
 TECHNOLOGY
   computing
   personal technology
   space
 NATURE
 ENTERTAINMENT
 BOOKS
 TRAVEL
 FOOD
 HEALTH
 STYLE
 IN-DEPTH

 custom news
 Headline News brief
 daily almanac
 CNN networks
 CNN programs
 on-air transcripts
 news quiz

  CNN WEB SITES:
CNN Websites
 TIME INC. SITES:
 MORE SERVICES:
 video on demand
 video archive
 audio on demand
 news email services
 free email accounts
 desktop headlines
 pointcast
 pagenet

 DISCUSSION:
 message boards
 chat
 feedback

 SITE GUIDES:
 help
 contents
 search

 FASTER ACCESS:
 europe
 japan

 WEB SERVICES:
COMPUTING

From...
JavaWorld

The best Java books for beginners

January 22, 1999
Web posted at: 11:30 AM EST

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:

  • Computing Concepts with Java Essentials, by Cay Horstmann (John Wiley & Sons)
  • Introduction to Programming Using Java -- An Object-Oriented Approach, by Arnow & Weiss (Addison-Wesley)
  • Java -- An Object First Approach, by Fintan Culwin (Prentice Hall)
  • Java For Students, Second Edition, by Bell & Parr (Prentice Hall)
  • Java Gently, Second Edition, by Judy Bishop (Addison-Wesley)
  • Java How To Program, Second Edition by Deitel & Deitel (Prentice Hall)
  • Object-Oriented Programming in Java, by Gilbert & McCarty (Waite Group Press)

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.

Java For Students Java Gently Java -- An Object First Approach Introduction to Programming Using Java -- An Object- Oriented Approach Object-
Oriented Programming in Java
Java How To Program Computing Concepts with Java Essentials
Price (U.S.$)$48.00$36.95$44.00$47.95$59.99$58.00$67.95
Pages, Chapters (Appendices)586, 29 (8)508, 15 (2)394, 17 (3)783, 14 (4)953, 16 (2)1063, 18 (6)624, 14 (3)
Authors2112221
GlossaryPoorNoYesYesNoNoExcellent
IndexPoorPoorV. PoorYesYesV. GoodYes
CD-ROMNoNoNoNoYesNo *Yes **
Listings density (lines/page)48565348585050
Object-oriented early?NoYesYesYesYesNoNo
Applets(A) or applications(B)?ABBAA&BA&BA&B
Graphics early?YesNoNoNoNoNoYes
Support classes?NoYesNoNoNoNoYes
Keywords highlighted?NoNoYesNoNoNoNo
Suitable for hobbyist?NoNoNoNoYesNoNo
Overall score6/104/102/107/108/106/108/10
* The book doesn't come with a CD-ROM, but Prentice Hall sells a different product that combines the book with an interactive CD-ROM. See the book's review below for details.

** 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.

MORE COMPUTING INTELLIGENCE
IDG.net   IDG.net home page
  JavaWorld home page
 Reviews & in-depth info at IDG.net
    IDG.net's programming tools page
  IDG.net's Java page
  IDG.net's personal news page
  Subscribe to IDG.net's free daily newsletter for developers and technical experts
  Questions about computers? Let IDG.net's editors help you
  Search IDG.net in 12 languages
 News Radio
 * Fusion audio primers
 * Computerworld Minute
   

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 swim

This 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):

  1. Computing Concepts with Java Essentials, by Cay Horstmann (John Wiley & Sons)
  2. Object-Oriented Programming in Java, by Gilbert & McCarty (Waite Group Press)
  3. Introduction to Programming Using Java -- An Object-Oriented Approach, by Arnow & Weiss (Addison-Wesley)

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

Related stories:
Latest Headlines

Today on CNN

Related IDG.net stories:

Note: Pages will open in a new browser window Related sites:

External sites are not
endorsed by CNN Interactive.

SEARCH CNN.com
Enter keyword(s)   go    help

  
 

Back to the top
© 2000 Cable News Network. All Rights Reserved.
Terms under which this service is provided to you.
Read our privacy guidelines.