-
I/O-efficient algorithms
Description Operations on data become more expensive when the data item is located higher in the memory hierarchy. An operation on data in CPU registers is roughly a million times faster than an operation on a data item that is located in external memory that needs to be fetched first. These data fetches are also…
-
Approximation Algorithms
Description Many real-world algorithmic problems cannot be solved efficiently using traditional algorithmic tools, for example because the problems are NP-hard. The goal of this course is to become familiar with important algorithmic concepts and techniques needed to effectively deal with such problems. These techniques apply when we don’t require the optimal solution to certain problems,…
-
Geometric Algorithms
Description Course Information: In many areas of computer science such as robotics, computer graphics, virtual reality, and geographic information systems, it is necessary to store, analyze, and create or manipulate spatial data. This course deals with the algorithmic aspects of these tasks: we study techniques and concepts needed for the design and analysis of geometric…
-
Approximation Algorithms Part I
Description Approximation algorithms, Part I How efficiently can you pack objects into a minimum number of boxes? How well can you cluster nodes so as to cheaply separate a network into components around a few centers? These are examples of NP-hard combinatorial optimization problems. It is most likely impossible to solve such problems efficiently, so…
-
Approximation Algorithms Part II
Description Approximation algorithms, Part 2 This is the continuation of Approximation algorithms, Part 1. Here you will learn linear programming duality applied to the design of some approximation algorithms, and semidefinite programming applied to Maxcut. By taking the two parts of this course, you will be exposed to a range of problems at the foundations…
-
Statistical Mechanics: Algorithms and Computations
Description In this course you will learn a whole lot of modern physics (classical and quantum) from basic computer programs that you will download, generalize, or write from scratch, discuss, and then hand in. Join in if you are curious (but not necessarily knowledgeable) about algorithms, and about the deep insights into science that you…
-
Machine Learning Algorithms: Supervised Learning Tip to Tail
Description This course takes you from understanding the fundamentals of a machine learning project. Learners will understand and implement supervised learning techniques on real case studies to analyze business case scenarios where decision trees, k-nearest neighbours and support vector machines are optimally used. Learners will also gain skills to contrast the practical consequences of different…
-
Algorithms and Data Structures Capstone
Description Building a fully-fledged algorithm to assemble genomes from DNA fragments on a real dataset is an enormous challenge with major demand in the multi-billion dollar biotech industry. In this capstone project, we will take the training wheels off and let you design your own optimized software program for genome sequencing. This big data challenge…
-
Graph Algorithms in Genome Sequencing
Description In this course, part of the Algorithms and Data Structures MicroMasters program, you will learn how graph algorithms are used in two fundamental problems in modern biology: How do we sequence a genome? How do we construct an evolutionary “Tree of Life?” In the first part of the course, you will learn how genome…
-
String Processing and Pattern Matching Algorithms
Description The world and internet are full of textual information. We search for information using textual queries and read websites, books and e-mails. These are all strings from a computer science point of view. To make sense of all this information and make search efficient, search engines use many string algorithms. Moreover, the emerging field…