The following posts contain some materials from the algorithm series (6.006, 6.046 and 6.851) at MIT.