Learning Outcomes
Knowledge: Understanding data organization techniques aimed at both efficiently supporting queries in terms of space and time as well as supporting new operations. Examples of such operations are efficient storage of the history of a data structure. Also, understanding the inherent limitations that exist per computation model in terms of data structuring.
Skills: Determining the appropriate way of data organization according to the problem, analysis and design of new techniques.
Course Content (Syllabus)
1. Amortized Analysis
2. Priority Queues
3. Union Find of sets
4. Competitive Analysis
5. Weighted Balanced trees
6. Self-adjusting trees
7. Advanced issues in Hashing
8. Data structures for integers(Van Emde Boas trees)
9. Fractional Cascading
10. Lower Bounds
11. Persistence
12. Strings