Studies
Admissions
The Institute
Resources
Studies
Admissions
The Institute
Resources
Studies
Admissions
The Institute
Resources

CS412BKK

Advanced Algorithms and Data Structures

Bangkok Campus
May 18, 2026 - Jun 05, 2026
This course gives an overview of the most popular advanced algorithms, as well as the data structures used in modern applications.
Bangkok Campus
May 18, 2026 - Jun 05, 2026
Ivan Solomatin

Faculty

Ivan Solomatin

Leading Engineer at Samsung R&D Institute Russia.

Course length

3 weeks

Duration

3 hours
per day

Total hours

45 hours

Credits

6 ECTS

Language

English

Course type

Offline

Fee for single course

€1500

Fee for degree students

€750

Skills you’ll learn

Advanced AlgorithmsProgramming Problem Decomposition and ReductionProblem-Solving with Python
OverviewCourse outlineCourse materialsPrerequisitesMethod & grading

Overview

This course gives an overview of the most popular advanced 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 at an advanced level. 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 advanced algorithms and data structures.
  • Get experience and intuition in programming problem solving at an advanced level.

Course outline

15 classes

Dive into the details of the course and get a sense of what each class will cover.
Monday
Tuesday
Wednesday
Thursday
Friday
Monday
1

Session 1

Divide and Conquer: finding the k-th order statistic in linear time. Sorting algorithms. Counting inversions in an array.

Tuesday
2

Session 2

Binary search by answer, Ternary search for unimodal functions.

Wednesday
3

Session 3

DFS and BFS: traversals, coloring, topological sorting. Cycle detection in directed and undirected graphs. Bridges and articulation points. Strongly connected components.

Thursday
4

Session 4

Dijkstra's algorithm (with heap), Bellman–Ford algorithm (negative edges, negative cycle detection), Floyd–Warshall algorithm (all-pairs shortest paths).

Friday
5

Session 5

Universal hashing, Rabin–Karp algorithm (substring search with rolling hash), Rolling hash techniques.

Monday
6

Session 6

Brute-force techniques. Dynamic programming on trees.

Tuesday
7

Session 7

Dynamic programming by profile.

Wednesday
8

Session 8

Minimum Spanning Trees. DSU (Union-Find) data structure.

Thursday
9

Session 9

Lowest Common Ancestor problem (LCA)

Friday
10

Session 10

Computational Geometry: Basic primitives: point, vector, orientation (cross product), Classical problems: line segment intersection, point-in-polygon test, Convex hull construction.

Monday
11

Session 11

Bipartite graphs, König's theorem Kuhn's algorithm (maximum bipartite matching), Maximum flow problem.

Tuesday
12

Session 12

Binary heap, heapsort, Binomial heap, AVL tree, Red-black tree, Cartesian tree (Treap).

Wednesday
13

Session 13

RSQ, RMQ. Segment tree: range minimum/sum queries, range updates. Persistent data structures: persistent stack, persistent array, persistent segment tree.

Thursday
14

Session 14

Intro to Computational Complexity Theory. Complexity classes P and NP, NP-Complete problems, Reductions: examples (SAT, vertex cover, clique).

Friday
15

Session 15

Exam

Prerequisites

Basic python programming.

Basic calculus understanding.

Algorithms and Data structures (level 2).

Methodology

* Lectures

* Workshops

* Individual exercises

Grading

The final grade will be composed of the following criteria:
60% - Homework
20% - Practical exam
20% - Theoretical exam
Ivan Solomatin

Faculty

Ivan Solomatin

Leading Engineer at Samsung R&D Institute Russia.

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 profile

Apply for this course

Snap up your chance to enroll before all spaces fill up.

Advanced Algorithms and Data Structures

by Ivan Solomatin

Total hours

45 Hours

Dates

May 18 - Jun 05, 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.