CIT 591 Programming Languages & Techniques
Here are the textbooks for this course:
Software Solutions: Foundations of Program Design, Updated (With CD-ROM)
by John Lewis, William Loftus.
This is very good, but it's expensive, and there is no requirement to have exactly this book; others might do as well. See my Java Resource Recommendations for less expensive alternatives.
Elements of Java Style by Al Vermeulen (Editor), Scott W. Ambler, Greg Bumgardner,
Eldon Metz, Alan Vermeulen, Trevor Misfeldt, Jim Shur, Patrick Thompson.
It's cheap. It's good. Buy it.
Software and documentation you should install: