Instructor: | Andrew L. Mackey |
---|---|
Meeting Times: | Tuesdays/Thursdays at 11:00 - 12:15 pm Tuesdays/Thursdays at 5:25 - 6:40 pm |
Location: | Baldor 147 |
Lab Assistant: | Adrian Cuevas |
Lab Times: | Fridays at 2:00 pm - 4:00 pm |
Theoretical foundations and practical applications of algorithm analysis and design. Builds upon the data abstractions introduced in CS 2003 - Data Structures, while introducing various algorithm strategies and techniques.
Students are required to have a prior background in data structures (e.g. arrays, linked lists, stacks, queues, binary trees, graphs, etc.), calculus, and discrete mathematics.
The following represents a tentative list of topics for the class.
Week | Topic | Notes |
---|---|---|
1 | Course Introduction | |
2 | Complexity Analysis | |
3 | Heaps, Priority Queues, and Heapsort | |
4 | Recurrences | |
5 | Quicksort | |
6 | Linear Time Sorts | |
7 | Height-balanced Binary Search Trees | |
8 | Advanced Data Structures | |
9 | Dynamic Programming | |
10 | Dynamic Programming (cont.) | |
11 | Greedy Algorithms | |
12 | Graphs and Minimum Spanning Trees | |
13 | Single-Source Shortest Path Algorithms | |
14 | All-Pairs Shortest Path Algorithms | |
15 | Polynomial Time and Nondeterministic Polynomial Time | |
16 | Final Examination |
The following textbook is assigned to this course:
The following resources are available for students to use.
Review the course website for more information
The following are examinations from prior semesters: