Recall that the core exams assess you on the *core learning
outcomes* of the course, the fundamental skills that you should be
able to confidentially perform quickly and efficiently.

# Weeks 1–4

- Author a formal proof of a property of a pure program.
- Author a formal proof by structural induction.
- Author a formal proof by mathematical induction.
- Read a formal and proof and identify latent assumptions.
- Author a formal proof of a property of impure program.

# Weeks 5–9

- Author a rigorous proof of the equality of two sets.
- Author a rigorous proof utilizing classical reasoning (“proof by contradiction”).
- Model real-world phenomena using the fundamental definitions of relations.
- Model real-world phenomena using the formal definitions of graphs and trees.
- Author rigorous proofs of properties of graphs and their associated algorithms.

# Week 10–13

- Count the number of elements in an algebraic structure using combinatorial principles.
- Accurately count the number of relevant operations that a (recursive) program performs.
- Interpret a combinatorial formula as an algorithm for constructing an object when choice is involved.
- Compute the probability of an event using fundamental combinatorial principles.
- Apply random variables and expectation to model a probabilistic phenomena.