| 
 Undergraduate Course: Informatics 1 - Functional Programming (INFR08013)
Course Outline
| School | School of Informatics | College | College of Science and Engineering |  
| Credit level (Normal year taken) | SCQF Level 8 (Year 1 Undergraduate) | Availability | Available to all students |  
| SCQF Credits | 10 | ECTS Credits | 5 |  
 
| Summary | *Please note that this course has been replaced by a 20-credit course 'Informatics 1 - Introduction to Computation' (INFR08025) from 2018/19*. 
 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.
 |  
| Course description | An introduction to the concepts of programming using a functional programming language. 
 Relevant QAA Computing Curriculum Sections:  to be confirmed
 |  
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. |  
Information for Visiting Students 
| Pre-requisites | None |  
		| High Demand Course? | Yes |  
Course Delivery Information
| Not being delivered |  
Learning Outcomes 
| On completion of this course, the student will be able to: 
        Solve simple programming tasks and define appropriate data typesPerform case analysis, use recursion (for example, evaluate a parse tree for an arithmetic expression to yield a value)Read and write programs that use basic list processing functions, list comprehensions and higher-order functionsChoose appropriate decompositions of given problems and compose corresponding functional programs from suitable function definitions, including their typesDocument, test and debug programs |  
Reading List 
| Thinking Functionally with Haskell, Cambridge University Press, 2014. Richard Bird The Craft of Functional Programming, 3rd edition, Simon Thompson, Haskell, Addison Wesley, 2011
 Programming in Haskell, Graham Hutton
 The Haskell School of Expression, Paul Hudak
 Learn You a Haskell for Great Good! Miran Lipovica. No Starch
 Press, 2011.
 |  
Contacts 
| Course organiser | Prof Don Sannella Tel: (0131 6)50 5184
 Email: D.T.Sannella@ed.ac.uk
 | Course secretary | Mr Rob Armitage Tel: (0131 6)50 5194
 Email: Rob.Armitage@ed.ac.uk
 |  |  |