CIT 590 Textbooks and Resources
Spring 2013, David Matuszek

Required Textbook

Exploring Python, by Timothy Budd

Exploring Python
by Timothy Budd

  • Paperback: 278 pages
  • Publisher: McGraw-Hill Science/Engineering/Math; 1 edition (February 17, 2009)
  • Language: English
  • ISBN-10: 0073523372
  • ISBN-13: 978-0073523378

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 Programming
by Joel Murach, Andrea Steelman, Doug Lowe

  • Paperback: 836 pages
  • Mike Murach & Associates; 4th edition (November 4, 2011)
  • Language: English
  • ISBN-10: 1890774650
  • ISBN-13: 978-1890774653

Read the first three chapters of this book. Then use this book as a reference, looking things up as you need them.

Possibly useful

Eclipse I D E
Eclipse IDE Pocket Guide
by Ed Burnette
  • Paperback: 127 pages
  • Publisher: O'Reilly Media, Inc. (August 12, 2005)
  • Language: English
  • ISBN-10: 0596100655
  • ISBN-13: 978-0596100650

This is a very short introduction that will get you up and running in a hurry. Eclipse itself contains extensive documentation, for when you want to explore additional features

Software and Additional Documentation

Essential:

Python 2 Download
This is the software you need to install on your computer in order to write Python programs. As I'm writing this, the latest version is 2.7.3; but if a newer version of Python 2 if available, get it. Do not get the newer Python 3. Note: This download contains IDLE.
Python 2 Documentation
I recommend downloading the documentation to your computer, and putting it where you can refer to it frequently. For CIT 591, the most relevant document is the Language Reference, but there is a lot of other value here.
Java 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 and tutorials:

A Byte of Python, v. 1.92
A good book for beginners, but it does leave out a lot.
Dive Into Python
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
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.
Python tutorials
A categorized and very extensive list of online tutorials.
Python tutorial
This is at one of my favorite tutorials locations, TutorialsPoint. (My other favorite is w3schools, but they don't have a Python tutorial.)
 

Useful:

Free Python Books
Two of the more interesting books 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. Remember that there are some differences between Python 2 and Python 3--not a lot of differences, but enough to confuse a beginner.
Free Java Books
Books about older versions of Java are okay; newer versions just have more stuff. Java Programming for Kids, Parents and Grandparents looks like the most enjoyable of these books.
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 7 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.
StackOverflow
When you are totally stuck and your friends, TAs and instructor are no help, this is the place to go for help.
Reddit
This is a list of links to very recent articles about programming, of varying degrees of interest.
xkcd
This is a webcomic that I frequently enjoy. Many of the jokes are "insider" jokes.