Recommended Java™ Texts
This course is not about Java™, but you will be required to learn Java™ during the first two weeks. We recommend that you use
this book:
- Mary Campione, Kathy Walrath and Alison Huml. The Java Tutorial, Third Edition: A Short Course on the Basics. Addison Wesley, 2001.
A step-by-step introduction to all the features of Java™, with good examples and well explained. Does not assume familiarity with object-oriented programming.
The entire text is on the web, but not in quite the same order as the book:
We also strongly recommend:
- Joshua Bloch. Effective Java: Programming Language Guide. Addison Wesley, 2001.
A sophisticated book that explains in nice, short "items", about 60 useful tips about programming in Java™. Assumes knowledge of Java™ and an appreciation of programming in the large. Not easy going for the beginner, but well explained,
and well worth studying.
Other books that students have found useful in the past:
- Ken Arnold, James Gosling, and David Holmes. The Java Programming Language, 3rd Edition, Addison-Wesley,2000.
A much briefer explanation of Java™. Assumes more background; much less explanation about how to use Java™'s features. User interface libraries not discussed. New edition includes discussion of collection classes. Details at http://java.sun.com/docs/books/javaprog/thirdedition/
- David Flanagan. Java in a Nutshell, 3rd Edition, O'Reilly, 1999.
A reference book rather than a tutorial. Succinct but covers a lot. Assumes knowledge of a language like C. Details at http://www.oreilly.com/catalog/javanut3/.
- Ivor Horton, Beginning Java 2 -- JDK 1.3 Edition, Wrox Press,2000.
Tutorial introduction to all parts of Java™, including user interface libraries. No knowledge of other languages is assumed.
A big book (over 1200 pages!): you won't want to carry this around in your backpack!
- Bruce Eckel Thinking in Java, 2nd edition, Prentice-Hall, 2000.
Also available on-line at http://www.mindview.net/Booksl (but don't try printing it yourself, as it is over 1000 pages). This is written for the person who can already program, but wants to learn object-oriented thinking and the Java™ language. It goes into lots of detail on the tricky aspects like GUIs, multithreading, and remote method invocation.
Other References
- Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides.Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley 995, ISBN 0-201-63361-2.
The seminal book on design patterns, usually referred to as the "Gang of Four book". Organized as a catalog.
- Martin Fowler. Analysis Patterns: Reusable Object Models. Addison Wesley Longman, 1997.
A book on object models of problems, organized in the style of the Gang of Four book. Notation differs slightly from the notation we'll use, but that shouldn't be a major obstacle.
- James Gosling, Bill Joy, and Guy Steele. The Java Language Specification.
The official reference for Java™ by its inventors.
- Martin Fowler.Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. ISBN 0-201-48567-2.
A book on techniques for restructuring code to make it more readable, extensible, and maintainable without changing its meaning. Particularly helpful for those coming from a non-object-oriented background. Examples are presented in Java™.
Assignment Resources
CVS
There's a lot more that CVS can do that isn't mentioned in this quick start guide. Please read the documentation for more help.
To read the CVS manual on athena, use the command info cvs. Alternately, from Emacs, do M-x info RET m cvs RET, where M-x is pressing x while holding down the meta key or the alt key, RET is the return key, and you do not need to type any of the spaces. See, in particular, the sections "Starting a new project" and "Overview/A sample session". Additionally, if one or more of your group members wants to work from home, you will want to read the section on "Repository/Remote repositories."