CIT 591 Textbooks and Resources
Fall 2009, David Matuszek

Required Textbook

A Byte of Python, v1.92 (for Python 3.0)
by Swaroop C H

This book should be used, rather than just read. If you are sitting at a computer with Python running (from the command line or the IDLE application) and trying things as you go, you will learn a great deal about programming. If you just read the book, you will have the illusion of having learned something.

Recommended Textbook

Murach's Java SE 6

Murach's Java SE 6: Training & Reference
by Joel Murach, Andrea Steelman, Doug Lowe

  • Paperback: 832 pages
  • Publisher: Mike Murach & Associates (April 20, 2007)
  • Language: English
  • ISBN-10: 1890774421
  • ISBN-13: 978-1890774424

I like this book because it has good, detailed explanations of each topic, and good examples to go with them. It's also a book in which you can read about topics (after the first three introductory chapters) in pretty much any order you need to--you don't have to read front to back.

Software and Additional Documentation

Essential:

Python3.2.2 Download
This is the software you need to install on your computer in order to write Python programs. Do not get the older Python 2. Note: This download contains IDLE.
Python 3.2.2 Documentation
I recommend downloading this to your computer (python-3.2.2-docs-html.zip). For CIT 591, the most relevant document is the Language Reference, but there is a lot of other value here.
Java SE Downloads
This is the software you need to write Java programs. Download the latest version of JDK 7 (not the JRE; it's included in the JDK) from here. You should also download the documentation from this same page. The API describes all the classes and methods you need to use; it does not, however, cover Java syntax.
Eclipse
This is the IDE (Integrated Development Environment) you will use to create Java programs. I recommend the "Classic" version, as it includes most of the things you will need.

Online Python books:

A Byte of Python, v. 1.92
Probably the best book for beginners, but it does leave out a lot.
Dive Into Python 3
A very highly regarded, reasonably complete, full-size book.
An Introduction to Python
By the inventor of Python. Very short, very good, fairly complete, suitable for experienced programmers.
Python Language Reference Manual
Companion book to An Introduction to Python; suitable for experienced programmers.
A Concise Guide to Python
My own summary of what I think is most important in the language. Still being added to.
 

Useful:

10 Free Python Programming Books
The two most interesting of these are How to Think Like a Computer Scientist, which is nice and short; and Dive Into Python, which is comprehensive, available in several languages, and has a section on unit testing.
Free Java Books
There are longer lists of free Java books, but many are very specialized. These books (with the exception of the Data Structures & Algorithms book) are for people just learning the language.
The Java Tutorials
Sun (the maker of Java) has truly extensive tutorials online. If you want to read lots and lots of material about Java, not just our skinny little textbook, this is the place to go.
CETS Answers
All kinds of important information from our computer support group.
Java Syntax Pages
Because the API does not describe Java syntax, I wrote up these pages as an online resource. They cover most of the basics of Java, but are not complete by any means!
Java O-O concepts
This is a page I wrote in an attempt to describe all the concepts involved in Java Object-Oriented programming. You can use this as a study guide for the conceptual part of the final exam.
Java 6 API on the Web.
This is where you can read the Java documentation on the Web, if you are at a computer that does not have the documentation installed.

Interesting:

Joel on Software
A worthwhile blog, by a programming manager. His Archive is full of interesting articles; check it out in your spare time!
The Daily WTF
A real-life chronicle of management stupidities, interview stupidities, and code stupidities. Often amusing, and a good place to learn about things you should avoid doing.
xkcd
This is a webcomic that I frequently enjoy. Many of the jokes are "insider" jokes.