INFS 519
Program Design and Data Structures
Fall 2013

Notice: one week extension on Program 2 (now due November 7)

Syllabus

The course syllabus can be found here.

Graduate teaching assistant

Indranil Banerjee
email: ibanerje_AT_gmu.edu
office hours: Tuesday 4:00 pm - 6:00 pm in Nguyen Engineering Bldg. 5321

Programming assignments

Program 1 is here.
   Sample operations for Program 1 are here.
Program 2 is here.
   Code which may be helpful for your delete() is here.
   The "Copy.java" file with code for reading and writing files is here.
   Sample operations for Program 2 are here.
   These operations will use the file: addresses.txt.
Program 3 is here.
   For your sample terminal session use the operations and file listed above for Program 2.
   The Table class for Program 3 is here.

Exam dates

Midterm exam: October 10 (normal class time)
Final exam: December 12, 4:30 - 7:15
A review sheet for the final exam is here.

Resources

You will be programming in Java. On what system is up to you. If you will be programming at home you will need some software.

Java

You will need both the Java runtime and the Java compiler and tools on your system. They can be downloaded (for any system) from http://www.oracle.com/technetwork/java/javase/downloads/index.html. This includes the Java compiler javac.

Documentation for the classes in the Java library are at http://download.oracle.com/javase/7/docs/api/. Bookmark this site.

IDEs

Perhaps the most straight forward way to program is using an integrated developement environment (IDE) which include and editor, debugger, and allows you to run your program without leaving the IDE. The most popular IDEs are Eclipse (download here) and Netbeans (download here). A simpler IDE (but one that is more than sufficient for our purposes) is jGrasp (download here).

Editors

If you prefer to compile from the command line rather than use an IDE you will need an editor. Two excellent programmers' editors are Emacs and jEdit.

Emacs is a powerful programmer's editor which is available on virtually all Unix or Unix-like systems (e.g. Linux, Mac OS X). Learning Emacs is not particularly easy, but it is worth the effort. When you start Emacs typing ctrl-h t will start a lesson on how to use it. If you get frustrated you can get a session with a psychotherapist by typing alt-x doctor (or esc x doctor). Several tutorials on using Emacs are available on the web (Google "Emacs tutorial"). A Windows port can be downloaded from http://ntemacs.sourceforge.net.

jEdit is an editor whose operation is similar to a word processor. It is available from http://www.jedit.org/. It runs on all relevant systems. jEdit is easy to learn and complete documentation is available on the jEdit website.

Debuggers

If you have not yet learned to use a debugger now is the time. A half hour spent learning rudimentary use of a debugger now will save you hours of pain and suffering throughout the semester.

If you are using an IDE you have access to the included debugger. Consult the website for your IDE for for information

Another debugger is jSwat which can be downloaded from http://jswat.sourceforge.net/. A (very) short note on getting started with jSwat is included in the download or can be read here.