Algorithmic thinking and efficient data structures for scalable ML systems
VGALPO
Vitaly Goldshteyn, Petr Mitrichev, Aleksei (seminar), Polina
About the course
This course covers classical algorithms and data structures, with an emphasis on computational complexity and practical applicability in ML infrastructure. Students learn efficient implementations of search, sorting, trees, and graphs, along with algorithms for large-scale data (streaming algorithms, locality-sensitive hashing). Algorithmic analysis skills are essential for the MLOps and ML Engineering courses.
What you'll learn
✓Analyze the time and space complexity of algorithms and choose the right data structure
✓Implement efficient index structures for approximate search in high-dimensional spaces
✓Design streaming algorithms for data that doesn't fit in memory
✓Justify algorithmic choices in terms of performance at scale
Key topics
•Asymptotic analysis: O, Ω, Θ; recurrence relations
•Sorting, binary search, hash tables
•Trees: BSTs, B-trees, heaps, segment trees
•Graphs: BFS, DFS, shortest paths, spanning trees
•Dynamic programming and greedy algorithms
•Streaming algorithms and sketching
•Locality-Sensitive Hashing (LSH) and approximate nearest neighbor search (ANN)
•Parallel and distributed primitives (the MapReduce model)
•Amortized analysis
This description was generated automatically and has not yet been reviewed by an instructor — it's a draft for discussion.