CS109BKK
Basics of Algorithms

Faculty
Bartosz Kostka
Software Developer at Google Waterloo
Course length
Duration
Total hours
Credits
Language
Course type
Fee for single course
Fee for degree students
Skills you’ll learn
Overview
The elemental data structures and algorithms that are the foundation of computer science are the main topics of this course. It covers a range of algorithms from various domains, blending theoretical principles with real-world applications. Students will engage in programming assignments to reinforce learning and develop problem-solving skills.
Learning highlights
- Gain a thorough understanding of basic algorithms and their applications, and learn to efficiently implement them.
- Develop the ability to analyse and evaluate the time and memory efficiency of algorithms.
- Learn to apply algorithmic strategies like recursion, greedy algorithms, and dynamic programming to solve real-world computational problems.
- Build a strong foundation that prepares students for more advanced studies in computer science and enhances their general coding skills.
Course outline
15 classes
Session 1
Introduction to Algorithms, Algorithmic Complexity, Big-O Notation
Session 2
Fundamental Data Structures: Array, Stack, Queue
Session 3
Sorting Algorithms I
Session 4
Searching Algorithms, Binary Search
Session 5
Sorting Algorithms II
Session 6
Recursive Problems
Session 7
Heap, Binary Search Trees
Session 8
Midpoint Exam
Session 9
Dynamic Programming I
Session 10
Dynamic Programming II
Session 11
Greedy Algorithms
Session 12
Graph Algorithms I
Session 13
Graph Algorithms II
Session 14
Dealer’s Choice (one of: Algorithms in Number Theory, String Algorithms, Graph Algorithms III, or Computational Geometry)
Session 15
Final Exam
Methodology
Each session will start with a lecture, followed by a practical session with programming exercises.
Grading
Software developer at Google Canada. Member of the team responsible for the Google Kick Start competition. Former high-school teacher, where he mostly focused on personal tutoring with gifted students. Within 6 years, his students won 7 medals in International Olympiad in Informatics (5 gold, 1 silver, and 1 bronze) and 22 medals in Polish Olympiad in Informatics. He helped to organize many national and international competitions: a member of the IOI Host Scientific Committee in 2019 and Baltic OI Scientific Committee in 2015, among others. Now he focuses on educating the youngest generation, being the chair of the jury, a problemsetter, and a member of the organizing committee of the Polish Junior Olympiad in Informatics. Retired sports programmer, International Grandmaster on Codeforces.
See full profileApply for this course
Basics of Algorithms
by Bartosz Kostka
Total hours
45 Hours
Dates
Feb 19 - Mar 08, 2024
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.