CIT 591 Textbooks and Resources
Fall 2009, David Matuszek

Required Textbooks

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.

Java: Practical Guide for Programmers
Java: Practical Guide for Programmers
by Zbigniew M Sikora
  • Paperback: 178 pages
  • Publisher: Morgan Kaufmann (January 6, 2003)
  • Language: English
  • ISBN-10: 1558609091
  • ISBN-13: 978-1558609099

While everything in this book is still accurate, it does not include some of the newer features of Java. We will need additional resources for these features; a good summary is at http://www.myhomepageindia.com/index.php/2009/06/26/java_5_tutorial.html.

Recommended Textbooks

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.

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.6.2 Download
This is the software you need to install on your computer in order to write Python programs. Do not get the newer Python 3. Note: This download contains IDLE.
Python 2.6.2 Documentation
I recommend downloading this to your computer (python-2.6.2-docs-html.zip). For CIT 591, the most relevant document is the Language Reference, but there is a lot of other value here.
Sun Developer Network
This is the software you need to write Java programs. Download the latest version of JDK 6 (not JRE 6) 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. However, there are two plugins you should also install: (Directions for installing plugins can be found at http://agile.csc.ncsu.edu/SEMaterials/tutorials/install_plugin/.)

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.