Checking date: 30/08/2022


Course: 2022/2023

Functional Programming
(18283)
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

Course:
Semester:




Requirements (Subjects that are assumed to be known)
Programming (Course: 1/ Semester: 1) Programming Techniques (Course: 1/ Semester: 2)
Objectives
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 60
  • % of continuous assessment (assigments, laboratory, practicals...) 40

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.