Undergraduate Course: Functional Programming and Specification (Level 10) (INFR10043)
Course Outline
School |
School of Informatics |
College |
College of Science and Engineering |
Course type |
Standard |
Availability |
Available to all students |
Credit level (Normal year taken) |
SCQF Level 10 (Year 4 Undergraduate) |
Credits |
10 |
Home subject area |
Informatics |
Other subject area |
None |
Course website |
http://www.inf.ed.ac.uk/teaching/courses/fps |
|
|
Course description |
The course has two aims. The first is to provide an introduction to programming in Standard ML including the use of the facilities it offers for structuring programs into modules. Part of this is a review of material from the Functional Programming component of Inf1A, using Standard ML rather than Haskell, but more advanced material is also included. The second aim is to provide an introduction to formal methods for specification and development of programs, using the Extended ML specification framework as a vehicle. Simple proofs of properties of functions are interwoven with the first part of the course to link it with the second part. |
Entry Requirements
Pre-requisites |
Students MUST have passed:
Informatics 2A - Processing Formal and Natural Languages (INFR08008) AND (
Informatics 2B - Algorithms, Data Structures, Learning (INFR08009)
|
Co-requisites |
|
Prohibited Combinations |
|
Other requirements |
Successful completion of Year 3 of an Informatics Single or Combined Degree, or equivalent by permission of the School. Students must have a good background in some programming language together with a familiarity with basic notation from logic (logical connectives, quantifiers, etc.) and proofs using equational reasoning and induction.
MSc students should take this version of the course.
|
Additional Costs |
None |
Course Delivery Information
|
Delivery period: 2010/11 Semester 2, Available to all students (SV1)
|
WebCT enabled: No |
Quota: None |
Location |
Activity |
Description |
Weeks |
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
Central | Lecture | | 1-11 | | | | | 11:10 - 12:00 | Central | Lecture | | 1-11 | | 11:10 - 12:00 | | | |
First Class |
Week 1, Tuesday, 11:10 - 12:00, Zone: Central. Room 4.18, David Hume Tower |
Summary of Intended Learning Outcomes
1 - Students will be able to design a representation of an informally-described data structure in ML as a datatype, and translate an informal description of an algorithm into an ML function, making appropriate use of higher-order functions and other characteristic features of the functional programming paradigm. [Written Examination]
2 - Students will be able to make effective use of the module facilities in ML to organize programs of about 1000 lines into appropriate units. [Coursework]
3 - Students will be able to use the notation of EML to formulate properties of first-order total ML functions, and to prove such properties using induction and methods of equational reasoning. [Written Examination]
4 - Given some non-functional requirements for a system, students will be able to choose appropriate implementations to meet those characteristics based on their knowledge of implementation techniques for functional programming languages. [Coursework]
|
Assessment Information
Written Examination 75
Assessed Assignments 25
Oral Presentations 0
Assessed Coursework
Three written assignments, weighted equally: one on ML programming; one on the ML module system; one on specification and proof.
If delivered in semester 1, this course will have an option for semester 1 only visiting undergraduate students, providing assessment prior to the end of the calendar year. |
Please see Visiting Student Prospectus website for Visiting Student Assessment information |
Special Arrangements
Not entered |
Contacts
Course organiser |
Dr Amos Storkey
Tel: (0131 6)51 1208
Email: A.Storkey@ed.ac.uk |
Course secretary |
Miss Tamise Totterdell
Tel: 0131 650 9970
Email: t.totterdell@ed.ac.uk |
|
copyright 2010 The University of Edinburgh -
1 September 2010 6:10 am
|