Short Description: Comp 312 focuses on emerging principles
of how to construct robust, reliable software systems using
test-driven development (incremental development, unit testing,
continual refactoring, continuous integration) augmented by practical
formal analysis methods. The course covers both proven software
development technology and promising leading edge technologies such as
the generic type system in Java 5.0/6.0.
The course projects will involve extending production
programs like DrJava that are written in Generic Java. The code
developed in the course will be deployed in ongoing releases of these
production programs.
In this edition of the course, we emphasize program refactoring and patterns
for avoiding synchronization errors in concurrent programs.