This document contains notes from the MIT course 6.851 (Advanced Data Structures) taught in various years. It covers topics on temporal data structures, geometric data structures, dynamic optimality, memory hierarchies, dictionaries, integer data structures, and static trees. Each section provides an overview and details of the specific techniques discussed, such as partial and full persistence, planar point location, splay trees, cache-oblivious B-trees, van Emde Boas trees, fusion trees, sorting lower bounds, and reductions between lowest common ancestor queries and range minimum queries.