Computer Science Fundamentals
Learn how to make a computer do what you want, elegantly and efficiently.
Algorithmic Thinking
Looping
Conditional Logic
Complex Logic
Manipulating Numbers
Puzzles with Inputs
Arrays
Repetition and Arrays
Searching an Array
Binary Search
Compare and Swap
Sorting an Array
Insertion Sort
Timing Programs
Counting Operations
Best and Worst Case
Average Case
Comparing Algorithms
Understanding Big O
The Mathematics of Big O
The Stable Matching Problem
Using Greediness
Deferred Acceptance Algorithm
Correctness
Termination
Running Time
Variants
Decision Trees
Fewer Questions
Binary Search
Parallelism
Pipelining
Resource Tradeoffs
Resource Allocation
Abstraction
Interfaces
The Bridges of Königsberg
Brute Force
Thinking with Graphs
Eulerian Paths
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
How LLMs Work
Take a peek under the hood of large language models (LLMs) to understand how they work.
Jump ahead