CS204BKK
Algorithms and Data Structures

Faculty
Ivan Solomatin
Leading Engineer at Samsung R&D Institute Russia.
Course length
Duration
Total hours
Credits
Language
Course type
Fee for single course
Fee for degree students
Skills you’ll learn
Overview
This course gives an overview of the most popular and basic algorithms, as well as the data structures used in modern applications. The module will give the students theoretical knowledge, experience, and intuition for solving programming problems. Understanding algorithms may be highly useful for both effective programming during your job or research and for passing your job interview.
Learning highlights
- Get familiar with basic algorithms and data structures
- Learn how to apply algorithms
- Learn to implement basic algorithms and data structures in Python
- Learn to use built-in algorithms from the Python standard library
- Get experience and intuition in programming problem solving
Course outline
15 classes
S01 - Sorting Algorithms
- Algorithm complexity basics
- Linearithmic sorting algorithms
- Counting inversions
- K-th order statistics
S02 - Binary Search
- Counting sort
- Radix sort
- Binary search by answer
- Ternary search
S03 - Dynamic Programming 1
- Basic principles of DP
- O(N^2) Longest increasing subsequence
- O(N log N) Longest increasing subsequence
S04 - Dynamic Programming 2
- Knuth Morris Pratt algorithm
- Knapsack problem
S05 - Binary heap
- Binary heap
S06 - DFS and BFS
- DFS
- BFS
- Topological Sort
- Cycles search
- Bridges and Articulation vertices
S07 - Shortest Paths in Graphs
- Dijkstra's algorithm
- Bellman-Ford algorithm
- Floyd-Warshall algorithm
S08 - DSU and Spanning trees
- Disjoint Set Union
- Kruscal algorithm
S09 - RSQ and RMQ
- Prefix-sum
- Sparse table
- Sqrt-decomposition
- Segment tree
- Fenwick tree
S10 - Hashing
- Universal hash
- Rabin-Karp algorithm
- Hashmap data structure
S11 - Binary Search Tree
- Unbalanced BST
- AVL tree
- Red-black tree
S12 - Computational geometry
- Basic geometric problem
- Circles
- Polygons
Session 13
- Consultations
- Practical exam
Session 14
- Theoretical exam
Session 15
Theoretical exam
Prerequisites
Basic python programming
Basic calculus understanding
Methodology
Lectures
Workshops
Individual exercises
Grading
Ivan Solomatin is an Expert Engineer at Samsung Research. His research interests are Biometrics, Computer Vision and Deep Learning. Received Bachelor (2016), Masters (2018) and PhD (2022) degree in Applied Mathematics at MIPT.
He was a coach for competitive programming for schoolchildren in 2016-2018. Since 2020 he has been teaching Algorithms at MIPT. Loves to communicate with students and tries to do his best to give them fast and efficient feedback.
See full profileApply for this course
Algorithms and Data Structures
by Ivan Solomatin
Total hours
45 Hours
Dates
Oct 19 - Nov 06, 2026
Fee for single course
€1500
Fee for degree students
€750
How to secure your spot
Complete the form below to kickstart your application
Schedule your Harbour.Space interview
If successful, get ready to join us on campus
FAQ
Will I receive a certificate after completion?
Yes. Upon completion of the course, you will receive a certificate signed by the director of the program your course belonged to.
Do I need a visa?
This depends on your case. Please check with the Spanish or Thai consulate in your country of residence about visa requirements. We will do our part to provide you with the necessary documents, such as the Certificate of Enrollment.
Can I get a discount?
Yes. The easiest way to enroll in a course at a discounted price is to register for multiple courses. Registering for multiple courses will reduce the cost per individual course. Please ask the Admissions Office for more information about the other kinds of discounts we offer and what you can do to receive one.