Course syllabus

Course coordinator

Teaching Weeks 7-12.

Office hours:  1130-1230 Tue, 1330-1430 Fri in teaching weeks.

Contact me about all issues concerning the course, unless they relate to material covered by another lecturer or a tutor, in which case please contact them first. You can also contact me for general advice about how to approach the course.

Teaching staff


Teaching Weeks 1-6.

Office hours:  1130-1230 Mon,Tue in teaching weeks.

Teaching Weeks 7-12.

Office hours:  1130-1230 Tue, 1330-1430 Fri in teaching weeks.

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 

Songyan Teng sten187
Jingting Wei jwei182


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.

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. One of the authors is a CS professor at UoA who has often taught this and similar courses. It is has slightly more discussion of the applications of the mathematical material to computer science.


  • Mo 10:00AM - 11:00AM in 301-G050 (Science Chem, Room G050)
  • Tu   10:00AM - 11:00AM in 301-G050 (Science Chem, Room G050)
  • Th   10:00AM - 11:00AM in 301-G050 (Science Chem, Room G050)

Lecture attendance is strongly recommended. Lecture recordings will be 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 are 4 assignments, which should be handed in to the Student Resource Centre by 4pm on the due date. The assignments will be available one week before the due date. See Course summary below for due dates.

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