Studies basic algorithms and their relationships to common abstract data types. Covers the notions of abstract data types and the distinction between an abstract data type and an implementation of that data type. The complexity analysis of common algorithms using asymptotic (big "O") notation is emphasized. Topics include sorting and searching techniques, basic graph algorithms, and algorithm design techniques. Abstract data types covered include priority queues, dictionaries, disjoint sets, heaps, balanced trees, and hashing. Familiarity with C, Java, and Unix is assumed.
Enrollment Requirements
Prerequisite(s): course 12B or 13H; CMPE 16 or 16H; MATH 19B, 20B or 11B; and one course from the following: MATH 21, 22, 23A, or AMS 10.
Class Notes
In summer, visiting students may request instructor permission to enroll by showing proof prerequisites have been met: Patrick Tantalo, ptantalo@ucsc.edu. Enroll in lecture and associated secondary lab.