CS112BKK
Basics of Algorithms

Faculty
Vsevolod Stepanov
Senior Software Engineer at Databricks
Course length
Duration
Total hours
Credits
Language
Course type
Fee for single course
Fee for degree students
Skills you’ll learn
Overview
This course covers some of the most important algorithms and data structures used in computer science and real-world applications. Students will learn how to implement these algorithms and apply them to a variety of problems.
Learning highlights
- Learn how to analyse algorithm time complexity and memory usage.
- Learn how to implement and apply algorithms to a range of problems.
- Learn how to write efficient code.
Course outline
15 classes
Time and space complexity/ Binary search
O-notation, time and space complexity.
Function growth.
Binary search.
Real-number binary search.
Basic data structures I
Linked list.
Dynamic array.
Stack.
Queue.
Deque.
Basic data structures II
Hashtable.
Two pointers.
Prefix sum.
Sorting algorithms I
Quadratic algorithms.
Counting sort.
Heap, heap sort.
Sorting algorithms II
Merge sort.
Quick sort.
Trees, Binary search trees
Basic operations: traverse, insert, find, delete.
No balancing.
String algorithms
Trie.
Polynomial hashing.
Midterm test
Midterm test.
Graph algorithms I
Graph representation.
Depth-first search.
Topological sort.
Graph algorithms II
Breadth-first search.
Dijkstra.
Bellman-Ford.
Dynamic Programming I
Basic concepts.
Linear dynamic algorithms.
Dynamic Programming II
Games on graphs.
Longest increasing subsequence.
Dynamic on grids.
Dynamic Programming III
Floyd-Warshall algorithm.
Longest common subsequence.
Knapsack.
Backtracking, brute force algorithms
N-queens.
Travelling salesman problem
Bitmasks, subset enumeration.
Final test
Final test.
Prerequisites
Knowledge of at least one programming language.
Methodology
Each session will consist of a lecture, during which students will learn new algorithms, followed by a practical session where they will apply these algorithms to a range of problems.
There will be daily assignments in which students will solve coding problems using an automated grading system.
Grading
Vsevolod Stepanov is a Senior Software engineer at Databricks. He holds a Bachelor's degree in Computer Science and Machine Learning, graduating from Saint Petersburg Academic University.
Since high school, he has been actively participating in programming competitions. In 2017, he advanced to ACM ICPC World Finals. Before Databricks, he also worked at Yandex, JetBrains and had an internship at Google.
See full profileApply for this course
Basics of Algorithms
by Vsevolod Stepanov
Total hours
45 Hours
Dates
May 19 - Jun 06, 2025
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.