Checking date: 21/04/2023

Course: 2023/2024

Functional Programming
Bachelor in Applied Mathematics and Computing (Plan: 433 - Estudio: 362)

Coordinating teacher: FERNANDEZ ARREGUI, SUSANA

Department assigned to the subject: Computer Science and Engineering Department

Type: Compulsory
ECTS Credits: 6.0 ECTS


Requirements (Subjects that are assumed to be known)
Programming (Course: 1/ Semester: 1) Programming Techniques (Course: 1/ Semester: 2)
To Acquire the learning outcomes and competencies specified in the "Memoria Verifica" of the title
Skills and learning outcomes
Description of contents: programme
1.- Functional programming. 2.- Functions and expressions reductions. 3.- Functional programming and type system. 4.- Type classes. 5.- Higher order functions. 6.- Monadic programming. 7.- Curry-Howard isomorphism
Learning activities and methodology
AF1.THEORETICAL-PRACTICAL CLASSES. Knowledge and concepts students must acquire. Student receive course notes and will have basic reference texts to facilitatefollowing the classes and carrying out follow up work.Students partake in exercises to resolve practical problems and participatein workshops and an evaluation tests, all geared towards acquiring the necessary capabilities.Subjects with 6 ECTS are44 hours as a general rule/ 100% classroom instruction AF2.TUTORING SESSIONS. Individualized attendance (individual tutoring) or in-group (group tutoring) for students with a teacher.Subjects with 6 credits have 4 hours of tutoring/ 100% on- site attendance. AF3.STUDENT INDIVIDUAL WORK OR GROUP WORK.Subjects with 6 credits have 98 hours/0% on-site. AF8.WORKSHOPS AND LABORATORY SESSIONS. Subjects with 3 credits have 4 hours with 100% on-site instruction. Subjects with 6 credits have 8 hours/100% on-site instruction. MD1.THEORY CLASS. Classroom presentations by the teacher with IT and audiovisual support in which the subject`s main concepts are developed, while providing material and bibliography to complement student learning. MD2.PRACTICAL CLASS. Resolution of practical cases and problem, posed by the teacher, and carried out individually or in a group. MD3.TUTORING SESSIONS. Individualized attendance (individual tutoring sessions) or in-group (group tutoring sessions) for students with teacher as tutor. Subjects with 6 credits have 4 hours of tutoring/100% on-site. MD6.LABORATORY PRACTICAL SESSIONS. Applied/experimental learning/teaching in workshops and laboratories under the tutor's supervision.
Assessment System
  • % end-of-term-examination 40
  • % of continuous assessment (assigments, laboratory, practicals...) 60
Calendar of Continuous assessment
Basic Bibliography
  • Graham Hutton. Programming in Haskell (2nd edition). Cambridge University Press. 2016
  • Richar Bird. Introduction to Functional Programming using Haskell, Second edition. Prentice-Hall. 1998
  • Richard Bird and Philip Wadler. Introduction to Functional Programming. Prentice-Hall . 1988
Additional Bibliography
  • Bartosz Milewski. Category Theory for Programmers. Edited by Igal Tabachnik.
  • Miran Lipovaca. Learn You a Haskell for Great Good!: A Beginner's Guide . No Starch Press. 2011

The course syllabus may change due academic events or other reasons.