Overview

This unit introduces formal languages, models of computation, and computational complexity. It looks at what computers can and cannot compute. Topics include finite state automata, regular expressions, grammars, pushdown automata, computable functions, Turing machines, polynomial-time reductions, complexity classes P and NP, and NP-completeness. Skills at writing formal proofs will be … For more content click the Read More button below.

Offerings

S2-01-CLAYTON-ON-CAMPUS
S2-01-MALAYSIA-ON-CAMPUS

Rules

Enrolment Rule

Contacts

Chief Examiner(s)

Professor Graham Farr

Unit Coordinator(s)

Associate Professor Wong Kok Sheik

Notes

IMPORTANT NOTICE:
Scheduled teaching activities and/or workload information are subject to change in response to COVID-19, please check your Unit timetable and Unit Moodle site for more details.

Students who have not done one of the programming units specified are encouraged to consult the Chief Examiner regarding possible approval to enrol in this unit.

Learning outcomes

On successful completion of this unit, you should be able to:
1.

Use propositional logic, predicates and quantifiers to represent and analyse problems in the theory of computation;

2.

Construct Finite Automata, Nondeterministic Finite Automata and Context-Free Grammars to describe languages;

3.

Convert Regular Expressions into Finite Automata and vice versa;

4.

Find a Regular Grammar for a Regular Language;

5.

Find a parse tree, leftmost derivation and rightmost derivation for a word in a Context Free Language;

6.

Use Turing Machines to describe languages and represent computable functions;

7.

Demonstrate the limitations of the models of computation considered;

8.

Show a language is not regular, or not context-free, or not decidable;

9.

Show that a language is in P, or in NP, or NP-complete;

10.

 

Write rigorous formal proofs, including proofs by construction, cases, contradiction and induction.

 

 

Teaching approach

Active learning

Assessment

1 - In-semester assessment
2 - Examination (3 hours and 10 minutes)

Scheduled and non-scheduled teaching activities

Lectures
Tutorials

Workload requirements

Workload

Learning resources

Technology resources

Availability in areas of study

Computer science
Computational science