CIT 594 Requirements and Resources
Spring 2008, 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 or later; basically, a G3 or better with Firewire: See http://www.apple.com/macosx/upgrade/requirements.html for specific hardware requirements.

Java 5 or 6

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. Java 6 is recommended, but if you are running Mac OS X earlier than 10.5 ("Leopard"), Java 5 will suffice.

You will need the Java 6 JDK (Java Development Kit). Java 1.6 is exactly the same as Java 6, 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, from the same page. 

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.

NetBeans 6.0

We will be using the NetBeans 6.0 IDE, available as described above. If you are using a Macintosh, NetBeans is available separately from http://www.netbeans.org/downloads/.

There is a short tutorial on using NetBeans at http://www.netbeans.org/kb/60/java/quickstart.html, but if you are familiar with Eclipse, you hardly need it--the two IDEs are very similar.

We will be using NetBeans rather than Eclipse because it has some profiling capabilities that Eclipse lacks.

JUnit

JUnit is a framework for testing your programs. JUnit 3.8.1 was used extensively in CIT591; in CIT594, we will be moving to JUnit 4. 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 Test Infected: Programmers Love Writing Tests at http://junit.sourceforge.net/doc/testinfected/testing.htm.

The above article still uses JUnit 3, but is an important introduction to why JUnit is important. For more up-to-date technical details, see the following two articles:

JUnit Cookbook at http://junit.sourceforge.net/doc/cookbook/cookbook.htm
JUnit Reloaded at http://today.java.net/pub/a/today/2006/12/07/junit-reloaded.html