cs4300 notes: search algorithms