algorithms class notes 8584551