Total Credits: 10
Level: Level 4
Target Students: MSc and Part III undergraduate students in the School of Computer Science. Also available to Part II undergraduate students in the School of Computer Science subject to Part I performance. Also available to students from other Schools with the agreement of the module convenor. Available to JYA/Erasmus students.
Taught Semesters:
| Semester | Assessment |
|---|---|
| Spring | Assessed by end of Spring Semester |
Prerequisites: Or equivalent knowledge in computer science and mathematics, for example G54FOP or G52MC2 up to 2009/10
| Mnem | Title |
|---|---|
| G51FUN | Functional Programming |
| G52IFR | Introduction to Formal Reasoning |
Corequisites: None.
Summary of Content:
This module is part of the Foundations of Computer Science theme in the School of Computer Science.
This module introduces the student to dependently typed programming as a synthesis of programming and formal reasoning using an existing dependently typed programming language (such as Agda) as a vehicle. Topics covered include the following
Method and Frequency of Class:
| Activity | Number Of Weeks | Number of sessions | Duration of a session |
|---|---|---|---|
| Lecture | 12 weeks | 2 per week | 1 hour |
| Practical | 12 weeks | 1 per week | 1 hour |
Method of Assessment:
| Assessment Type | Weight | Requirements |
|---|---|---|
| Exam 1 | 50 | 2 hour exam |
| Coursework 1 | 50 | Four exercises in programming and formal proofs |
Convenor:
Dr V Capretta
Education Aims:
Learning Outcomes: Knowledge and Understanding: To learn the rules of formal reasoning. To understand the role of certified software. To understand the possibilities and limitations of dependently typed programming Intellectual Skills: To learn to use a proof assistant to verify software. To be able to develop formal specifications. Professional Skills: To be able to develop certified software. To be able to evaluate tools for dependently typed programming. To gain experience with engineering of proofs. To be able to apply dependently typed programming in a software engineering context. Transferable Skills: To develop reasoning skills. To learn how to utilize mathematical methods.
Offering School: Computer Science
Use the Back facility of your browser to return to the previous page.
Return to The University of Nottingham Welcome Page