# Data Structures Fundamentals

## Overview

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.

## Prerequisites

- Basic knowledge of one programming language (C, C++, C#, Haskell, Java, JavaScript, Python2/3, Ruby, Scala)
- Basic knowledge of common programming concepts, including loops, arrays, stacks, and recursion
- Basic knowledge of mathematics, including proof by induction and contradiction
- Algrorithmic Design and Techniques course

## Course Format

This course is self-paced, containing assignments without due dates. You can progress through the course at your own speed.

## Learn more and enroll on edX.