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

CS107

Basics of Algorithms

Barcelona Campus
Feb 02, 2026 - Feb 20, 2026
This course gives an overview of the most popular and basic algorithms, as well as the data structures used in modern applications.
Barcelona Campus
Feb 02, 2026 - Feb 20, 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

Programming Problem SolvingProgramming Problem Decomposition and ReductionPython CodeBasic Algorithms
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

Intro.

Algorithm complexity basics. Linear algorithms. Two pointers. Recursion.

Tuesday
2

Sorting algorithms.

Quadratic sorting algorithms. Linearithmic sorting algorithms. Counting sort, Greedy algorithms.

Wednesday
3

Binary search.

Binary search in array. Left/right binary search. Binary search on a function. Binary search by answer.

Thursday
4

Basic Data Structures.

Vector, Linked list, Doubly linked list, Stack, Queue, Deque.

Friday
5

Arithmetics Algorithms.

Primality, GCD, LCM, modular arithmetics, quick exponentiation, fast multiplication.

Monday
6

Dynamic Programming.

Basic principles of DP. Longest increasing subsequence: O(N^2), O(N log N).

Tuesday
7

Knapsack Problem.

Classical knapsack problem. Knapsack problem modifications.

Wednesday
8

String algorithms.

String searching problem. Knuth Morris Pratt algorithm. Z algorithm.

Thursday
9

Binary heap.

Binary heap.

Friday
10

Graph algorithms.

Basic graph theory definitions Way to store graphs in memory DFS, BFS.

Monday
11

Shortest Paths in Graphs.

Dijkstra's algorithm. Bellman-Ford algorithm. Floyd-Warshall algorithm.

Tuesday
12

Computational geometry.

Basic geometric primitives.

Wednesday
13

Computational geometry.

Convex hull. Sweep line algorithm.

Thursday
14

Course recap.

Consultations.

Friday
15

Theoretical exam.

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.

Basics of Algorithms

by Ivan Solomatin

Total hours

45 Hours

Dates

Feb 02 - Feb 20, 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.