Algorithm part I by Tim Roughgarden is complete