Department of Computer Science, Unit Catalogue 2009/10 |
CM20218: Foundations of computation 2 |
![]() | 6 |
![]() | Intermediate |
![]() | Semester 2 |
![]() | CW 25%, EX 75% |
![]() | CM20218A Mandatory Extra Work (where allowed by programme regulations) |
![]() | Before taking this unit you must take CM10227 and take CM10228 or (take CM10196 or take MA10001) and take CM20217 |
Description: | Aims: To introduce the basic notions of formal semantics of programming languages as a tool for understanding and analyzing programming. Learning Outcomes: On completion of this unit, students will be able to: 1. Use formal semantic techniques to make the meaning of simple programming constructs precise. 2. Analyze simple programs and programming features using formal semantic techniques. 3. Define and explain the syntax and semantics of the lambda-calculus, and its role as a model of computation and as an idealized programming language. Skills: Use of IT (A), Application of Number (T/F, A), Problem Solving (T/F, A). Content: * Simple, idealized programming languages, including at least a small imperative language and the lambda-calculus. * Formal semantics of these languages, in operational or denotational style, or a combination. * The use of formal semantics for defining programming constructs and reasoning about properties of programs such as correctness and equivalence. |