263-4312-00L  Advanced Data Structures

SemesterSpring Semester 2018
LecturersP. Uznanski
Periodicityyearly recurring course
Language of instructionEnglish


AbstractData structures play a central role in modern computer science and are essential building blocks in obtaining efficient algorithms. The course covers major results and research directions in data structures, that (mostly) have not yet made it into standard computer science curriculum.
Learning objectiveLearning modern models of computation. Applying new algorithmic techniques to the construction of efficient data structures. Understanding techniques used in both lower- and upper- bound proofs on said data structures.
ContentThis course will survey important developments in data structures that have not (yet) worked their way into the standard computer science curriculum.
Though we will cover state of the art techniques, the presentation is relatively self-contained, and only assumes a basic undergraduate data structures course (e.g., knowledge of binary search trees).

The course material includes (but is not exhausted by):
- computation models and memory models
- string indexing (suffix trees, suffix arrays)
- search trees
- static tree processing (Lowest Common Ancestor queries, Level Ancestry queries)
- range queries on arrays (queries for minimal element in a given range)
- integers-only data structures: how to sort integers in linear time, faster predecessor structures (van Emde Boas trees)
- hashing
- dynamic graphs connectivity
Prerequisites / NoticeThis is a highly theoretical course. You should be comfortable with:
- algorithms and data structures
- probability

Completing Algorithms, Probability, and Computing course (252-0209-00L) is a good indicator.