The course will cover the following subjects:
-
Basic data structures and algorithms such as binary search, self-resizing arrays and linked lists
-
Big-O complexity and how to reason about it, in iterative and recursive programs
-
Sorting algorithms: O(n^2) (e.g. insertion sort, selection sort, bubblesort, quicksort), O(n log n) (e.g. mergesort, heapsort), O(n) (e.g. counting sort)
-
Data structure invariants; abstract data types
-
Hash tables
-
Binary heaps; heapsort
-
Binary search trees, balanced binary search trees (AVL trees, red-black trees), 2-3 trees
-
Graphs; Dijkstra’s algorithm; Prim’s algorithm
You can find the official syllabus here.