This document discusses different types of control structures in programming languages. It covers selection statements like if/else that allow different code paths based on conditions, and iterative statements like for loops and while loops that allow repeating blocks of code. It also discusses unconditional branching with goto statements. Examples are provided of these structures in languages like C, C++, Java, and Pascal. The role of preconditions and postconditions in specifying and proving the correctness of programs is also overviewed.