Discrete Structures

Subject COMP20004 (2014)

Note: This is an archived Handbook entry from 2014.

Credit Points: 12.50
Level: 2 (Undergraduate)
Dates & Locations:

This subject is not offered in 2014.

Time Commitment: Contact Hours: 48 hours, comprising of two 1-hour lectures and one 2-hour workshop per week
Total Time Commitment:

170 hours


One first year mathematics subject (12.5 points)


Admission to the MC-ENG Master of Engineering (Software)



Recommended Background Knowledge:


Non Allowed Subjects:

Students cannot enrol in and gain credit for this subject and:

433-255 Logic and Computation

Core Participation Requirements:

For the purposes of considering request for Reasonable Adjustments under the Disability Standards for Education (Cwth 2005), and Student Support and Engagement Policy, academic requirements for this subject are articulated in the Subject Overview, Learning Outcomes, Assessment and Generic Skills sections of this entry.

It is University policy to take all reasonable steps to minimise the impact of disability upon academic study, and reasonable adjustments will be made to enhance a student's participation in the University's programs. Students who feel their disability may impact on meeting the requirements of this subject are encouraged to discuss this matter with a Faculty Student Adviser and Student Equity and Disability Support: http://services.unimelb.edu.au/disability


email: harald@unimelb.edu.au

Subject Overview:


Formal logic and discrete mathematics provide the theoretical foundations for computer science. This subject is an introduction to the science of computing. It provides a grounding in the theories of logic, sets, relations, functions, automata and formal languages, providing concepts that underpin virtually all the practical tools contributed by the discipline, for automated storage, retrieval, manipulation and communication of data.


  • Logic: Propositional and predicate logic, resolution proofs, mathematical proof
  • Discrete mathematics: Sets, functions, relations, order, well-foundedness, induction and recursion
  • Automata: Regular languages, finite-state automata, context-free grammars and languages, parsing
  • Additional non-examinable lectures give a taste of computability and complexity theory

Learning Outcomes:


On completion of this subject the student is expected to:

  1. Use propositional and predicate logic as reasoning tools
  2. Explain basic principles of mechanised reasoning, including resolution proof
  3. Reason about properties of mathematical objects such as functions and relations
  4. Apply discrete mathematical techniques to problems in computer science
  5. Design and reason about simple finite-state automata
  6. Design and reason about regular expressions and context-free grammars

  • An individual 800-word homework set due around Week 6 (12%). Addresses Intended Learning Outcomes (ILOs) 1 and 2.
  • A 45-minute mid-semester written test around Week 7 (12%). Addresses ILOs 1, 2 and 3
  • An individual 800-word homework set due around Week 11 (12%). Addresses ILOs 3, 4, 5, and 6
  • A 2-hour end-of-semester written examination (64%). Addresses all ILOs.

Hurdle requirement: To pass the subject, students must obtain at least 50% overall and 32/64 in the written examination.

Prescribed Texts: None
Recommended Texts:

Markinson, D. 2008 sets, Logic and Maths for Computing. Springer.

Doets, K. and van Eijck, J. 2004 The Haskell Road to Logic, Maths and Programming. King's College Publ.

Sipser, M. 2006 Introduction to the Theory of Computation. Thomson Course Technology, second edition

Breadth Options:

This subject potentially can be taken as a breadth subject component for the following courses:

You should visit learn more about breadth subjects and read the breadth requirements for your degree, and should discuss your choice with your student adviser, before deciding on your subjects.

Fees Information: Subject EFTSL, Level, Discipline & Census Date
Generic Skills:

On completion of this subject students should have developed the following skills:

  • Analytical skills
  • Reasoning and problem-solving skills
  • Ability to communicate with precision, rigour and efficacy
  • Ability to apply knowledge of science and engineering fundamentals
  • Capacity for creativity and innovation
  • Ability to undertake problem identification, formulation and solution


The subject involves two 1-hour lectures per week followed by a 2-hour tutorial. Weekly tutorial problems are assigned and discussed in class. Tutors use some tutorial time to demonstrate applications of the theory, such as SAT-solver use, logic programming, and parsing. Lectures and tutorials are designed to be highly interactive, and the written assignments are designed to be challenging, so as to generate discussion. Although written assignments are submitted by students individually, in-plenum discussion of the problems is allowed, and encouraged.


The subject uses online reading materials and offers access to visualisation tools (the JFLAP suite), an online discussion forum, and advance access to all teaching materials, including slides used in lectures.


The subject is foundational. While the practice of computing changes fast, the theoretical underpinnings, and many of the basic concepts underlying computation, change only slowly. A foundation in logic and mathematics provides important conceptual tools that are used by theoreticians, computer scientists, and software engineering practitioners alike.

Related Course(s): Master of Information Technology
Master of Information Technology
Related Majors/Minors/Specialisations: B-ENG Software Engineering stream
Computer Science
Master of Engineering (Software with Business)
Master of Engineering (Software)
Science credit subjects* for pre-2008 BSc, BASc and combined degree science courses
Science-credited subjects - new generation B-SCI and B-ENG.
Selective subjects for B-BMED

Download PDF version.