In our Recursion and Trees course, you will learn about recursion and how it applies to tree data structures. You will also learn how tree data structures are used to speed up the processing of analysis tasks.

We’ll cover recursion, binary trees, binary heaps, and more. By the end of this course, you will be able to explain the difference between iteration and recursion, build a binary heap to query large datasets, implement and query a dataset using Binary Search trees and more!

You’ll synthesize your new skills and knowledge in an end-of-course guided project in which you will work to adapt a well-known structure to create a database. You will also learn what a key-value database is and how it is implemented. This project is a chance for you to use a B-Tree to implement a key-value datastore in Python, and it would also make a great portfolio piece that shows potential employers you’ve get real-world data engineering skills.

By the end of this course, you'll be able to:

## Learn About Recursion and Binary Trees

### Overview of Recursion

An overview of recursion for tree data structures.

### Introduction to Binary Trees

An introduction to the binary tree data structure.

### Working with Binary Search Trees

Implement and query a dataset using Binary Search Trees.

### Implementing a Binary Heap

Implementing a binary heap to query large datasets.

### Performance Boosts of Using a B-Tree

Building and using a B-Tree to implement an index on a CSV.

### Implement a B-Tree Data Structure

Learn to serialize Python objects to increase algorithm loading speed.

### Guided Project: Implementing A Key-Value Database

Using a B-Tree to implement a key-value datastore in Python.

### Implementing a CSV Index With a B-Tree

Learn how to serialize python objects to save them into files.