*****COURSES ARE SUBJECT TO CHANGE*****
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. Prerequisite(s): course Computer Science 12B or 13H, Computer Engineering 16 or 16H, Mathematics 19B, 20B or 11B, and one course from the following: Mathematics 21, 22, 23A, or Applied Mathematics and Statistics 10. D. Helmbold, P. Tantalo, A. Van Gelder
While the information on this web site is usually the most up to date, in the event of a discrepancy please contact your adviser to confirm which information is correct.