Introduction Step by step examples Graph reduction Laziness Time and space profiling Strictness Algorithm complexity Data structures Parallelism