Formal logic and its applications. Proof of correctness. Sets and combinatorics. Induction, recursion, and recurrence equations. Relations, functions, and graphs: shortest path and minimal spanning tree, planarity, Eulerian paths, Hamiltonian cycles. Algebraic structures, finite-state machines, turing machines, and computational notions.