[an error occurred while processing this directive] [an error occurred while processing this directive]
[an error occurred while processing this directive]
[an error occurred while processing this directive]
Monash University

FIT2014 Theory of computation - Semester 2, 2014

This unit gives an introduction to formal languages, basic logic programming, models of computation, and computational complexity. It looks at what computers can and cannot compute. Topics include finite state automata, regular expressions, grammars, computable functions, Turing machines, polynomial-time reductions, and NP-completeness.

Mode of Delivery

  • Clayton (Day)
  • Malaysia (Day)

Workload Requirements

Minimum total expected workload equals 12 hours per week comprising:

(a.) Contact hours for on-campus students:

  • Two 1-hour lectures
  • Either one 2-hour tutorial or one 2-hour laboratory (usually alternating weeks)

(b.) Additional requirements (all students):

  • A minimum of 8 hours of independent study per week for reading, working on exercises and assignment(s).

Unit Relationships




FIT1029 and 6 points of level 1 (or above) mathematics

Chief Examiner

Campus Lecturer


Graham Farr


Anuja Dharmaratne



Rosalito Cruz

Roger Lim

Chris Monteith

Duy Han Phan

Rebecca Robinson

Your feedback to Us

Monash is committed to excellence in education and regularly seeks feedback from students, employers and staff. One of the key formal ways students have to provide feedback is through the Student Evaluation of Teaching and Units (SETU) survey. The University’s student evaluation policy requires that every unit is evaluated each year. Students are strongly encouraged to complete the surveys. The feedback is anonymous and provides the Faculty with evidence of aspects that students are satisfied and areas for improvement.

For more information on Monash’s educational strategy, see:

www.monash.edu.au/about/monash-directions/ and on student evaluations, see: www.policy.monash.edu/policy-bank/academic/education/quality/student-evaluation-policy.html

Previous Student Evaluations of this Unit

In response to student feedback, there is no longer an assignment in the last week of semester, and the number of assignments has been reduced from five to four.  All assignments will now be due at the end of their week, rather than the end of the student's laboratory session, which will allow laboratory sessions to focus on seeking help and exploring Prolog.  There will be more tuition on Prolog early in the unit.

If you wish to view how previous students rated this unit, please go to

Academic Overview

Learning Outcomes

At the completion of this unit, students should be able to:
  • use propositional logic, predicates and quantifiers to represent and analyse problems in the theory of computation;
  • construct Finite Automata, Nondeterministic Finite Automata, Context-Free Grammars, and Turing Machines to describe languages;
  • convert Regular Expressions into Finite Automata;
  • convert Finite Automata into Regular Expressions;
  • find a Regular Grammar for a Regular Language;
  • find a parse tree, leftmost derivation and rightmost derivation for a word in a Context Free Language;
  • know how to show a Context Free Grammar is ambiguous;
  • use Turing Machines to represent computable functions;
  • demonstrate the limitations of the models of computation considered;
  • show a language is not regular, or not context-free, or not recursive;
  • show a problem is NP-complete.

Unit Schedule

Week Activities Assessment
0 Register for Tutorials and Laboratory classes in Allocate+ No formal assessment or activities are undertaken in week 0
1 Introduction and Propositional Logic  
2 Predicate Logic and Introduction to Prolog Laboratory 0 (no direct assessment)
3 Regular Expressions and Finite Automata Tute 1 (no direct assessment)
4 Kleene's Theorem and Lexical Analysis Laboratory 1 (no direct assessment); Assignment 1: Finite Automata
5 Pumping Lemma and Context Free Grammars Tute 2 (no direct assessment)
6 Pushdown Automata and Parsing Laboratory 2 (no direct assessment); Assignment 2: Lexical Analysis
7 Chomsky Normal Form and Turing Machines Tute 3 (no direct assessment)
8 Computability and Universal Turing Machines Laboratory 3 (no direct assessment); Assignment 3: Parsing
9 Decidability and Non-Computability Tute 4 (no direct assessment)
10 Undecidability, and Class P and Class NP Laboratory 4 (no direct assessment); Assignment 4: Computability
11 Polynomial Reducibility and NP-completeness Tute 5 (no direct assessment)
12 Implications and Revision Tute 6 (no direct assessment)
  SWOT VAC No formal assessment is undertaken in SWOT VAC
  Examination period LINK to Assessment Policy: http://policy.monash.edu.au/policy-bank/

*Unit Schedule details will be maintained and communicated to you via your learning system.

Teaching Approach

Lecture and tutorials or problem classes
This teaching and learning approach provides facilitated learning, practical exploration and peer learning.

Assessment Summary

Examination (3 hours): 70%; In-semester assessment: 30%

Assessment Task Value Due Date
Assignments Total of 30% (4 pracs x 7.5%)
  • Week 4 - Assignment 1: Finite Automata.
  • Week 6 - Assignment 2: Lexical Analysis.
  • Week 8 - Assignment 3: Parsing.
  • Week 10 - Assignment 4: Computability.
Examination 1 70% To be advised

Assessment Requirements

Assessment Policy

Assessment Tasks

Hurdle Requirements

Students must submit/present all of the assignments.


Students are expected to attend tutorials and labs.

  • Assessment task 1
    On four occasions you will need to complete a prac assignment. Prac assignments are long and are designed to take a significant part of your "home study hours". This means that you must have a significant proportion of the prac completed before attending the scheduled computer lab. The aim of the computer lab is to enable you to seek help and resolve any questions about the assignment you have not been able to solve on your own and improve the parts that your demonstrator points out as lacking (including comments, algorithms, etc). If you do nothing before the scheduled lab, you are likely to struggle to complete the prac by the deadline at the end of that week.  The assignment sheets will be made available in the unit's web page.

    Unless explicitly specified otherwise by both your lecturer and your prac demonstrator, your assignment work is to be done from your Monash student account.  You may be required to demonstrate your work on one of the Monash computers.

    Most of the labs will use the programming language, Prolog, which will be new to many students. Students should familiarise themselves with Prolog as early in semester as possible.
    Total of 30% (4 pracs x 7.5%)
    Criteria for assessment:

    Every assignment sheet contains a guide to the assessment criteria used to assess that assignment.

    In general the criteria are based on:

    • How well programs meet specifications.
    • How well they are written.
    • Demonstrated understanding of the program and its behaviour.
    • Correctness, accuracy, completeness, originality and clarity of written solutions.
    Due date:
    • Week 4 - Assignment 1: Finite Automata.
    • Week 6 - Assignment 2: Lexical Analysis.
    • Week 8 - Assignment 3: Parsing.
    • Week 10 - Assignment 4: Computability.


  • Examination 1
    3 hours
    Type (open/closed book):
    Closed book
    Hurdle requirements:
    The Faculty hurdle requirements apply for the final exam.
    Electronic devices allowed in the exam:

Learning resources

Reading list

Further reading:

Clocksin & Mellish, Programming in Prolog, any edition, Springer.

Also recommended for Prolog is the WWW resource: www.LearnPrologNow.org

For parts of the course other than Prolog, also useful can be:

Daniel I. A. COHEN (1997), "Introduction to computer theory", 2nd Edition, Wiley, New York, ISBN-10: 0471137723.

Monash Library Unit Reading List (if applicable to the unit)

Faculty of Information Technology Style Guide

Feedback to you

Examination/other end-of-semester assessment feedback may take the form of feedback classes, provision of sample answers or other group feedback after official results have been published. Please check with your lecturer on the feedback provided and take advantage of this prior to requesting individual consultations with staff. If your unit has an examination, you may request to view your examination script booklet, see http://intranet.monash.edu.au/infotech/resources/students/procedures/request-to-view-exam-scripts.html

Types of feedback you can expect to receive in this unit are:

  • Informal feedback on progress in labs/tutes
  • Graded assignments without comments
  • Solutions to tutes, labs and assignments

Extensions and penalties

Returning assignments

Referencing requirements

When referencing, students familiar with LaTeX are encouraged to use LaTeX and BibTeX .

See also the Library Guides for Citing and Referencing at http://guides.lib.monash.edu/content.php?pid=88267&sid=656564

Assignment submission

It is a University requirement (http://www.policy.monash.edu/policy-bank/academic/education/conduct/student-academic-integrity-managing-plagiarism-collusion-procedures.html) for students to submit an assignment coversheet for each assessment item. Faculty Assignment coversheets can be found at http://www.infotech.monash.edu.au/resources/student/forms/. Please check with your Lecturer on the submission method for your assignment coversheet (e.g. attach a file to the online assignment submission, hand-in a hard copy, or use an online quiz). Please note that it is your responsibility to retain copies of your assessments.

Online submission

If Electronic Submission has been approved for your unit, please submit your work via the learning system for this unit, which you can access via links in the my.monash portal.

Recommended text(s)

M. Sipser. (2012). Introduction to the Theory of Computation. (3rd Edition) (ISBN: 9781133187790).

L. Sterling and E. Shapiro. (). Art of Prolog: Advanced Programming Techniques. (2nd Edition) (ISBN: 9780262691635).

W. Clocksin and C. S. Mellish. (). Programming in Prolog.. () Springer.

Other Information


Monash has educational policies, procedures and guidelines, which are designed to ensure that staff and students are aware of the University’s academic standards, and to provide advice on how they might uphold them. You can find Monash’s Education Policies at: www.policy.monash.edu.au/policy-bank/academic/education/index.html

Key educational policies include:

Faculty resources and policies

Important student resources including Faculty policies are located at http://intranet.monash.edu.au/infotech/resources/students/

Graduate Attributes Policy

Student Charter

Student services

Monash University Library

Disability Liaison Unit

Students who have a disability or medical condition are welcome to contact the Disability Liaison Unit to discuss academic support services. Disability Liaison Officers (DLOs) visit all Victorian campuses on a regular basis.

[an error occurred while processing this directive]