CMSC 433: Programming Language Technologies and Paradigms
Syllabus / Readings /
Exams / Lectures / Projects
Projects will be submitted using a the
script ~mwh/hwsubmit.sh. Details can be found here.
All of the projects will be coded in Java; the Linux machines on which reside
student class accounts will have Java 1.4 installed. In addition, we will
encourage that students use the following two tools:
Dr. Java. This is an
interactive development environment for Java. Most notably it gives
one the ability to test class methods interactively using a read-eval-print
loop in the style of Lisp/Scheme/SML. It also provides an interface to
a regression testing facility, JUnit, described below.
JUnit. This is an infrastructure
that allows one to define special TestCase classes for testing other
classes. You can run testcases using the JUnit test harness, or the
one provided in Dr. Java. JUnit makes regression testing - which is
making sure that existing software still works after making a change to it -
Programming projects will be graded based on correctness. A
memory leak is incorrect behavior and you will lose points. A program that
you spent a lot of time on and "almost works", but doesn't in fact
work on any of the test cases, won't get you any points.
You may use any computing equipment you wish (such as
your home computer) to develop your programs. However, this is "at
your own risk". Your programming assignments will be
graded based on how they run on standard Unix machines. If you make use
of a language extension supported on your machine but not under Unix, or
if your programming environment doesn't support standard language
features supported under Unix, you will run into problems. No
alterations to conditions of the assignment will be made to accommodate
peculiarities of your other computing resources.