CM30226: Logic and semantics of programming languages
[Page last updated: 27 October 2020]
Academic Year:  2020/1 
Owning Department/School:  Department of Computer Science 
Credits:  6 [equivalent to 12 CATS credits] 
Notional Study Hours:  120 
Level:  Honours (FHEQ level 6) 
Period: 

Assessment Summary:  CW 25%, EX 75% 
Assessment Detail: 

Supplementary Assessment: 

Requisites:  Before taking this module you must take CM10196 OR take MA10209 
Description:  Aims: To develop a detailed understanding of a body of mathematical theory that is used in the formal conceptual analysis of programming languages. Learning Outcomes: By the end of the unit, successful students will be able to: 1. give the central definitions and theorems of one of the mathematical theories underlying the formal study of programming languages; 2. use a mathematical theory to give a formal description of computational phenomena; 3. evaluate a new mathematical theory that is proposed as providing formal support for computation. Skills: Problem Solving, Communication, Application of Number. Content: * Syntactic models of computation (e.g. the simplytyped lambdacalculus, an abstract imperative programming language) * Semantic models of computation (e.g. cartesian closed categories, domains, denotational and operational models) * The use of logic as applied to computation (e.g. the CurryHoward isomorphism, program logics). 
Programme availability: 
CM30226 is Optional on the following programmes:Department of Computer Science

Notes:
