Counting techniques are introduced and applied to the design and analysis of algorithms. The concepts of proof and logical reasoning, and the tools of Boolean algebra and graph theory are presented and applied to the design and analysis of algorithms. Advanced counting techniques assist in developing an understanding of algorithmic complexity. Particular applications to cryptography are given.Assessment -- Course Website
Instructor: J Cameron
Prerequisites: Nil