We will cover the following topics:
| Week Number | Topic |
| Week 1 | Introduction/Review of Basic Data Structures |
| Week 2 | Algorithm Analysis |
| Week 3 | Recurrence Relations/Binary Search Trees |
| Week 4 | Balanced Trees/Hash Tables |
| Week 5 | Heaps/Sorting |
| Week 6 | Sorting |
| Week 7 | Review/Exam |
| Week 8 | Graphs |
| Week 9 | Graphs/Greedy Algorithms |
| Week 10 | Divide and Conquer/Dynamic Programming |
| Week 11 | Dynamic Programming/Randomized Algorithms |
| Week 12 | Backtracking/NP |
| Week 13 | NP/Review |
| Week 14 | Finish up |
Reading will be assigned on a weekly basis. The homework portion of your grade will be based on weekly problem sets. Problem sets will be due at the beginning of most Thursday classes. Late homework assignments will not be accepted. There will be no exceptions to this rule.
The projects portion of your grade will be based on programming projects assigned throughout the semester. A project assignment submitted on time is eligible for full credit. A project assignment submitted late by 1 week or less is eligible for a maximum of 80%. A project assignment submitted more than 1 week late is not eligible for credit. Extensions will be granted only in the case of a medical emergency or other extraordinary circumstances that can be verified by your dean.
There will be an in-class midterm exam tentatively scheduled for March 10th. Make-up exams will be scheduled only in the case of a medical emergency or other extraordinary circumstance that can be verified by your dean. Any and all make-ups must be scheduled prior to the exam day.
There will be a self-scheduled final exam. All students must complete the exam during the final exam period.
ALL assignments are to be completed individually unless specified, in writing, on the assignment. Academic dishonesty will NOT be tolerated. This is your warning! Students are encouraged to meet with me if they have questions regarding assignments or this policy. Students caught cheating will face severe penalty.