Undergraduate Course: Informatics 1 - Functional Programming (INFR08013)
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 8 (Year 1 Undergraduate) | 
Credits | 10 | 
 
| Home subject area | Informatics | 
Other subject area | None | 
   
| Course website | 
http://www.inf.ed.ac.uk/teaching/courses/inf1/fp/ | 
Taught in Gaelic? | No | 
 
| Course description | An introduction to the concepts of programming, using a functional programming language. Students learn to solve small-scale problems succinctly and at an abstract level without being bogged down in details. | 
 
 
Entry Requirements (not applicable to Visiting Students)
| Pre-requisites | 
 | 
Co-requisites |  Students MUST also take:   
Informatics 1 - Computation and Logic (INFR08012)  
  | 
 
| Prohibited Combinations |  | 
Other requirements |  SCE H-grade Mathematics or equivalent is desirable. | 
 
| Additional Costs |  None | 
 
 
Information for Visiting Students 
| Pre-requisites | None | 
 
| Displayed in Visiting Students Prospectus? | Yes | 
 
 
Course Delivery Information
| Not being delivered |   
Summary of Intended Learning Outcomes 
1 - Solve simple programming tasks (for example, convert a number into a string for the corresponding roman numeral). 
2 - Define appropriate data types (for example, to represent parse trees for arithmetic expressions). 
3 - Perform case analysis, use recursion (for example, evaluate a parse tree for an arithmetic expression to yield a value). 
4 - Read and write programs that use basic list processing functions (nil, cons, append, length, take, drop, zip, concat). 
5 - Read and write programs that use list comprehensions and higher-order functions (map, filter, fold). 
6 - Choose appropriate decompositions of problems to create a program to solve that problem. 
7 - Compose a functional program from suitable function definitions, including their types. 
8 - Document programs effectively. 
9 - Apply basic techniques to test and debug programs. | 
 
 
Assessment Information 
Written Examination	90 
Assessed Assignments	10 
Oral Presentations	0 
 
Assessment 
Formative assessment will be used to provide feedback and guidance to students and will take the form of quizzes, exercise sheets, practical exercises and coursework assignments, covering areas from across the syllabus. A summatively assessed class test (worth 10% of the final mark) will be held mid semester and will test students basic programming competence. 
 
 |  
 
Special Arrangements 
| None |   
 
Additional Information 
| Academic description | 
Not entered | 
 
| Syllabus | 
An introduction to the concepts of programming using a functional programming language. 
 
Relevant QAA Computing Curriculum Sections:  to be confirmed | 
 
| Transferable skills | 
Not entered | 
 
| Reading list | 
The Craft of Functional Programming, 2nd edition, Simon Thompson, Haskell, Addison Wesley, 1999 
Programming in Haskell, Graham Hutton 
The Haskell School of Expression, Paul Hudak | 
 
| Study Abroad | 
Not entered | 
 
| Study Pattern | 
Lectures	20 
Tutorials	10 
Timetabled Laboratories	0 
Non-timetabled assessed assignments	0 
Private Study/Other	70 
Total	100 | 
 
| Keywords | Not entered | 
 
 
Contacts 
| Course organiser | Mr Paul Anderson 
Tel: (0131 6)51 3241 
Email:  | 
Course secretary | Ms Kirsten Belk 
Tel: (0131 6)50 5194 
Email:  | 
   
 
 | 
 |