Academic Year:  2018/9 
Owning Department/School:  Department of Computer Science 
Credits:  6 [equivalent to 12 CATS credits] 
Notional Study Hours:  120 
Level:  Intermediate (FHEQ level 5) 
Period: 
 Semester 1

Assessment Summary:  CW 25%, EX 75% 
Assessment Detail: 
 Coursework (CW 25%)
 Exam (EX 75%)

Supplementary Assessment: 
 Likeforlike reassessment (where allowed by programme regulations)

Requisites: 
Before taking this module you must ( take CM10196 OR take MA10209 ) AND ( take CM10227 OR take XX10190 )

Description:
 Aims: To introduce formal models of computation: finite automata, pushdown automata, Turing machines, and the corresponding classes of formal languages: regular, contextfree, semidecidable. To teach students to design algorithms for concrete computational problems within these models of computation. To introduce the dichotomy between deterministic and nondeterministic computation.
To give students an appreciation of limits of computation, including methods of proving undecidability and specific examples of undecidable problems. To introduce the concept of computational complexity and complexity classes.
Learning Outcomes: On completion of this unit, students will be able to:
1. demonstrate an understanding of the fundamental models of computation and the corresponding classes of formal grammars and languages;
2. design algorithms for specific computational problems as automata of appropriate types;
3. prove mathematically that some computational problems are undecidable within a particular class of computational models;
4. be able to give upper bounds on complexities of some decidable computational problems.
Skills: Use of IT (A), Application of Number (T/F, A), Problem Solving (T/F, A).
Content: 1. Deterministic and nondeterministic finite automata.
2. Regular languages. Existence of nonregular languages.
3. Pushdown automata and contextfree grammars and languages. Parsing in contextfree languages.
4. Existence of noncontextfree languages via Pumping Lemma.
5. Turing machines and ChurchTuring Thesis.
6. Universal Turing machine and undecidability of the halting problem.
7. Nondeterministic Turing machines, complexity classes P and NP.
 Before taking this module you must ( take CM10227 AND take CM10228 AND take CM10196 ) OR ( take MA10209 AND take XX10190 )

Programme availability: 
CM20217 is Compulsory on the following programmes:
Department of Computer Science
 USCMAFB06 : BSc(Hons) Computer Science (Year 2)
 USCMAAB07 : BSc(Hons) Computer Science with Study year abroad (Year 2)
 USCMAKB07 : BSc(Hons) Computer Science with Year long work placement (Year 2)
 USCMAFB20 : BSc(Hons) Computer Science and Mathematics (Year 2)
 USCMAAB20 : BSc(Hons) Computer Science and Mathematics with Study year abroad (Year 2)
 USCMAKB20 : BSc(Hons) Computer Science and Mathematics with Year long work placement (Year 2)
 USCMAFM01 : MComp(Hons) Computer Science (Year 2)
 USCMAAM02 : MComp(Hons) Computer Science with Study year abroad (Year 2)
 USCMAKM02 : MComp(Hons) Computer Science with Year long work placement (Year 2)
 USCMAFM14 : MComp(Hons) Computer Science and Mathematics (Year 2)
 USCMAAM14 : MComp(Hons) Computer Science and Mathematics with Study year abroad (Year 2)
 USCMAKM14 : MComp(Hons) Computer Science and Mathematics with Year long work placement (Year 2)
CM20217 is Optional on the following programmes:
Department of Computer Science
 USCMAFB09 : BSc(Hons) Computer Science with Business (Year 3)
 USCMAAB10 : BSc(Hons) Computer Science with Business with Study year abroad (Year 4)
 USCMAKB10 : BSc(Hons) Computer Science with Business with Year long work placement (Year 4)
Department of Mathematical Sciences
 USMAAFB15 : BSc(Hons) Mathematical Sciences (Year 2)
 USMAAAB16 : BSc(Hons) Mathematical Sciences with Study year abroad (Year 2)
 USMAAAB16 : BSc(Hons) Mathematical Sciences with Study year abroad (Year 4)
 USMAAKB16 : BSc(Hons) Mathematical Sciences with Year long work placement (Year 2)
 USMAAKB16 : BSc(Hons) Mathematical Sciences with Year long work placement (Year 4)
 USMAAFB13 : BSc(Hons) Mathematics (Year 2)
 USMAAAB14 : BSc(Hons) Mathematics with Study year abroad (Year 2)
 USMAAAB14 : BSc(Hons) Mathematics with Study year abroad (Year 4)
 USMAAKB14 : BSc(Hons) Mathematics with Year long work placement (Year 2)
 USMAAKB14 : BSc(Hons) Mathematics with Year long work placement (Year 4)
 USMAAAB02 : BSc(Hons) Mathematics and Statistics with Study year abroad (Year 4)
 USMAAKB02 : BSc(Hons) Mathematics and Statistics with Year long work placement (Year 4)
 USMAAFB05 : BSc(Hons) Statistics (Year 2)
 USMAAAB06 : BSc(Hons) Statistics with Study year abroad (Year 2)
 USMAAAB06 : BSc(Hons) Statistics with Study year abroad (Year 4)
 USMAAKB06 : BSc(Hons) Statistics with Year long work placement (Year 2)
 USMAAKB06 : BSc(Hons) Statistics with Year long work placement (Year 4)
 USMAAFM14 : MMath(Hons) Mathematics (Year 2)
 USMAAAM15 : MMath(Hons) Mathematics with Study year abroad (Year 2)
 USMAAKM15 : MMath(Hons) Mathematics with Year long work placement (Year 2)
 USMAAKM15 : MMath(Hons) Mathematics with Year long work placement (Year 4)
