Skills101
← All topics

Discrete Mathematics

The maths behind computer science, made friendly: sets, relations and functions, logic, proofs and induction, counting, recurrences, graphs, number theory (with a tiny RSA) and posets, lattices and groups — every idea checked with small Python programs and solved exam questions.

🎓 Free certificate for this subject

Pass all 8 lesson quizzes to get a verified certificate you can add to LinkedIn. Reading is free without an account — log in to track your progress.

Log in to track progress
  1. 01Sets, Relations and Functions — Operations, Properties, Equivalence Relations and BijectionsThe language of discrete maths: sets and their operations (union, intersection, difference, power set, Cartesian product), relations and their properties (reflexive, symmetric, transitive, equivalence), and functions (one-one, onto, bijective) — with Python checks and exam-style counting.
  2. 02Propositional and Predicate Logic — Truth Tables, Implications, Equivalences and QuantifiersLogic for programmers: propositions and connectives, truth tables generated with Python, the tricky implication, tautologies and contradictions, De Morgan's and other laws, converse and contrapositive, and predicates with ∀ and ∃ — plus negating them correctly.
  3. 03Proof Techniques — Direct Proof, Contradiction, Contrapositive, Mathematical Induction and the Pigeonhole PrincipleHow to prove things in discrete maths and why programmers care: direct proofs, proof by contrapositive and contradiction (√2 is irrational, infinitely many primes), mathematical induction step by step, strong induction, loop invariants, and the pigeonhole principle with real examples.
  4. 04Counting — Sum and Product Rules, Permutations, Combinations, Stars and Bars, Inclusion–Exclusion and DerangementsCount without listing: the sum and product rules, permutations and combinations (with and without repetition), arrangements with identical items, stars and bars, inclusion–exclusion and derangements — every formula checked by brute force in Python.
  5. 05Recurrence Relations — Setting Them Up, Solving Linear Recurrences, and the Master Theorem for AlgorithmsModel problems with recurrences (Fibonacci, Tower of Hanoi, tiling, binary strings), solve linear homogeneous recurrences with the characteristic equation, handle non-homogeneous ones, and analyse divide-and-conquer algorithms with the Master Theorem — all checked in Python.
  6. 06Graph Theory — Degrees, Handshaking Lemma, Paths, Euler and Hamiltonian Circuits, Trees, Bipartite and Planar Graphs, ColouringThe graph theory every CS student needs: types of graphs, degree and the handshaking lemma, paths and connectivity, Euler and Hamiltonian circuits, trees (n−1 edges), bipartite graphs, Euler's formula for planar graphs and graph colouring — with Python checks.
  7. 07Number Theory for Programmers — Divisibility, GCD and Euclid's Algorithm, Modular Arithmetic, Primes and a Tiny RSADivisibility and primes, the Euclidean and extended Euclidean algorithms, modular arithmetic rules, fast modular exponentiation, Fermat's little theorem, modular inverses, Euler's totient — and a complete toy RSA encryption built from them in Python.
  8. 08Posets, Lattices, Boolean Algebra and Groups — Hasse Diagrams, LUB/GLB and Algebraic StructuresPartial orders and Hasse diagrams, maximal and minimal elements, least upper and greatest lower bounds, lattices, Boolean algebra, and algebraic structures — semigroups, monoids, groups, abelian and cyclic groups — explained with examples and Python checks for exam questions.