Big-O notation, examples of complexity
NP theory
Decision problem, optimization problem
Computational Complexity II, Number Theory I
NP-Completeness
Divisibility, modular operation, base-b representation, related algorithms
Number Theory II
Primes, greatest common divisor
Euclidean algorithm, Bezout identity
Linear congruential equation, inverse modulo n
Applications of Number Theory
Chinese remainder theory, back substitution
Pseudorandom numbers using linear congruential method
Fermat’s little theorem, Euler’s theorem
Primitive root
Cryptography
History of cryptography
Symmetric encryption, public-key cryptography, RSA scheme
Discrete logarithm problem, El Gamal encryption scheme
Mathematical Induction
Introduction to induction, typical proofs
Weak principle, strong principle of mathematical induction
Recurrence I
Hanoi tower and recurrence
Solving recurrences with initial conditions
Recurrence II
Solving recurrences, more examples
The master theorem
Counting I
Permutations, combinatorial numbers, the sum/product rule
Inclusion-Exclusion principle and its proof
Pigeonhole principle
Bijection principle