Algorithms and Data Structures

Algorithms and Data Structures course — Prowid
Course duration
4 months / 32 lessons
Individual
Per month 200 AZN
Group
Per month 150 AZN
Paying for the full course in a group
15% discount
Installments
50/50
Subscription
from 30 AZN a month
Algorithms and data structures are a programmer's foundation: they teach you to write fast, simple and correct code and are the core of technical interviews. The course covers the whole path from Big-O to graphs and object-oriented design; every algorithm is traced step by step and then written in code.

Enrollment for a new group is open — send a request to reserve your seat

Lessons are taught live in Azerbaijani and Russian.

Or study on your own in your personal account → with a subscription from 30 AZN a month

Course program

What an algorithm is, pseudocode, correctness and testing
Complexity: Big-O, time and space, amortized analysis, measuring
Recursion, memoization, backtracking, divide and conquer, greedy, intro to DP
Arrays, strings, two pointers and sliding window
Linear and binary search, binary search on the answer
Sorting: simple and efficient algorithms, comparison and benchmarking
Abstract data types: stack, queue, deque, priority queue, map, set
Linked lists, implementing stack and queue
Hash tables, collisions, LRU cache, Bloom filter
Trees: BST, balancing, heap, trie, segment tree
Graphs: BFS, DFS, Dijkstra, A*, minimum spanning tree, topological sort
Object-oriented design: SOLID, UML, GoF patterns, clean architecture
Practice: problem-solving patterns and interview strategy
Final project
How do we teach?

Learning stages

01

Webinar

Students join the lesson live. At the end of each lesson, students are sent a video recording of the class.

02

Homework

Every assignment is based on the topic covered in the webinar. Homework helps you reinforce the material and understand it better.

03

Working with a mentor

The teacher stays in touch with the group both during the course and outside class. Any questions get answered right away.

04

Portfolio

During the course you'll complete several projects on different topics — they'll show employers what you can do.

Self-paced learning

The full curriculum in your personal account

129 topics with theory, examples and practice. The first 4 are free, the rest come with a subscription.

Introduction and Algorithmic Thinking5 topics
  1. What an Algorithm Is
  2. Pseudocode and Flowcharts
  3. Correctness and Loop Invariants
  4. Testing Algorithms and Edge Cases
  5. Measuring Time: timeit and perf_counter
Algorithm Complexity10 topics
  1. Why We Measure Complexity
  2. Big-O, Omega and Theta Notation
  3. Growth Classes: from O(1) to O(n!)
  4. Counting Rules: Loops, Nesting, Sequential Blocks
  5. Best, Worst and Average Case
  6. Space Complexity
  7. Amortized Analysis
  8. Complexity of Built-in Python Operations
  9. Analyzing Recursion and the Master Theorem
  10. Empirical Measurement vs Theory
Recursion and Problem-Solving Approaches10 topics
  1. Recursion and the Call Stack
  2. Memoization and lru_cache
  3. Backtracking: Permutations and Subsets
  4. Backtracking: N-Queens and Sudoku
  5. Divide and Conquer
  6. Greedy Algorithms
  7. Dynamic Programming: Introduction
  8. DP: The Knapsack Problem
  9. DP: Longest Common Subsequence
  10. DP: Edit Distance (Levenshtein)
Arrays and Strings as Data Structures6 topics
  1. Arrays in Memory and the Dynamic Array
  2. Two Pointers
  3. Sliding Window
  4. Prefix Sums
  5. String Problems: Palindromes and Anagrams
  6. String Parsing and Compression
Search Algorithms8 topics
  1. Linear Search
  2. Binary Search
  3. Binary Search Pitfalls and bisect
  4. Binary Search on the Answer
  5. Interpolation and Jump Search
  6. Substring Search: Naive and Rabin-Karp
  7. The KMP Algorithm
  8. Quickselect: Finding the k-th Element
Sorting Algorithms11 topics
  1. Sorting Properties: Stability and In-Place
  2. Bubble Sort
  3. Selection Sort
  4. Insertion Sort
  5. Shell Sort
  6. Merge Sort
  7. Quick Sort
  8. Heap Sort
  9. Counting, Radix and Bucket Sort
  10. Timsort, sorted and key
  11. Comparing Sorting Algorithms with Benchmarks
Abstract Data Types4 topics
  1. ADT vs Data Structure: Interface and Implementation
  2. ADT Catalog: List, Stack, Queue, Deque, Priority Queue, Set, Map, Graph
  3. Implementing ADTs in Python: ABC, Protocol and Contract Tests
  4. Choosing the Right Data Structure
Linear Data Structures8 topics
  1. Singly Linked List
  2. Doubly and Circular Linked Lists
  3. Stack Implementation
  4. Stack Applications: Brackets, RPN, Undo
  5. Queue: List, Linked List and Ring Buffer
  6. Deque and Monotonic Queue
  7. Priority Queue: Introduction
  8. Linked List Problems
Hash-Based Structures7 topics
  1. Hash Functions
  2. Hash Table: Separate Chaining
  3. Open Addressing
  4. Load Factor and Rehashing
  5. How dict and set Work in CPython
  6. Bloom Filter
  7. Designing an LRU Cache
Trees11 topics
  1. Trees: Terminology and Traversals
  2. Binary Tree: Implementation and Properties
  3. Binary Search Tree: Insert and Search
  4. BST: Deleting a Node
  5. AVL Trees
  6. Red-Black Trees: Overview
  7. B-Trees and Databases
  8. Heaps and heapq
  9. Trie (Prefix Tree)
  10. Segment Tree and Fenwick Tree
  11. Tree Problems
Graphs11 topics
  1. Graph Representations
  2. Depth-First Search (DFS)
  3. Breadth-First Search (BFS)
  4. Dijkstra's Algorithm
  5. Bellman-Ford and Floyd-Warshall
  6. A* Search
  7. Topological Sort
  8. Union-Find (Disjoint Set Union)
  9. Minimum Spanning Tree: Kruskal and Prim
  10. Cycle Detection
  11. Graph Applications: Maps, Dependencies, Social Networks
Object-Oriented Design26 topics
  1. From OOP to Design: Cohesion and Coupling
  2. UML: Class and Sequence Diagrams
  3. SOLID: Single Responsibility Principle
  4. SOLID: Open/Closed Principle
  5. SOLID: Liskov Substitution Principle
  6. SOLID: Interface Segregation Principle
  7. SOLID: Dependency Inversion Principle
  8. Composition vs Inheritance: Design Decisions
  9. Creational Patterns: Factory Method and Abstract Factory
  10. Builder Pattern
  11. Singleton and Its Pitfalls
  12. Adapter Pattern
  13. Decorator Pattern
  14. Facade Pattern
  15. Strategy Pattern
  16. Observer Pattern
  17. Command Pattern
  18. State Pattern
  19. Iterator Pattern
  20. Design Anti-Patterns
  21. DRY, KISS, YAGNI and the Law of Demeter
  22. Layers and Clean Architecture
  23. OOD Case: Parking Lot
  24. OOD Case: Elevator System
  25. OOD Case: Library Management
  26. OOD Case: ATM
Practice and Interviews7 topics
  1. Problem-Solving Patterns
  2. Practice: Easy Problems
  3. Practice: Medium Problems
  4. Practice: Hard Problems
  5. How to Pass an Algorithmic Interview
  6. Analyzing Your Own Solution
  7. Common Mistakes in Algorithm Problems
Final Project5 topics
  1. Project: Sorting Visualizer
  2. Project: Route Planner on a Graph
  3. Project: Trie Autocomplete
  4. Project: Your Own dict and LRU Cache
  5. Final Course Test

Group and individual classes include a teacher, homework review and a certificate. The subscription gives you materials, exercises and progress tracking at your own pace, without teacher feedback.

Algorithms and data structures course: how to enroll

Fill in the form and we will tell you the start date of the next group, the schedule and payment terms. Or come to a free trial lesson first.

WhatsApp