## Course overview

Algorithms are at the center of almost any programming job — particularly in the world of data engineering, where this is a recurring topic in job interviews. In this course, you’ll learn how to assess and model the time and space complexity of algorithms (i.e., how fast they’ll be, how much memory they’ll require), and you’ll learn how to trade memory for speed.

Best of all, you’ll learn by doing — you’ll practice and get feedback directly in the browser. At the end of the course, you’ll put together what you’ve learned in a guided project that tasks you with building indices for a CSV using dictionaries.

## Key skills

- Analyzing the time complexity of an algorithm
- Analyzing the space complexity of an algorithm
- Designing algorithms that are optimized to your use-case

## Course outline

### Introduction to Algorithms [6 lessons]

### Time Complexity of Algorithms 2h

Lesson Objectives- Measure the execution time of an algorithm
- Generate random inputs for an algorithm
- Model the execution time of an algorithm

### Constant Time Complexity 2h

Lesson Objectives- Identify constant time operations
- Identify how computers manage memory
- Refine computing time complexity models
- Identify hidden function calls in Python.
- Identify how lists and strings are stored in memory

### Logarithmic Time Complexity 1h

Lesson Objectives- Explain logarithms and logarithmic complexity
- Apply the binary search algorithm to find elements in sorted lists

### Sorting Algorithms 1h

Lesson Objectives- Apply a sorting algorithm
- Identify the time complexity of sorting in Python

### Space Complexity 2h

Lesson Objectives- Evaluate the space complexity of an algorithm
- Define the relation between time and space

### Guided Project: Building Fast Queries on a CSV 2h

Lesson Objectives- Build indexes for a CSV using dictionaries

## Projects in this course

### Guided Project: Building Fast Queries on a CSV

For this project, we’ll step into the role of Python developers to build an inventory system for a laptop store. We’ll apply efficient data structures and algorithms to enable fast queries.

## The Dataquest guarantee

Dataquest has helped thousands of people start new careers in data. If you put in the work and follow our path, you’ll master data skills and grow your career.

We believe so strongly in our paths that we offer a full satisfaction guarantee. If you complete a career path on Dataquest and aren’t satisfied with your outcome, we’ll give you a refund.

## Master skills faster with Dataquest

### Go from zero to job-ready

Learn exactly what you need to achieve your goal. Don’t waste time on unrelated lessons.

### Build your project portfolio

Build confidence with our in-depth projects, and show off your data skills.

### Challenge yourself with exercises

Work with real data from day one with interactive lessons and hands-on exercises.

### Showcase your path certification

Share the evidence of your hard work with your network and potential employers.