Algorithm Notes