Back to Courses

# Algorithm Fundamentals

## Learn how to make a computer do what you want, elegantly and efficiently.

An algorithm is a step-by-step process to achieve some outcome. When algorithms involve a large amount of input data, complex manipulation, or both, we need to construct clever algorithms that a computer can work through quickly.

By the end of this course, you’ll know methods to measure and compare performance, and you’ll have mastered the fundamental problems in algorithms.

23

195+
1. 1

### Building Blocks

The nuts and bolts of how computer scientists communicate algorithmic ideas.

1. #### Building Programs

If you want a computer to interact with the world, you’re going to need to write a program.

2. #### Wrangling with Repetition

Want help repeating tasks? Program a computer to do it for you.

3. #### Spellcheck

Write a program to build your own spellchecker.

2. 2

### Array Algorithms

Master repetition through understanding algorithms that manipulate arrays.

1. Included with

#### Manipulating Numbers

Most algorithms store and manipulate numbers using assignable variables.

2. Included with

#### Arrays

Arrays are critical for understanding algorithms that manipulate collections of information.

3. Included with

#### Searching an Array

Arrays can store lots of information. To find out what's there, you just have to look!

4. Included with

#### Binary Search

Looking in the middle of a sorted array requires a bit of cleverness, but it can save you a lot of work.

3. 3

### The Speed of Algorithms

Part of the study of algorithms is learning to predict how fast or slow they run.

1. Included with

#### Timing Programs with a Stopwatch

In science, sometimes the best thing to do is run an experiment!

2. Included with

#### Counting Operations

3. Included with

#### Best, Worst and Average Case

Algorithms don't always have predictable costs. To prepare for the worst or hope for the best, you need to know what those are!

4. Included with

#### Comparing Algorithms

Big O notation is a simple notation that helps computer scientists compare algorithms and implementations.

4. 4

### Stable Matching

You now have the tools to understand and reason about important algorithms, including algorithms that can change the course of people's lives.

1. Included with

#### The Stable Matching Problem

Discover a simple problem faced by every teaching hospital and medical student every year.

2. Included with

#### Using Greediness

An individual applicant can make the best decision with a greedy algorithm.

3. Included with