Course pages 2014–15
Discrete Mathematics
Lectures 1-17: Proofs, numbers, and sets
- Notes and Workouts
- Supervision exercises
Michaelmas term
Xmas break
2014 Paper 2 Question 7 [solution notes]
2007 Paper 2 Question 3 [solution notes]
2006 Paper 2 Question 3 [solution notes]
2006 Paper 2 Question 4 [solution notes]
Lent term
Easter break
2014 Paper 2 Question 8 [solution notes]
2013 Paper 2 Question 5 [solution notes]
2011 Paper 2 Question 5 [solution notes]
2009 Paper 1 Question 4 [solution notes]
2008 Paper 2 Question 3 [solution notes]
2007 Paper 2 Question 5 [solution notes]
2006 Paper 2 Question 5 [solution notes] - Q&A forum
- Lecture slides and topics
Michaelmas term
Lecture 1 (Nov 7): proof; implication.
Lecture 2 (Nov 10): contrapositive; modus ponens; bi-implication; divisibility; congruence.
Lecture 3 (Nov 12): divisibility; congruence; universal quantification; equality; conjunction.
Lecture 4 (Nov 14): existential quantification; unique existence; disjunction.
Lecture 5 (Nov 17): disjunction; Fermat's Little Theorem; negation.
Lecture 6 (Nov 19): contrapositive; proof by contradiction; natural numbers.
Lecture 7 (Nov 21): natural numbers; monoids; commutativity; semirings; cancellation; inverses; integers; rationals; division theorem and algorithm.
Lecture 8 (Nov 24): the division theorem and algorithm; modular arithmetic.
Lecture 9 (Nov 26): sets; membership; comprehension; gcd; Euclid's Algorithm.
Lecture 10 (Nov 28): Euclid's Theorem; Extended Euclid's Algorithm; linear combinations; Diffie-Hellman cryptographic method: shared secret key, key exchange.
Lecture 11 (Dec 1): mathematical induction; Binomial Theorem; Fundamental Theorem of Arithmetic.
Lecture 12 (Dec 3): Euclid's infinitude of primes; sets; extensionality; subsets and supersets; separation principle; Russell's paradox; empty set; cardinality; powerset axiom; cardinality of powersets.
Lent term
Lecture 13 (Jan 16)
Lecture 14 (Jan 19)
Lecture 15 (Jan 21)
Lecture 16 (Jan 23)
Lecture 17 (Jan 26)
Lectures 18-24: Formal Languages and Automata
- Lecture notes [pdf].
- Slides [colour pdf]:
- Exercise sheet [pdf].
- Past exam questions This part of the course contains
material which until last year was lectured in courses called
Discrete Mathematics II and Regular Languages and Finite
Automata. Here is a list of recent relevant Tripos Questions:
- 2014 Paper 2 Question 9 – solution notes
- 2014 Paper 2 Question 10 – solution notes
- 2013 Paper 2 Question 6 – solution notes
- 2013 Paper 2 Question 8 – solution notes
- 2012 Paper 2 Question 6 – solution notes
- 2012 Paper 2 Question 8 – solution notes
- 2011 Paper 2 Question 8 – solution notes
- 2010 Paper 2 Question 5 – solution notes
- 2010 Paper 2 Question 9 – solution notes
- 2009 Paper 2 Question 5 – solution notes
- 2009 Paper 2 Question 9 – solution notes
- 2007 Paper 2 Question 6, part (a) – solution notes
- 2007 Paper 2 Question 8 – solution notes
- 2006 Paper 2 Question 6, part (b) – solution notes
- 2006 Paper 2 Question 8 – solution notes
- Further resources:
- Russ Cox's article Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, ...). (Summary: "Regular expression matching can be simple and fast, using finite automata-based techniques that have been known for decades. In contrast, Perl, PCRE, Python, Ruby, Java, and many other languages have regular expression implementations based on recursive backtracking that are simple but can be excruciatingly slow. With the exception of backreferences, the features provided by the slow backtracking implementations can be provided by the automata-based implementations at dramatically faster, more consistent speeds.")
- The script of a stage play about regular expressions (really).