Faculty of Information Technology
Refer to the specific census and withdrawal dates for the semester(s) in which this unit is offered.
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.
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 developed.
At the completion of this unit, students should be able to:
Examination (3 hours): 70%; In-semester assessment: 30%
Minimum total expected workload equals 12 hours per week comprising:
(a.) Contact hours for on-campus students:
(b.) Additional requirements (all students):
See also Unit timetable information
One of FIT1045, FIT1048, FIT1051, ENG1003 or an equivalent introductory programming unit or (FIT1040 and FIT1029), and one of MAT1830 or MTH1030 or equivalent.
Students are expected to have basic competence in computer programming.