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, 315, 315H.

Prerequisite: Computer Science 312 or 312H with a grade of at least C-.

May be counted toward the quantitative reasoning flag requirement.

Undergraduate Program
Core - Programming