Algorithm Analysis and Data Structures

**Course Objectives:**
To introduce students to the fundamental data structures of computing science and the algorithms associated with them, specifically

- abstract data types (e.g. stacks, queues, deques, lists, trees, priority queues) and their implementations (e.g. using arrays, linked lists, linked binary trees, heaps),

- algorithms and design patterns (e.g. traversal, sorting, searching, divide-and-conquer, recursion, iterator, comparator),

- mathematical techniques for analysing and describing algorithm efficiency.

**Prerequisites:**
AUCSC 120; AUMAT 110 or 111, and 120.
**Corequisite:** AUMAT 250.

**Credits/Hours:**
3 credits (3 lecture hours + 1.5 lab hours per week)

**Instructor:**
Dr. Bill Hackborn.
Contact Information

Required ^{ }Text: |
Data Structures and Algorithms in Java, 5^{th} Edition.
Michael T. Goodrich & Roberto Tamassia. John Wiley & Sons, 2010. Authors' web site for this textbook. |