algorithms lecture notes 7889695