top of page

about the course

The principles behind algorithms and data structures are relevant to any tech stack. Understanding them makes your code more reliable, faster, and higher quality, allowing you to see multiple solutions and choose the best one.

We’ll explore how algorithms are used in production, derive key ideas from scratch, solve numerous challenges, and examine the difficulties faced by creators of popular libraries.

Curriculum

It’s Going to Be Intense!

  • Asymptotics of Iterative and Recursive Programs

  • Probabilistic Analysis of Algorithms

Analysis of algorithms

  • Class of problems covered by the two-pointer method

  • Prefix sums on arrays and matrices

Two pointers technique

  • Core Idea as a Technique for Speeding Up Code

  • Jump Search & Galloping Search

  • Binary Search in Production Systems and on Unsorted Data

  • Lower Bound for the Search Problem

Searching and sqrt decomposition

  • External Sort – Sorting gigabytes of data efficiently

  • Convex Hull Problem – Or how to optimally surround the enemy with a wall

  • Quick Sort & Quick Select – Featuring the Dutch National Flag problem

  • The Link Between Selection Sort & Heap Sort

Sorting and "divide&conquer"

  • Find Most Similar Websites

  • Implementing TTL Support in Redis

  • Top-K Most Popular Elements 

Heap and linear data structures

  • LRU Cache & Optimal Cache Eviction Algorithms 

  • Huffman Coding – How to compress data efficiently

  • Event Scheduling Problem

  • Minimum Spanning Tree 

Greedy algorithms

  • Combinatorial Objects & Their Enumeration

  • Backtracking – How to efficiently solve Sudoku

  • • • Tail Recursion & Tail Call Optimization – 

Recursion

  • Reservoir Sampling on MapReduce

  • How to Compactly Represent a Hash Table in Memory

  • Collision Resolution: Chaining and Linear Probing

  • Bloom Filter – What to Do If Data Doesn’t Fit in Memory?

Probabilistic algorithms and data structures

  • The Algorithm Behind Spell Checkers

  • How to Win at Blackjack and “Elegantly” Reduce Image Size

  • Knapsack and the Optimal Path for a Robot in a Maze

Dynamic programming

  • Understanding DFS & BFS – Implementing a Web Crawler and PSTree in Linux

  • Circular Dependency Errors – What Does Topological Sort Have to Do with It?

  • Finding the Shortest Paths – Dijkstra, Bellman-Ford

  • Binary Search Trees – How to Easily Balance Them? (AVL, Treap)

Graphs and trees

read by

_іван.jpg

Ivan Petrushenko

Engineering Lead at Squad, Founder at CS Osvita.
Former: Dell Software Engineer, Fiverr Senior Software Engineer, Ring Machine Learning Engineer.

algorithms for interview

Solve problems 
at the speed of thought.

{format}

start:

{3 months | 27 classes}

{3 months}

{12,000₴/month}

bottom of page