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.
Hashing 2: Saving Space with Probabilistic Bloom Filters
Hashing 3: Saving Space and Allowing Deletion with Cuckoo Filters
Querying Space and Time with Tree Structures
Efficient Set Operations with Disjoint-set Structures
Prefix-querying Sequences Efficiently with Tries
Infix-querying Sequences Efficiently with Suffix Trees
Dec 27, 2017
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.
Course Overview Hi everyone. My name is Rasmus, and welcome to my course Using Advanced Data Structures in Modern Applications. Data structures can be almost like magic. They can provide elegant, simple, and high-performing solutions to apparently complex problems that sometimes arise when building applications. In this course, we're going to look at a number of extremely powerful data structures that are normally outside the scope of introductory classes in computer science, and we are going to do that from a strictly practical perspective with our focus on examples, lots of examples. No mathematical proofs, all hard-core theory. Some of the major topics that we will cover include Bloom and Cuckoo filters; various hashing algorithms and hash table structures; disjoint-set data structures; tries and suffix trees; and various spatial indexes, such as B-trees, R-trees, and M-trees. By the end of this course, you will have seen how to put the data structures we cover into work, and you will have seen how they can really make a difference. Before beginning the course, you should be familiar with basic data structures, such as hash tables and tree structures, and feel comfortable with some basic complexity analysis. All of this is covered in my other Pluralsight course, An Introduction to Algorithmics. I hope you will join me on this journey to learn a bunch of interesting and useful data structures with the Using Advanced Data Structures in Modern Applications course, at Pluralsight.