Through a strong focus on intuition, examples, and real-world scenarios, you'll learn the inner workings of some very powerful data structures, and see how they can help you to both achieve great performance and solve seemingly complex problems.
Many problems in modern applications can be solved in a simple and elegant way by utilizing a specific data structure. In this course, Using Advanced Data Structures in Modern Applications, you will learn a variety of such data structures that are incredibly useful but normally outside the scope of introductory courses in programming or algorithmics. The course is loaded with examples and focuses on practicality rather than formulas and proofs. First, you will dive into the exciting world of hashing and see how different hash functions and hash table implementations perform very differently. Next, you will learn how bloom and cuckoo filters work and how they can be used to reduce communication between infrastructure components and prevent a cache from being wasted on one-off items. Then, you will discover how to efficiently index and query geographical positions and numeric properties using spatial indexing mechanisms such as geohashing, B-trees, R-trees, and M-trees. After that, you will explore the inner workings of disjoint-set data structures and see how they can be used to efficiently form clusters of related users of an application. Finally, you learn how tries and suffix trees work and how to easily build an auto-completion back-end upon them. By the end of this course, you will have a large toolbox of data structures at hand that can help you solve a number of apparently complex problems with minimal effort.
Rasmus is a software developer and architect, an entrepreneur and an idealist, with a background as PhD in the field of computer science, databases, and algorithms and with a long standing passion for teaching.