CIT 594 If you did not take CIT 591...
Spring 2007, David Matuszek

If you did not take my CIT 591 course, or if you took it a long time ago, here are some things you need to know.

Course materials

I will give mostly the same lectures as last year, probably slightly updated (data structures and algorithms don't change that fast), but almost certainly in a different order.

I give different assignments and different exams each year.

This year my daughter Laura is taking this course. Therefore, to avoid any conflict of interest, my TA, Saajan Patel, will be doing all of the grading. I will still look over some of your programs and may comment on them, but this will not directly affect your grade in this course.

We may do pair programming

We may use pair programming for at least some of the assignments. Or maybe not. I'm still trying to figure out the details.

We will use Java 5

If you are a reasonably competent Java programmer, but you are not yet familiar with enums and generics, I recommend that you purchase Java 2 v5.0 (Tiger) New Features by Herbert Schild. This book will bring you up to date.

If you are not already a reasonably competent Java programmer, you should drop this course. I don't care how good you are at C++, Java is not a language you can pick up as you go along. There's too much to learn all at once.

We are not yet using Java 6. If you prefer to use Java 6, please be sure that your assignments also compile and run under Java 5.

We will use Swing

I provide a program, SwingExamples.jar, that will show you examples of coding the most common Swing components. This is a double-clickable application. It is designed to be run; I do not recommend trying to read and emulate the source code. If you need additional Swing components, you are expected to be able to read and understand the Java API.

We will use Eclipse

If you already use NetBeans, IntelliJ IDEA, Borland JBuilder, or a similar high-end IDE, you will find Eclipse easy to pick up. If you write all your programs with Notepad, Eclipse will be harder to learn; do it anyway.

We will use JUnit

I emphasize TDD (Test-Driven Development) and JUnit testing. These are easy to learn. Read the following articles (preferably in this order):

  1. Test Infected: Programmers Love Writing Tests at
  2. Unit Testing in Eclipse Using JUnit at

We will use Blackboard

All assignments, unless otherwise noted, are to be zipped and turned in via Blackboard. In the case of pair programming, only one copy of the assignment (with both names) should be turned in. We do not accept assignments sent by email.

We will grade you on style

The formatting conventions you are expected to use are (mostly) those defined in Eclipse as Java Conventions [built-in]. You should Javadoc all non-private fields and methods. You should follow good programming practices, such as (for instance) following the DRY principle. In all cases, the goal is to make your program as easy to understand as possible.