Computer Science Fundamentals

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

Level

1

Discovering Algorithms

Practice Discovering Algorithms

Looping

Practice Looping

Conditional Logic

Practice Conditional Logic

Complex Logic

Practice Complex Logic

Level

2

Manipulating Numbers

Puzzles with Inputs

Arrays

Repetition and Arrays

Level

3

Searching an Array

Binary Search

Compare and Swap

Sorting an Array

Insertion Sort

Level

4

Timing Programs

Counting Operations

Best and Worst Case

Average Case

Level

5

Comparing Algorithms

Understanding Big O

The Mathematics of Big O

Level

6

The Stable Matching Problem

Using Greediness

Deferred Acceptance Algorithm

Level

7

Correctness

Termination

Running Time

Variants

Level

8

Decision Trees

Fewer Questions

Binary Search

Level

9

Parallelism

Pipelining

Resource Tradeoffs

Resource Allocation

Level

10

Abstraction

Interfaces

Level

11

The Bridges of Königsberg

Brute Force

Thinking with Graphs

Eulerian Paths

Level

12

Representing Games and Puzzles

Completing the Graph

Graph Search


Course description

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 have mastered the fundamental problems in algorithms.


Topics covered

  • Algorithmic Thinking
  • Algorithmic Correctness
  • Pseudocode
  • Variables
  • Conditionals
  • Repetition
  • While loops
  • For loops
  • Binary search
  • Selection sort
  • Insertion sort
  • Stable matching
  • Algorithmic complexity

Prerequisites

Up next

Programming & CS

How AI Works

Take a peek under the hood of generative AI and LLMs to understand how they work.

Jump ahead