We may earn an affiliate commission when you visit our partners.
Course image
Alexander S. Kulikov, Neil Rhodes, Michael Levin, Pasan Premaratne, Phillip Compeau, Pavel Pevzner, and Daniel Kane

This MicroMasters program is a mix of theory and practice: you will learn algorithmic techniques for solving various computational problems through implementing over one hundred algorithmic coding problems in a programming language of your choice.

Read more

This MicroMasters program is a mix of theory and practice: you will learn algorithmic techniques for solving various computational problems through implementing over one hundred algorithmic coding problems in a programming language of your choice.

No other online course in Algorithms even comes close to offering you a wealth of programming challenges that you may face at your next job interview. To prepare you, we have invested thousands of hours designing challenges as an alternative to multiple choice questions that you usually find in MOOCs. We believe in learning through application, especially when it comes to learning algorithms.

For each algorithm you develop and implement, we have designed multiple tests to check its correctness and running time — you will have to debug your programs without even knowing what these tests are! It may sound difficult, but we believe it is the only way to truly understand how the algorithms work and to master the art of programming.

Share

Help others find MicroMasters from edX by sharing it with your friends and followers:

What's inside

Eight courses

Algorithmic Design and Techniques

(54 hours)
In this course, part of the Algorithms and Data Structures MicroMasters program, you will learn basic algorithmic techniques and ideas for computational problems, which arise in practical applications such as sorting and searching, divide and conquer, greedy algorithms, and dynamic programming.

Data Structures Fundamentals

(54 hours)
A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this course, part of the Algorithms and Data Structures MicroMasters program, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in different programming languages and will practice implementing them in our programming assignments.

Graph Algorithms

(54 hours)
If you have ever used a navigation service to find the optimal route and estimate time to destination, you've used algorithms on graphs. Graphs arise in various real-world situations, such as road networks, computer networks, and social networks. In this course, you will learn what a graph is and its most important properties. You’ll learn several ways to traverse graphs and how to find shortest paths and minimum spanning trees.

NP-Complete Problems

(27 hours)
Step into the realm of NP-Complete problems, notoriously difficult challenges in computer science. This course delves into advanced algorithms to tackle these problems, equipping you with specialized techniques to solve large instances efficiently.

String Processing and Pattern Matching Algorithms

(36 hours)
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.

Dynamic Programming: Applications In Machine Learning and Genomics

(36 hours)
If you look at two genes that serve the same purpose in two different species, how can you rigorously compare these genes in order to see how they have evolved away from each other? This course will teach you dynamic programming and how it applies to basic string comparison algorithms, sequence alignment, hidden markov models, and machine learning in sequence alignment.

Graph Algorithms in Genome Sequencing

(27 hours)
In this course, you will learn how graph algorithms are used in two fundamental problems in modern biology: genome sequencing and constructing an evolutionary “Tree of Life.”

Algorithms and Data Structures Capstone

(36 hours)
Building a genome assembler is a challenge with major demand in the biotech industry. In this capstone project, you will design your own optimized software program for genome sequencing.

Learning objectives

  • Understand essential algorithmic techniques and apply them to solve algorithmic problems
  • Implement programs that work in less than one second even on massive datasets
  • Test and debug your code even without knowing the input on which it fails
  • Formulate real life computational problems as rigorous algorithmic problems
  • Prove correctness of an algorithm and analyze its running time

Save this collection

Save Algorithms and Data Structures to your list so you can find it easily later:
Save
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser