Algorithm of Problem Solving notes