Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
William Fiset

Data structures are amongst the most fundamental ingredients in the recipe for creating efficient algorithms and good software design. Knowledge of how to create and design good data structures is an essential skill required in becoming an exemplary programmer. This course will teach you how to master the fundamental ideas surrounding data structures.

Learn and master the most common data structures in this comprehensive course:

Read more

Data structures are amongst the most fundamental ingredients in the recipe for creating efficient algorithms and good software design. Knowledge of how to create and design good data structures is an essential skill required in becoming an exemplary programmer. This course will teach you how to master the fundamental ideas surrounding data structures.

Learn and master the most common data structures in this comprehensive course:

  • Static and dynamic arrays

  • Singly and doubly linked lists

  • Stacks

  • Queues

  • Heaps/Priority Queues

  • Binary Trees/Binary Search Trees

  • Union find/Disjoint Set

  • Hash tables

  • Fenwick trees

  • AVL trees

  • Binary Indexed trees

  • Sparse tables

Course contents

This course provides you with high quality animated videos explaining a multitude of data structures and how they are represented visually. You will learn how to code various data structures together with simple to follow step-by-step instructions. Every data structure presented will be accompanied by some working source code (in Java) to solidify your understanding of that particular data structure. I will also be posting various coding exercises and multiple choice questions to ensure that you get some hands on experience.

Enroll now

What's inside

Learning objectives

  • Mature understanding of data structures
  • Algorithms associated with data structures
  • Dynamic arrays
  • Singly and doubly linked list
  • Queues & stacks
  • Binary trees and binary search trees
  • Heaps & priority queues
  • Union find/disjoint set
  • Hash table/associative array
  • Fenwick tree/binary indexed tree

Syllabus

Introduction
Abstract data types Introduction
Understanding time/space complexity

Do your best to answer these complexity questions similar to those in the video.

Read more

An introduction to sparse tables for fast range queries

Sparse table source code

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Builds a strong foundation for beginners in the fundamentals of data structures
Teaches about data structures and their associated algorithms
Develops understanding of advanced data structures like binary trees, heaps, and hash tables
Provides clear explanations, high-quality animations, and step-by-step instructions
Includes coding exercises and multiple-choice questions to reinforce learning
Taught by William Fiset, an experienced instructor in data structures and algorithms

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Comprehensive data structures: foundations to advanced

According to learners, this course provides a largely positive and comprehensive foundation in data structures, making complex concepts easy to grasp. Many highlight the crystal clear explanations and top-notch animated videos as particularly effective for visualizing abstract ideas. Students widely appreciate the practical Java code examples and hands-on coding exercises, which are noted for solidifying understanding. While the course excels at building a strong foundation, some learners found the coverage of truly advanced topics like AVL trees and Fenwick trees to be somewhat rushed or lacking the depth required for mastery. Additionally, while quizzes are helpful, a few wished for more challenging exercises in the advanced sections. Overall, it's highly recommended for those building a strong base in data structures.
Quizzes are helpful, but some exercises could be more challenging.
"The quizzes were helpful, but some exercises could be more challenging."
"The quizzes and coding assignments are well-designed and help reinforce learning."
"My main suggestion would be to add more challenging problems for the advanced topics. The current exercises are good for understanding."
Excellent for building a strong foundation, but advanced learners may need more.
"Good course for beginners to intermediate. The instructor explains things very well, especially the basic data structures."
"This course made everything click... Highly recommend it for anyone looking to build a strong foundation."
"The initial modules... are very beginner-friendly. But as the course progresses... it assumes a higher level of prior knowledge."
"Covers all the necessary data structures in depth. Excellent course for competitive programming preparation!"
Hands-on coding exercises and provided Java source code solidify learning.
"The Java code examples are practical and easy to follow. This course has significantly improved my understanding of data structures."
"The hands-on coding exercises in Java really solidify the concepts. I appreciate how each data structure is accompanied by working source code."
"The Java implementations are clear and well-commented. I've used the source code provided as a reference multiple times."
Explanations are crystal clear, especially with animated videos.
"This course is incredibly well-structured and the explanations are crystal clear. The animated videos really help visualize complex concepts."
"Absolutely fantastic! The animations are top-notch and make abstract ideas very tangible."
"As someone who struggled with data structures in university, this course made everything click. The step-by-step approach and visual aids are phenomenal."
"The instructor has a unique way of explaining complex topics simply. The animation quality is superb."
Advanced topics can be rushed or lack expected depth for mastery.
"For 'advanced' topics like AVL trees and Fenwick trees, I felt the explanations were a bit rushed and could have used more in-depth examples."
"The pace felt too fast for me once it gets to more complex topics like Union-Find and some of the tree structures. I had to look up external resources."
"Found some of the advanced topics, particularly AVL trees, very difficult to follow. The pace picks up significantly without much scaffolding."
"Not 'advanced' enough if you're looking for competitive programming level depth. It might lack the theoretical rigor for true mastery."

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 Easy to Advanced Data Structures with these activities:
Course Notes and Quizzes Review
Refresh and reinforce understanding of key concepts.
Show steps
  • Review course notes
  • Take practice quizzes
Introduction to Algorithms
Gain a comprehensive understanding of core algorithms and data structures.
Show steps
  • Read selected chapters
  • Solve practice problems
  • Discuss key concepts with peers
Algorithm Analysis
Improve problem-solving skills and deepen understanding of algorithm efficiency.
Show steps
  • Review time and space complexity concepts
  • Practice analyzing algorithms using Big O notation
  • Solve coding problems that involve algorithm analysis
Four other activities
Expand to see all activities and additional details
Show all seven activities
Data Structures Resource Library
Gather and organize a collection of useful data structures resources.
Show steps
  • Search for relevant resources
  • Categorize and organize the resources
  • Share the resource library with others
Study Group
Collaborate with peers to reinforce understanding and clarify concepts.
Show steps
  • Form a study group
  • Meet regularly
  • Discuss course material
  • Work on practice problems
Data Structure Implementation Report
Demonstrate understanding of data structures by creating a detailed report.
Show steps
  • Choose a data structure
  • Design and implement the data structure
  • Write a report documenting your work
Coding Competition
Test and improve problem-solving and algorithm design skills.
Browse courses on Coding Challenges
Show steps
  • Register for a coding competition
  • Practice solving coding problems
  • Participate in the competition
  • Analyze your performance

Career center

Learners who complete Easy to Advanced Data Structures will develop knowledge and skills that may be useful to these careers:

Reading list

We haven't picked any books for this reading list yet.

Share

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

Similar courses

Similar courses are unavailable at this time. Please try again later.
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 - 2025 OpenCourser