This document discusses algorithms and their notations. It defines an algorithm as a well-defined computational procedure that takes inputs and produces outputs. Algorithms use three main types of logic: sequential flow, conditional flow, and repetitive flow. Conditional flow uses if structures like single alternative (if/then), double alternative (if/then else), and multiple alternative (if/else if/else). Repetitive flow uses repeat structures like repeat-for (with an index from start to end) and repeat-while (with a condition). Proper comments, variable names, assignments, inputs/outputs, and procedures are also discussed for writing clear algorithms.