- Number Systems
- Propositions and Logical Operations
- Counting
- Relations
- Graph theory
- Group theory
- Lattice theory
- Coding theory
- Decimal Number Systems
- Binary Number Systems
- Hexadecimal Number Systems
- Octal Number Systems
- Propositional equivalence
- predicates and quantifiers
- Methods of proofs
- proof strategy, sequences and summation
- mathematical induction
- recursive definitions and structural induction
- prepositional calculus
- The basics of counting
- The pigeonhole principle
- permutations and combinations
- recurrence relations, solving recurrence relations
- generating functions
- inclusion-exclusion principle
- application of inclusion-exclusion
- Relations and their properties
- n-array relations and their applications
- representing relations
- closure of relations
- Warshall's algorithm
- equivalence of relations
- partial orderings
- Introduction to graphs
- graph terminology
- representing graphs and graph isomorphism
- Euler and Hamilton paths
- planar graphs
- graph coloring
- introduction to trees
- application of trees
- Groups, subgroups
- generators and evaluation of powers
- cosets and Lagrange's theorem
- permutation groups and Burnside's theorem
- isomorphism, auto orphisms, homomorphism and normal subgroups
- rings
- integral domains and fields
- Lattices and algebras systems
- principles of duality
- basic properties of algebraic systems defined by lattices
- distributive and complimented lattices
- Boolean lattices
- Boolean algebras
- uniqueness of finite Boolean expressions.
- Coding of binary information
- error detection
- decoding and error correction