We may earn an affiliate commission when you visit our partners.
Daniel Kane, Alexander S. Kulikov, Michael Levin, and Neil Rhodes

A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this course, part of the Algorithms and Data Structures MicroMasters program, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in different programming languages and will practice implementing them in our programming assignments. This will help you to understand what is going on inside a particular built-in implementation of a data structure and what to expect from it. You will also learn typical use cases for these data structures.

Read more

A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this course, part of the Algorithms and Data Structures MicroMasters program, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in different programming languages and will practice implementing them in our programming assignments. This will help you to understand what is going on inside a particular built-in implementation of a data structure and what to expect from it. You will also learn typical use cases for these data structures.

A few examples of questions that we are going to cover in this course are:

  1. What is a good strategy of resizing a dynamic array?
  2. How priority queues are implemented in C++, Java, and Python?
  3. How to implement a hash table so that the amortized running time of all operations is O(1) on average?
  4. What are good strategies to keep a binary tree balanced?

We look forward to seeing you in this course! We know it will make you a better programmer.

What you'll learn

  • Basics of data structures including their fundamental building blocks: arrays and linked lists
  • How to use Dynamic arrays
  • A very powerful and widely used technique called hashing and its applications
  • How to use priority queues to efficiently schedule jobs, in the context of a computer operating system or real life
  • Basic structure of binary search trees - AVL trees and Splay trees
  • Applications of data structures

What's inside

Learning objectives

  • Basics of data structures including their fundamental building blocks: arrays and linked lists
  • How to use dynamic arrays
  • A very powerful and widely used technique called hashing and its applications
  • How to use priority queues to efficiently schedule jobs, in the context of a computer operating system or real life
  • Basic structure of binary search trees - avl trees and splay trees
  • Applications of data structures

Syllabus

Module 1: Basic Data Structures In this module, you will learn about the basic data structures used throughout the rest of this course. We start this module by looking in detail at the fundamental building blocks: arrays and linked lists. From there, we build up two important data structures: stacks and queues. Next, we look at trees: examples of how they’re used in Computer Science, how they’re implemented, and the various ways they can be traversed. Once you’ve completed this module, you will be able to implement any of these data structures, as well as have a solid understanding of the costs of the operations, as well as the tradeoffs involved in using each data structure.
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Suitable for students with little to no background or experience in programming or computer science
Compelling programming assignments allow students to apply the course concepts in practice
Taught by recognized experts Alexander S. Kulikov, Neil Rhodes, Michael Levin, and Daniel Kane
Emphasizes theoretical understanding and real-world applications of data structures and algorithms
Covers a comprehensive range of topics including priority queues, hashing, binary search trees, and amortized analysis
May require some foundational knowledge and understanding of programming languages like C++, Java, and Python

Save this course

Create your own learning path. Save this course 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 Data Structures Fundamentals with these activities:
Connect with experts in data structures and algorithms
Seeking guidance from experienced professionals can accelerate your learning and provide valuable insights into real-world applications of data structures.
Browse courses on Mentorship
Show steps
  • Attend industry events, meetups, or conferences where you can connect with experts in the field.
  • Reach out to professors, researchers, or professionals on LinkedIn or other social media platforms.
  • Request informational interviews or mentorship opportunities to learn from their experiences and perspectives.
Review array indexing
Arrays are used throughout the course. Sharpening skills in array indexing will lay a solid foundation for success in this course.
Show steps
  • Revisit fundamental array concepts like declaration, initialization, and accessing elements.
  • Practice traversing arrays using different loop structures (for, while, do-while).
  • Explore techniques for manipulating arrays, such as inserting, deleting, and searching elements.
Join a study group or online forum
Engaging with peers in discussions and problem-solving can reinforce your understanding of data structures and provide diverse perspectives.
Show steps
  • Find online forums or discussion groups dedicated to data structures and algorithms.
  • Participate in discussions, ask questions, and share your knowledge to foster a collaborative learning environment.
  • Consider joining a local study group or organizing one with fellow students.
Two other activities
Expand to see all activities and additional details
Show all five activities
Explore Python implementation of data structures
The course uses Python. This activity will familiarize you with Python implementations of key data structures, aiding comprehension of the course material.
Browse courses on Python Programming
Show steps
  • Find tutorials or online resources that demonstrate how to implement data structures like stacks, queues, trees, and hash tables in Python.
  • Follow the tutorials and try implementing these data structures on your own, using Python code.
  • Test your implementations with sample inputs and analyze their performance.
Read 'Data Structures and Algorithms Made Easy'
This book provides a comprehensive overview of data structures and algorithms, with a focus on practical applications. Reading it will strengthen your understanding of the concepts covered in this course.
Show steps
  • Go through chapters covering fundamental data structures like arrays, linked lists, and stacks.
  • Explore sections explaining searching and sorting algorithms, such as binary search and quicksort.
  • Review chapters on advanced data structures like trees and graphs, along with their applications.

Career center

Learners who complete Data Structures Fundamentals will develop knowledge and skills that may be useful to these careers:
Data Scientist
Data Scientists use their knowledge of math, statistics, and computer science to gather, analyze, and interpret large amounts of data, drawing conclusions and making predictions. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as a Data Scientist.
Software Engineer
Software Engineers design, develop, test, and maintain software applications. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as a Software Engineer.
Data Analyst
Data Analysts collect, clean, and analyze data to identify trends and patterns. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as a Data Analyst.
Database Administrator
Database Administrators design, implement, and maintain databases. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as a Database Administrator.
Systems Analyst
Systems Analysts design, develop, and implement computer systems. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as a Systems Analyst.
Business Analyst
Business Analysts analyze business processes and systems to identify opportunities for improvement. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as a Business Analyst.
Statistician
Statisticians collect, analyze, and interpret data to draw conclusions. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as a Statistician.
Operations Research Analyst
Operations Research Analysts use mathematical models to solve business problems. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as an Operations Research Analyst.
Financial Analyst
Financial Analysts analyze financial data to make investment recommendations. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as a Financial Analyst.
Actuary
Actuaries use mathematical models to assess risk. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as an Actuary.
Market Researcher
Market Researchers conduct surveys and analyze data to understand consumer behavior. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as a Market Researcher.
Software Tester
Software Testers test software to identify bugs. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as a Software Tester.
Computer Programmer
Computer Programmers write code to implement software applications. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as a Computer Programmer.
Information Security Analyst
Information Security Analysts protect computer systems from unauthorized access. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as an Information Security Analyst.
Technical Writer
Technical Writers write documentation for software applications. This course will help you understand the fundamental building blocks of data structures, such as arrays and linked lists, and how to use them to build more complex data structures, such as stacks and queues. You will also learn about dynamic arrays, amortized analysis, priority queues, disjoint set union, hash tables, and binary search trees. This knowledge will give you a solid foundation for a career as a Technical Writer.

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 Data Structures Fundamentals.
Comprehensive introduction to algorithms. It covers a wide range of topics, including data structures, algorithms, and complexity theory. It good choice for students who are new to algorithms, or for those who want to learn more about the theory behind them.
Classic in the field of algorithms. It comprehensive reference for both students and professionals, and it covers a wide range of topics, including data structures, algorithms, and complexity theory.
Classic and provides comprehensive coverage of algorithms and data structures. It is used as a textbook at many universities and is known for its clear explanations and in-depth coverage of important concepts.
Provides a comprehensive overview of data structures and算法in Java. It good choice for students who are new to data structures and algorithms, or for those who want to learn more about how they are implemented in Java.
This is another classic textbook that covers algorithms and data structures in great depth. It is used as a textbook at many universities and provides a comprehensive overview of the field.
Provides a thorough overview of data structures and algorithms in Java. It good choice for students who are new to data structures and algorithms, or for those who want to learn more about how they are implemented in Java.
Provides a comprehensive coverage of data structures using C++, which is the programming language used in the course. It good resource for understanding the implementation of data structures in a real programming language.
Provides a comprehensive coverage of data structures and algorithm analysis in Java, which is another popular programming language. It good resource for understanding the implementation of data structures in a real programming language.
Provides a comprehensive coverage of data structures and algorithms using Python, which is another popular programming language. It good resource for understanding the implementation of data structures in a real programming language.
Covers dynamic arrays and amortized analysis, two topics covered in the course. It provides a clear explanation of these concepts and their applications.
Focuses on disjoint set union, a data structure covered in the course. It provides a detailed explanation of disjoint set union and its various applications.
Provides a good overview of data structures and algorithms in Java. It good resource for understanding the basic concepts of data structures and algorithms.

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