Second part of a two-part sequence in Java programming. Introduction to specifications, simple unity testing, and debugging; building and using canonical data structures; algorithm analysis and reasoning techniques such as assertions and invariants.
Only one of the following may be counted: Computer Science 307, 314, 314H. Only one of the following may be counted: Computer Science 314, 314H, 315, 315H.
Prerequisite: Computer Science 312 or 312H with a grade of at least C-, and consent of the honors director.