We may earn an affiliate commission when you visit our partners.
Rasmus Amossen

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.

Read more

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.

Enroll now

What's inside

Syllabus

Course Overview
Introduction
Hashing 1: Hash Functions and Hash Tables
Hashing 2: Saving Space with Probabilistic Bloom Filters
Read more
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

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores data structures, which are fundamental to software development and data science
Taught by Rasmus Amossen, a recognized expert in data structures and algorithms
Provides hands-on experience through examples and real-world scenarios
Covers advanced data structures that are not typically taught in introductory courses
Develops problem-solving skills and critical thinking abilities

Save this course

Save Using Advanced Data Structures in Modern Applications to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Using Advanced Data Structures in Modern Applications with these activities:
Read 'Data Structures and Algorithm Analysis in Java'
Enhance your foundation by reading a comprehensive textbook on data structures and algorithm analysis.
Show steps
  • Acquire the textbook 'Data Structures and Algorithm Analysis in Java' by Mark Allen Weiss.
  • Diligently study the chapters relevant to the course material.
  • Solve the practice exercises and coding challenges provided in the book.
Review basic data structures and algorithms
Refresh your knowledge of fundamental data structures and algorithms to ensure a solid foundation for the course.
Browse courses on Data Structures
Show steps
  • Review lecture notes or online resources on data structures and algorithms.
  • Solve practice problems and code examples involving basic data structures and algorithms.
Complete tutorials on hash tables and bloom filters
Reinforce your understanding of hash tables and bloom filters by following guided tutorials to implement and apply them.
Browse courses on Hash Tables
Show steps
  • Identify reputable online tutorials on hash tables and bloom filters.
  • Follow the tutorials, implement the data structures, and test their functionality.
  • Apply these techniques to a personal project or assignment.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Join a study group or discussion forum with fellow students
Collaborate with peers to reinforce concepts, share insights, and improve understanding through discussions and group projects.
Browse courses on Collaboration
Show steps
  • Identify or form a study group or discussion forum with other students enrolled in the same course.
  • Regularly meet or participate in online discussions to share knowledge, ask questions, and work on assignments together.
  • Collaborate on a group project that involves applying the concepts learned in the course.
Attend a workshop on algorithm design and optimization
Deepen your understanding of the principles and techniques of algorithm design and learn how to optimize and improve their efficiency.
Browse courses on Algorithm Design
Show steps
  • Research and identify a reputable workshop on algorithm design and optimization.
  • Register and attend the workshop.
  • Actively participate in the workshop, ask questions, and take notes.
  • Implement and apply the techniques learned in the workshop to a real-world project.
Solve coding challenges on LeetCode or HackerRank
Practice applying your skills and knowledge by solving coding challenges on platforms like LeetCode or HackerRank.
Show steps
  • Choose a reputable online coding challenge platform.
  • Select coding challenges that cover concepts related to data structures and algorithms.
  • Solve the coding challenges, paying attention to time and space complexity.
  • Analyze and refine your solutions to improve efficiency and accuracy.
Write a blog post or article on a specific data structure from the course
Enhance your understanding and explain the concepts to others by writing a blog post or article on a specific data structure covered in the course.
Show steps
  • Select a particular data structure from the course material.
  • Research and gather information about the data structure.
  • Write a comprehensive blog post or article explaining the data structure, its implementation, and its applications.
  • Publish the blog post or article on a relevant platform.

Career center

Learners who complete Using Advanced Data Structures in Modern Applications will develop knowledge and skills that may be useful to these careers:
Data Engineer
A Data Engineer designs, builds, and maintains data pipelines that collect, transform, and store data. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex data engineering problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.
Software Engineer
A Software Engineer designs, develops, tests, deploys, and maintains software systems. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex software engineering problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.
Machine Learning Engineer
A Machine Learning Engineer designs, builds, and maintains machine learning models. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex machine learning problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.
Data Scientist
A Data Scientist uses data to solve business problems. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex data science problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.
Fraud Analyst
A Fraud Analyst investigates and prevents fraud. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex fraud analysis problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.
Business Analyst
A Business Analyst uses data to solve business problems. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex business analysis problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.
Product Manager
A Product Manager manages the development and launch of new products. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex product management problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.
Quantitative Analyst
A Quantitative Analyst uses mathematics and statistics to solve financial problems. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex quantitative analysis problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.
Security Analyst
A Security Analyst identifies and protects against security threats. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex security analysis problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.
Project Manager
A Project Manager plans, executes, and closes projects. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex project management problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.
Risk Analyst
A Risk Analyst identifies and assesses risks. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex risk analysis problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.
Database Administrator
A Database Administrator manages databases. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex database administration problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.
Systems Analyst
A Systems Analyst analyzes and designs systems. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex systems analysis problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.
Data Architect
A Data Architect designs and manages data systems. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex data architecture problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.
Software Developer
A Software Developer designs, develops, and tests software applications. The course Using Advanced Data Structures in Modern Applications may be useful for this role because it teaches advanced data structures and algorithms that can be used to solve complex software development problems. For example, the course teaches how to use hash tables to store and retrieve data efficiently, how to use bloom filters to reduce communication between infrastructure components, and how to use tries and suffix trees to efficiently query sequences.

Reading list

We've selected 13 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Using Advanced Data Structures in Modern Applications.
Provides a comprehensive overview of advanced data structures, covering topics such as hashing, trees, graphs, and tries. It valuable resource for anyone who wants to learn more about the design and implementation of data structures.
Provides a comprehensive overview of data structures and algorithms in Java. It valuable resource for anyone who wants to learn more about the design and implementation of data structures and algorithms.
Provides a comprehensive overview of algorithms. It valuable resource for anyone who wants to learn more about the design and analysis of algorithms.
Provides a comprehensive overview of algorithms. It valuable resource for anyone who wants to learn more about the design and analysis of algorithms.
Provides a comprehensive overview of data structures and algorithm analysis in C++. It valuable resource for anyone who wants to learn more about the design and implementation of data structures and algorithms in C++.
Provides a comprehensive overview of data structures and algorithms in Python. It valuable resource for anyone who wants to learn more about the design and implementation of data structures and algorithms in Python.
Provides a comprehensive overview of data structures and algorithms in Java. It valuable resource for anyone who wants to learn more about the design and implementation of data structures and algorithms in Java.
Provides a comprehensive overview of data structures and algorithms in C++. It valuable resource for anyone who wants to learn more about the design and implementation of data structures and algorithms in C++.
Provides a comprehensive overview of data structures and algorithms in JavaScript. It valuable resource for anyone who wants to learn more about the design and implementation of data structures and algorithms in JavaScript.
Provides a comprehensive overview of data structures and algorithms in Swift. It valuable resource for anyone who wants to learn more about the design and implementation of data structures and algorithms in Swift.
Provides a comprehensive overview of data structures and algorithms in Rust. It valuable resource for anyone who wants to learn more about the design and implementation of data structures and algorithms in Rust.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Using Advanced Data Structures in Modern Applications.
Algorithms and Data Structures - Part 1
Most relevant
Data Structures Fundamentals
Most relevant
Algorithms Data Structures in Java #1 (+INTERVIEW...
Most relevant
Learning Data Structures in JavaScript from Scratch
Most relevant
Data Structures & Algorithms II: Binary Trees, Heaps,...
Most relevant
Graph Search, Shortest Paths, and Data Structures
Most relevant
Data Structures: An Active Learning Approach
Most relevant
C++ Standard Library: Associative Containers
Most relevant
Ordered Data Structures
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser