Theoretical Computer Science

Subject COMP30021 (2011)

Note: This is an archived Handbook entry from 2011.

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

This subject is not offered in 2011.

Time Commitment: Contact Hours: 24 one-hour lectures (two per week) and 12 one-hour tutorials (one per week)
Total Time Commitment: 120 hours

The prerequisites are:

Study Period Commencement:
Credit Points:
Not offered in 2011
OR 433-253 Algorithms and Data Structures AND
Study Period Commencement:
Credit Points:
Not offered in 2011


Recommended Background Knowledge: None
Non Allowed Subjects: 433-330 Theory of Computation
Core Participation Requirements:

For the purposes of considering request for Reasonable Adjustments under the Disability Standards for Education (Cwth 2005), and Students Experiencing Academic Disadvantage Policy, academic requirements for this subject are articulated in the Subject Description, Subject Objectives, Generic Skills and Assessment Requirements of this entry.The University is dedicated to provide support to those with special requirements. Further details on the Disability support scheme can be found at the Disability Liaison Unit Website:


Associate Professor Tim Baldwin


Subject Overview: At the heart of theoretical computer science are questions of both philosophical and practical importance. What does it mean for a problem to be solvable by computer? What are the limits of computability? Which types of problems can be solved efficiently? What are our options in the face of intractability? This subject covers such questions in the context of a wide-ranging exploration of the nexus between logic, complexity and algorithms, and examines many important, sometimes surprising, results about the nature of computing. Topics covered include Turing machines; computability; the Church-Turing thesis; decidability; reducibility; complexity: the classes P and NP; NP-complete problems; space complexity; dynamic programming and network flow, including applications to matching problems and approximation algorithms. Additional topics may include descriptive complexity and optimization techniques for linear programming.

On completion of this subject students should be able to:

  • Describe the limitations of computing devices
  • Account for the inherent complexity of many computational problems of practical importance; and
  • Conduct formal reasoning about machines, problems and algorithms, including reduction-based proof

Written assignments during semester, expected to take about 36 hours (30%); and a 3-hour end-of-semester written examination (70%). To pass the subject, students must obtain at least 50% overall, 15/30 in project work, and 35/70 in the written examination.

Prescribed Texts: TBA
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 generic skills:

  • An ability to apply knowledge of basic science and engineering fundamentals
  • Capacity for creativity and innovation
  • An ability to undertake problem identification, formulation and solution
  • Capacity for lifelong learning and professional development
Related Course(s): Bachelor of Engineering (Mechatronics) and Bachelor of Computer Science
Bachelor of Engineering (Software Engineering)
Bachelor of Science
Related Majors/Minors/Specialisations: B-ENG Software Engineering stream
Computer Science
Master of Engineering (Software)
Science credit subjects* for pre-2008 BSc, BASc and combined degree science courses
Software Systems

Download PDF version.