[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, 2015

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).

See also Unit timetable information

Unit Relationships




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

Chief Examiner

Campus Lecturer


Graham Farr


Anuja Dharmaratne



Nathan Companez

Michael Gill

Nhan Bao Ho

Roger Lim

Chris Monteith

Rebecca Robinson (Head Tutor)

Nicholas Smith

Srinibas Swain

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, some revisions are being made to the way proofs are taught and the exercises on proofs included in assignments.  Some further adjustments will be made to the treatment of Prolog.

Experience with the unit in 2014 indicated that the following changes, made for that offering of the unit, worked well:

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, Introduction to Prolog, Introduction to Proofs 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.
    This assessment related to Learning Outcomes 1-8.


  • 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:
    This assessment related to Learning Outcomes 1-11.

Learning resources

Reading list

M. Sipser, Introduction to the Theory of Computation, Thomson, 2nd edn (2006) or later.

For Prolog:

Clocksin & Mellish, Programming in Prolog, any edition, Springer.  Digitised Chapter 1 is available through the library's reading list for the unit.

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

May also be useful:

Sterling & Shapiro, The Art of Prolog, 2nd edn.

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)

Feedback to you

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

Resubmission of assignments

Resubmission of assignments is not allowed.

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 electronic submission). 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.

Technological Requirements

Students must regularly check Moodle for announcements.

Prolog assignments (in the weeks of Labs 1, 2, 3) must be done in SWI-Prolog under Linux.

The last assignment (associated with Lab 4) will involve the free Turing machine simulator, Tuatara, and may also involve a short Prolog exercise.

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

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]