Course Syllabus

What you’ll learn

The algorithms behind fundamental data structures (dynamic arrays, linked structures, (un)balanced trees/tries, graph algorithms, hash tables/functions)
How to reason about appropriate data structures to solve problems, including their strengths and weaknesses
How to analyze algorithms theoretically (worst-case, average-case, and amortized)
The key distinctions and relations between “Abstract Data Types” and “Data Structures”
Basic information theory and data compression utilizing the data structures covered