How to Design Classes

These pages present the course materials for an introductory course on program design in Java that emphasizes systematic test-first design discipline as well as the design of data representation of the information on which the program is based.

While the preferred approach expects as a prerequisite a one semester course based on the text How to Design Programs, the lecture notes and the inrtoductory labs and assignments are design to work equally well for students without this prerequisite.

The course materials consist of three complementary parts:

Solutions to the labs and the assignments, together with the grading rubric for the assignments are avaliable upon request from instructors and teachers.