Skip to main content
Back to courses

Data Structures & Algorithms

Measure efficiency with Big-O, then use searching, sorting, hash maps, stacks, linked lists, trees, graphs and dynamic programming in Python.

Level: Intermediate4 modules · 12 lessons · 7h 37m
algorithmsdata-structurespythonbig-oproblem-solvinginterviews

Leads to: Data Scientist, Machine Learning Engineer, Software Developer, Mobile Developer, Back-End Developer, QA / Test Engineer, Data Engineer, Computer Science Teacher

Before you start

This course builds on Python Fundamentals. Take it first if you are new to the topic.

About this course

An intermediate course for learners who can already write basic Python and want to write code that stays fast as data grows. You will learn to describe an algorithm's cost with Big-O, implement linear and binary search and two classic sorts, and choose between lists, dicts, sets, stacks, queues and linked lists. You will then write recursive functions, traverse trees and binary search trees, and explore graphs and grids with depth-first and breadth-first search. The last module covers the two-pointer and sliding-window patterns, an introduction to dynamic programming, and a repeatable framework for solving problems out loud, as you would in a technical interview or a pair-programming session. Every lesson has a reading, free videos, a quiz and a Python exercise checked automatically on normal and edge-case inputs. Prerequisite: Python Fundamentals.

Course content

  1. Module 1

    Thinking About Efficiency

  2. Module 2

    Core Structures

  3. Module 3

    Trees and Graphs

  4. Module 4

    Problem Solving