Algorithmic Design and Techniques

Course 1 of 8: MicroMasters® Program in Algorithms and Data Structures 6 Weeks 8 - 10 hours each week
852

Please select the start dates for your courses below.

Scheduled Start:

About this course

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.

This course will cover theories, including:

  • how to sort data and how it helps for searching;
  • how to break a large problem into pieces and solve them recursively;
  • when it makes sense to proceed greedily;
  • how dynamic programming is used in genomic studies.

You will practice solving computational problems, designing new algorithms, and implementing solutions efficiently (so that they run in less than a second).

What you’ll learn

  • Essential algorithmic techniques – greedy algorithms, divide and conquer, binary search, sorting, dynamic programming
  • Best practices of implementing algorithms efficiently
  • Ways of testing and debugging programs

Prerequisites

  • Basic knowledge of at least one programming language: loops, arrays, stacks, recursion.
  • Basic knowledge of mathematics: proof by induction, proof by contradiction.

 

Who can take this course?

All

Meet Your Instructors

Alexander S. Kulikov

Visiting Professor
UC San Diego

Michael Levin

Chief Data Scientist
Yandex.Market

Daniel Kane

Assistant Professor,
Computer Science and Engineering & Dept. of Mathematics
UC San Diego

Pavel Pevzner

Ronald R. Taylor Professor of Computer Science
The University of California, San Diego

Neil Rhodes

Lecturer
UC San Diego
852

Duration

6 Weeks

Experience Level

Intermediate

Learning Partner

San Diego

Program Type

MicroMasters®
Advanced Business Harvard X-Series