CIT 594 Requirements and Resources
Spring 2007, David Matuszek

Hardware

Although it is possible to do all your homework on the CS department computers, it is much easier if you have your own computer.

Nearly any computer that runs Windows or Linux will do fine. If you use a Macintosh, you should have one that supports Mac OS X 10.4.2 ("Tiger"); basically, a G3 or better with Firewire: See http://www.apple.com/macosx/upgrade/requirements.html for specific hardware requirements.

Java 5

CIT 594 is taught in the Java language. You must already be a Java programmer before taking CIT594; Java is too complex to just "pick up" as you go. If you already know a previous version of Java, but not Java 5, you should get the book Java 2 v5.0 Tiger: New Features by Herbert Schildt ($25 from Amazon); this will get you up to speed quickly.

Java 6 has just become available, but is not yet installed in the labs. It does not appear to contain any features of interest to us in this course, and may be difficult for us to run. Please stay with Java 5 for the present.

You will need the Java 5 JDK (Java Development Kit). Java 1.5 is exactly the same as Java 5, so don't be confused by the inconsistent numbering. Note that the JDK download includes the JRE (Java Runtime Environment).

Download and install the Java API (that is, the documentation) at the same time.

You do not need to download the version that includes NetBeans (although you may if you wish); we will be using Eclipse instead of NetBeans in this course.

Some assignments will require Swing GUIs. For this, download the SwingExamples program from http://www.cis.upenn.edu/~matuszek/General/SwingExamples.jar. (If you have Java installed correctly, you can run this program just by double-clicking it.) This program provides sample code for the most commonly used Swing features.

Eclipse

We will be using the Eclipse IDE, available from http://www.eclipse.org/downloads/. This is required software.

I have a Getting Started with Eclipse page, and also an Eclipse FAQ. There aren't many questions on the FAQ, because I haven't gotten many questions from students. I welcome suggestions for additions or improvements, on this or any other of my pages.

Eclipse also comes with some good tutorials, available from the "Welcome" page.

JUnit

JUnit is a framework for testing your programs. It was used extensively in CIT591, and will be again in CIT594. The software itself is easy to learn, but it takes some discipline to use it properly--you really should write the JUnit tests before you write the code that is to be tested. This is a difficult thing for some programmers to get used to.

If you are unfamiliar with JUnit, read the following two articles:

  1. Test Infected: Programmers Love Writing Tests at http://junit.sourceforge.net/doc/testinfected/testing.htm.
  2. Unit Testing in Eclipse Using JUnit at http://open.ncsu.edu/se/tutorials/junit/.

JUnit is included in Eclipse, so you don't need a separate download. See also my Getting Started with Eclipse page to learn how to use JUnit in Eclipse.