Description
In this course, you will :
- Through a combination of articles, visualisations, quizzes, and coding challenges, you will learn introductory computer science algorithms such as searching, sorting, recursion, and graph theory.
- Challenges can be implemented in Java, Python, C++, or Javascript.
Syllabus :
1. Intro to Algorithms
- What is an algorithm and why should you care?
- A Guessing Game
- Route-finding
2. Binary Search
- Binary Search
- Implementing Binary Search of an Array
- Challenge: Binary Search
- Running Time of Binary Search
- Quiz: Running time of binary search
3. Asymptotic Analysis
- Introduction to Asymptotic notation
- Big-θ (Big-Theta) notation
- Functions in Asymptotic Notation
- Big-O notation
- Big-Ω (Big-Omega) notation
- Quiz: Asymptotic notation
4. Selection Sort
- Sorting
- Challenge: Implement Swap
- Selection Sort Pseudocode
- Challenge: Find minimum in Subarray
- Challenge: Implement Selection Sort
- Analysis of Selection Sort
5. Insertion Sort
- Insertion Sort
- Challenge: Insert a Value Before an Index in Sorted Order
- Insertion Sort pseudocode
- Challenge: Implement Insertion Sort
- Analysis of Insertion Sort
6. Recursion Algorithms
- Recursion
- The factorial function
- Challenge: Iterative factorial
- Recursive factorial
- Challenge: Recursive factorial
- Properties of recursive algorithms
- Using recursion to determine whether a word is a palindrome
- Challenge: is a string a palindrome?
- Computing powers of a number
- Challenge: Recursive Powers
- The Sierpinksi gasket
7. Towers of Hanoi
- Towers of Hanoi
- Move three disks in Towers of Hanoi
- Towers of Hanoi, continued
- Challenge: Solve Hanoi recursively
8. Merge Sort
- Divide and Conquer Algorithms
- Overview of Merge Sort
- Challenge: Implement Merge Sort
- Linear-time Merging
- Challenge: Implement Merge
- Analysis of Merge Sort
9. Quick Sort
- Overview of Quicksort
- Challenge: Implement Quicksort
- Linear-time Partitioning
- Challenge: Implement Partition
- Analysis of Quicksort
10. Graphs
- Describing graphs
- Representing graphs
- Challenge: Store a graph
11. Breadth-first Search
- Breadth-first search and its uses
- The breadth-first search algorithm
- Challenge: Implement breadth-first search
- Analysis of breadth-first search