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

CS208

Algorithms and Data Structures

Barcelona Campus
Feb 23, 2026 - Mar 13, 2026
In this course, students focus on key and in-depth algorithms and data structures that form a modern computer specialist’s toolkit.
Barcelona Campus
Feb 23, 2026 - Mar 13, 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

4 ECTS

Language

English

Course type

Offline

Fee for single course

€1500

Fee for degree students

€750

Skills you’ll learn

PythonAlgorithmsProgramming Problem SolvingProgramming Problem Decomposition and Reduction
OverviewCourse outlineCourse materialsPrerequisitesMethod & grading

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

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

S01 - Sorting Algorithms

  • Algorithm complexity basics
  • Quadratic sorting algorithms
  • Linearithmic sorting algorithms
  • Greedy algorithms
Tuesday
2

S02 - Binary Search

  • Counting sort
  • Binary search in array
  • Left/right binary search
  • Binary search on a function
  • Binary search by answer
Wednesday
3

S03 - Basic Data Structures

  • Vector
  • Linked list
  • Doubly linked list
  • Stack
  • Queue
  • Deque
Thursday
4

S04 - Dynamic Programming

  • Basic principles of DP
  • O(N^2) Longest increasing subsequence
  • O(N log N) Longest increasing subsequence
Friday
5

S05 - Knapsack Problem

  • Classical knapsack problem
  • Knapsack problem modifications
Monday
6

S06 - KMP and Heap

  • Knuth Morris Pratt algorithm
  • Binary heap
Tuesday
7

S07 - DFS and BFS

  • Basic graph theory definitions
  • Way to store graphs in memory
  • DFS
  • BFS
Wednesday
8

S08 - Shortest Paths in Graphs

  • Dijkstra's algorithm
  • Bellman-Ford algorithm
  • Floyd-Warshall algorithm
Thursday
9

S09 - RSQ and RMQ

  • Prefix-sum
  • Sparse table
  • Sqrt-decomposition
  • Segment tree
  • Fenwick tree
Friday
10

S10 - Hashing

  • Universal hash
  • Rabin-Karp algorithm
  • Hashmap data structure
Monday
11

S11 - Binary Search Tree

  • Unbalanced BST
  • AVL tree
  • Red-black tree
Tuesday
12

Session 12

  • Consultations
  • Practical exam
Wednesday
13

Session 13

Practical exam

Thursday
14

Session 14

  • Theoretical exam
Friday
15

Session 15

Theoretical exam

Prerequisites

Basic python programming

Basic calculus understanding

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.

Algorithms and Data Structures

by Ivan Solomatin

Total hours

45 Hours

Dates

Feb 23 - Mar 13, 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.