Course syllabus

Course coordinator

Mark C. Wilson

Office hour: by email appointment. Office is remote, 810-841, so meetings around lectures are preferred.

Contact me for all issues concerning the course, unless they relate to material covered by another lecturer or a tutor, in which case contact them first. For example:  what to do in case of serious illness or family emergency, complaints about serious misconduct by students or staff. You can also contact me for general advice about how to approach the course.

Teaching staff


Teaching Weeks 1-6. Meetings before/after lectures and by email appointment.

Teaching Weeks 7-12.

 Office hours: Tue 1130-1230, Fri 1030-1130, or by appointment.

Please contact the relevant lecturer if you have questions about lectures or assignments in their part of the course.


The tutors will run tutorials, coordinate assignment marking, and monitor Piazza.

Class representatives


This is a challenging course that aims at studying discrete structures relevant to  mathematics and computer science. Topics are chosen from the basics of arithmetic, graphs, trees, some important algorithms (e.g. Euclidean algorithm), induction, finite automata, logic, counting and probability, and codes.  The course also introduces proof methods, such as direct proof, and  proof by contradiction, and has a strong proof flavour. We want to understand why algorithms work, not just learn how to execute them.

List of topics

  • Logic and proof techniques.
  • Integers and divisibility.
  • Induction and recursion.
  • Graphs.
  • Trees.
  • Sets, relations, functions. 
  • Enumeration.
  • Deterministic finite automata.
  • Codes.


A locally made course book will be available for cost of printing from the Student Resource Centre, and students are strongly recommended to buy it and bring to lectures. A free PDF version is available for download. The course will follow this course book closely, but small variations in lecture schedule and topics may occur for good reasons. The course book has been well checked but may contain small errors - the first person to report an error will receive extra course marks or a similar reward.

For supplementary reading, we recommend the following.

  • Notes by Padraic Bartlett from when he taught the course in 2018. He says "Think of them as a slightly “remixed” version of the coursebook; in these notes, you’ll find the same concepts as in the coursebook, but with new examples and a bit more detail in the proofs." They are very good.
  • Discrete Mathematics (5th Edition) by Kenneth A. Ross and Charles R. Wright (in UoA library; earlier editions are fine). This is very clearly written and well tested over many years.
  • Lectures on discrete mathematics for computer science by B. Khoussainov and N. Khoussainova. This is written by a CS professor at UoA. It is clear and has slightly more discussion of the applications of the mathematical material to computer science.


  • Mo 8:00AM - 9:00AM in 301-G050 (Science Chem, Room G050)
  • Tu 8:00AM - 9:00AM in 109-B28 (General Library, Room B28)
  • Th 8:00AM - 9:00AM in 301-G050 (Science Chem, Room G050)

Lecture attendance is strongly recommended. Lecture recordings will be made available, but their quality is not high and they may omit important information.


These are strongly recommended. You have signed up for a tutorial stream when you enrolled in the course. 


55% final exam; 30% written assignments; 15% midterm test. There is no computer programming needed in this course. There will be 4 assignments, which should be handed in to the Student Resource Centre by 4pm on the due date. There will be no time extensions given for assignments. If you have a genuine excuse for not submitting on time, we will re-weight your other assignments.

Working together

We have set up Piazza for this course. Many students find it useful. The main purpose of Piazza is for you to interact with other students in the course. The tutor will monitor Piazza and help if necessary. Of course, do not post any solutions! 

Go here to sign up:

Information regarding university policies and technical support

Course summary:

Date Details