Readings and other resources in module order

This page collects together all of the “readings” associated with individual modules.

In this site, readings represent “passive” learning opportunities, as opposed to experiences, which represent “active” learning opportunities. In many courses, readings and experiences together constitute the “assignments”.

Module: Analysis examples

Module: Growth of functions

Module: Abstract data types

Module: Probabilistic Analysis

Module: Hash Tables

Module: Divide and conquer

Module: Binary Search Trees

Module: Heapsort

Module: Quicksort

Module: Balanced Trees

Module: Dynamic Programming

Module: Greedy Algorithms

Module: Graphs

Module: Amortized analysis

Module: Disjoint sets

Module: Minimum spanning tree

Module: Single source shortest paths

Module: All pairs shortest paths

Module: Maximum flow

Module: Linear programming

Module: Multithreading

Module: String matching

Module: NP-completeness

Module: Approximation algorithms