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?"

16 of 93 comments (clear)

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

    3. Re:Thinking in Java by Twylite · · Score: 2, Informative

      Another vote for TIJ, but, what are you trying to achieve with this course?

      Most responses here seem to be "teach 'em good OO". What is the goal of this course -- what are the students supposed to get out of it? Since they aren't CS/IS graduates ("no programming experience") I can only assume they either need to (a) change careers, or (b) use programming as a tool in their career.

      In the case of (a) one may contend that knowledge of OO design is important, but also that an introductory course is far from sufficient.

      In the case of (b) knowledge of design principles is not likely to be of significant and immediate use to your students. They would be better served by emphasising practical aspects of implementation in Java, focusing on solving particular problems, but being taught within a framework that implicitly demonstrates the benefits of good design. I'm imagining here students who need to create small programs for reporting, scientific and/or financial calculation, statistical analysis, etc. Although the software they write could benefit from good design, it is ultimately of little use to such people (if they really need an extensible robust framework/application, they'll hire someone with the proper expertise).

      So focus on the goals of the course, from the student's perspective, and not on just trying to drum good design principles into them.

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
  2. 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.

  3. OO Problem Solving Java x3 by prostoalex · · Score: 2, Informative

    I've taught Java for a year (undergraduate level though) when I was getting Master's degree, and have assembled a collection of books that publishers sent for evaluation. I think the one you would be pleased with is Object-Oriented Problem Solving with Java.

    It's not a book about programming and hence it received one star on Amazon from people who bought it trying to learn Java from scratch while they would have been better served by Deitel&Deitel or Lewis&Loftus.

    Chapter 1, for example, goes through "Designing good programs" and "Software life cycle", in Chapter 13 there is a whole section dedicated to threads, not just pure code samples to copy and paste, but discussion targeted towards high-level concepts.

    Disclaimer: I have not used the book for any of my classes, just merely browsed it in my spare time.

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

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

  6. 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
    1. Re:Focus on OOP, not on Java by curunir · · Score: 2, Informative

      I completely agree. Teach OOP concepts first, then students will have a much easier time groking Java when it's presented to them.

      IMHO, the best book for presenting OOP principles is Object Design: Roles Responsibilities and Collaborations. It presents most concepts in a language-neutral fashion.

      --
      "Don't blame me, I voted for Kodos!"
  7. Some books worthy of reading over and over ... by Bazouel · · Score: 2, Informative
    --
    Intelligence shared is intelligence squared.
  8. Core JAVA by aliquis · · Score: 2, Informative

    I haven't read any other boooks, and I don't intend to. The Core JAVA books has imho excellent quality and explains stuff very well. They also give nice hints and ideas on how to structure your programs, which seems like a much better way than the c++ like approach I would have done.

    They contains very simple language and information about the language, so anyone can understand it. They got lots of code examples and a small collection about intresting APIs after each part of text for the commands used in that part.

  9. Head First Java [the book you want] by Anonymous Coward · · Score: 1, Informative

    Head First Java is published by O'Reilly & Associates. You can more information at www.headfirstjava.com or read the reviews at amazon.com. The best part of this book is that it doesn't assume you understand programming and it spends a large amount of time developing your OOP skills. It uses simple (some times comical) examples with great exercises to help with the learning process. From the hfj website:

    See why Tim O'Reilly says, "This is the first really new approach to computer books that I've seen in many years. I think it's going to revolutionize how programming and other complex topics are taught."

    Hope this helps.

  10. Deitel & Deitel by Niet3sche · · Score: 2, Informative

    Have the greatest JAVA book I've come across. There's very little of this fumbling around in the dark with concepts as "what's abstraction?" and the like (even though all the high points of the language are hit - almost invisibly - in the text), and instead the book focuses on a more pragmatic approach that I found to be more of an "okay ... so you're a SMART chimp ... now let's take the language out and drive it around a bit", instead of a tome of terms. Very good book, that. I still use it to check myself against their code for client/server configuarations (in both JAVA and C) and ensure that I'm writing code that's reasonable.

  11. What NOT to get... by jabberjaw · · Score: 2, Informative

    An Intorduction to Object Oriented Programming with Java by C. Thomas Wu. The book is almost decent, but leaves me wanting a lot more. Another minus is that the binding quickly deteriorates.