Slashdot Mirror


Seeking a Solid Java Textbook?

StudMuffin asks: "I am teaching a Master's level Introductory Java Programming class, at the University of Michigan in January, and am on the hunt for a solid Java textbook. This class is aimed at grad students (who obviously have a bachelors degree, so they are assumed to be able to think on their own) with no programming experience. Specifically, I would like to ground them in good Object Oriented principles, solid program design techniques, and finally in the actual syntax of Java. I would rather think of this as a 'How to program well' class that happens to use Java as the language over a 'Java class' that happens to cover programming. I would like to stay away from the applet heavy books that I tend to find, focusing instead on the topics above. Any ideas?"

11 of 93 comments (clear)

  1. Oxymorons by acxr+is+wasted · · Score: 5, Funny

    I never thought I'd hear the phrase "Master's level Introductory."

    --
    "Come on, let's go drink till we can't feel feelings anymore."
  2. I was there 2 years ago... by Artie_Effim · · Score: 3, Interesting

    and while I cannot single out a textbook for you, I urge you to spend 3 classes on UML. Understanding an object and it's methods really helped me, the language was secondary to that; hell, I just used the API ;).

  3. Thinking in Java by skaffen42 · · Score: 4, Informative

    Check out Bruce Eckel's Thinking in Java. Not really a textbook in the classic sense, but sounds like what you need. Also available in an HTML version.

    --
    People couldn't type. We realized: Death would eventually take care of this.
    1. Re:Thinking in Java by EllF · · Score: 3, Informative

      Backing this up. Thinking in Java, available online, is the single best textbook for learning Java in existence. I'd *highly* reccomend getting the bound version, but look into the online edition to see if it meets your needs if you're reluctant to drop the dough.

      --
      We who were living are now dying
      With a little patience
    2. Re:Thinking in Java by rhild · · Score: 4, Informative

      Another thumbs up for 'Thinking in Java'. I can't think of a better book for someone intelligent, but new to programming. It covers lots of important concepts prior to introducing the language itself.

      I have plenty of Java books nearby and this is probably the most dogeared of the lot.

      The title says it all, 'Thinking in Java' gets the reader in the right mindset to understand a topic and 'why' things are the way they are.

  4. SICP -- The "Bible" by Lacertus · · Score: 3, Interesting

    I always wished I would come across an instructor who took "Structure and Interpretation of Computer Programs (abelson, Sussman & Sussman [see here SICP]) and mappend the fundamental theories presented therein to whatever language was currently invogue during that class/age.

    Mere learning of language, for the fit of mind, is a simplicity - you're talking maybe 4 months at the outside to learn the syntax of $x language, thru and thru. However, with the ideas presented in SICP, you can accomplish nearly any theoretical CS task. The implementation (though fun) is the easy part.

    I might recommend your assigning sections apropos to your course from the book as homework; in class, project the particular Java syntax upon those principals presented in the text.

    A most rewarding class would result, I think!

  5. In addition by xagon7 · · Score: 3, Informative

    ..Thinking In Java IS a great book, but I also think Ivor Horton's "Beginning Java" is another perfectly suited book. There is a 1.4 edition out now. I simply cannot praise "Beginning Java" highly enough, it is the book I used to teach myself. Sometimes he is very verbose, but he certaintly gets the points across.

    1. Re:In addition by Jucius+Maximus · · Score: 3, Informative
      "..Thinking In Java IS a great book, but I also think Ivor Horton's "Beginning Java" is another perfectly suited book. There is a 1.4 edition out now. I simply cannot praise "Beginning Java" highly enough, it is the book I used to teach myself. Sometimes he is very verbose, but he certaintly gets the points across."

      I used this book in my own first year CS java course. I think that it does quite a good job of teaching exactly how to program in Java and how to use its object oriented techniques and other tools like overloaded constructors and polymorphic programming to your advantage. It would probably be appropriate to the submitter's needs.

      The thing to remember about Horton's book is that it is very specifically about how to program IN JAVA. It is not so great if you want to learn the things that CS is really about. It does not spend much time on algorithms or or the ever-important discrete structures. If you want to teach about those in java, I suggest you look up is Data Structures and Algorithms in Java by Goodrich and Tamassia. It assumes you know some java beforehand, and jumps right into some very good explanations of those things that CS really is about. I've used it and found it very informative and easy to understand.

  6. How about ... by Anonymous Coward · · Score: 3, Informative
    How about Barbara Liskov. Program Development in Java: Abstraction, Specification, and Object-Oriented Design. Addison Wesley, 2001.

    Used by MIT in the class 6.170 Laboratory in Software Engineering, which is part of the Open Courseware offerings, so you can see the lecture notes and see what they do with it.

  7. Beginning Java Objects by jpkunst · · Score: 3, Informative

    I recommend Beginning Java Objects: From Concepts to Code, by Jacquie Barker. It looks at object-oriented thinking and design first, and code second. (if I remember correctly, the first part of the book only uses pseudo-code).

    JP

  8. Focus on OOP, not on Java by Tal+Cohen · · Score: 4, Informative

    Like other said before me, if the point is teaching Java, there's no better book than Bruce Eckle's "Thinking in Java", which is available electronically from Eckle's website. (The 3rd edition is new, I haven't read it specifically. My opinion is based on previous editions.)

    I suggest, however, focusing on OOP, rather than on Java. A programmer who groks the fundametal concepts of OOP will have a relatively simple time adapting to the specific tidbits of Java. For this purpose, the best teaching language is Eiffel, and the best book is Object-Oriented Software Construction by Bertrand Meyer.

    --
    - Tal Cohen