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 11B or 19B or 20B; and one course from the following: MATH 21, 22, 23A, AMS 10, or AMS 131.
Class Notes
Enroll in lecture and associated secondary lab.
Visiting students, contact the instructor, Patrick Tantalo at ptantalo@ucsc.edu to petition for enrollment. Include proof of prerequisite material.