Theoretical Computer Science

Subject COMP30021 (2010)

Note: This is an archived Handbook entry from 2010.

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

This subject has the following teaching availabilities in 2010:

Semester 2, Parkville - Taught on campus.
Pre-teaching Period Start not applicable
Teaching Period not applicable
Assessment Period End not applicable
Last date to Self-Enrol not applicable
Census Date not applicable
Last date to Withdraw without fail not applicable

Timetable can be viewed here. For information about these dates, click here.
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:

433-298 Algorithms and Data Structures OR 433-253 Algorithms and Data Structures and also 433 295 Discrete Structures or 433 255 Logic and Computation.



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:


Assoc Prof Harald Sondergaard


Melbourne School of Engineering Office
Building 173, Grattan Street
The University of Melbourne
VIC 3010 Australia
General telephone enquiries
+ 61 3 8344 6703
+ 61 3 8344 6507
+ 61 3 9349 2182
+ 61 3 8344 7707
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 (Software Engineering)
Bachelor of Science
Related Majors/Minors/Specialisations: Computer Science
Computer Science
Master of Engineering (Software)
Software Systems

Download PDF version.