CS113BKK
Basics of Algorithms

Faculty
Norge Vizcay
Software Engineer at Google
Course length
Duration
Total hours
Credits
Language
Course type
Fee for single course
Fee for degree students
Skills you’ll learn
Overview
Programming is more than just translating well-understood instructions to a language that a computer can understand.In most cases we need to devise totally new methods for solving a problem. This course introduces you to some algorithms and data structures used to solve problems.
Learning highlights
- The class covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications.
- You will learn how to sort and search data.
- How to break a large problem into pieces and solve them recursively.
- How to pack your knapsack using greedy algorithms.
- How to search for similarities between genes using dynamic programming.
- You will practice solving computational problems, designing new algorithms, and implementing them as efficient software tools.
Course outline
15 classes
Mathematical Background
Growth of Functions. Mathematical Induction
Analysis of Algorithms
The Big-O Notation. Time and Space Complexity. Simple Sorting Algorithms
Elementary Data Structures
- Arrays. Linked Lists. Stacks. Queues. Simple Trees
Sorting and Searching
Sorting Methods. Binary Search. Finding Majority
Exam 1
Heaps, Binary Search Trees
Graph Algorithms 1
Graph Representation. Breadth-First Search. Depth-First Search. Topological Sorting
Graph Algorithms 2
Connected Components. Bridges. Articulation Points
Single-Source Shortest Path
Dijkstra. Bellman-Ford
Exam 2
Greedy Algorithms, Disjoint-Set Unions
Minimum-Cost Spanning Tree: Kruskal, Prim
Dynamic Programming 1
Sequence alignment. Fibonacci. Tower of Hanoi. Longest Common Subsequence. Coin Change Problem
Dynamic Programming 2
Longest Increasing Subsequence. All-Pairs Shortest Path: Floyd-Warshall. Egg Dropping Puzzle. Knapsack
Backtracking, Branch-and-Bound
N-Queens. Travelling Salesman Problem. 0/1 Knapsack
Final Exam
Prerequisites
Knowledge of at least one programming language.
Methodology
Lectures and individual exercises.
Grading
Norge was born in 1992 in Cuba. He started his Computer Science Bachelor in University of Havana in 2011 graduating with honors in 2016.
While studying in Havana he started training for programming competitions being able to participate in the 2016 ACM-ICPC World Finals in Phuket, Thailand.
See full profileApply for this course
Basics of Algorithms
by Norge Vizcay
Total hours
45 Hours
Dates
May 30 - Jun 17, 2022
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.



