XSL Content

Functional Programming26228

Centre
Faculty of Informatics
Degree
Bachelor's Degree in Informatics Engineering
Academic course
2024/25
Academic year
4
No. of credits
6
Languages
Spanish
Code
26228

TeachingToggle Navigation

Distribution of hours by type of teaching
Study typeHours of face-to-face teachingHours of non classroom-based work by the student
Lecture-based4060
Applied laboratory-based groups2030

Teaching guideToggle Navigation

Description and Contextualization of the SubjectToggle Navigation

The functional paradigm, which is gradually acquiring more importance in the academic and commercial fields, is based on a declarative conception of the problem to be solved, as an alternative to imperative programming. The main aim is to declare or specify the problem through mathematical functions that are also executable, obtaining a program (or prototype) directly from the specification.

This subject is an introduction to the functional paradigm. It studies the main characteristics of modern functional languages, specifically the Haskell programming language.

Skills/Learning outcomes of the subjectToggle Navigation

By taking this subject, the following competences are expected to be acquired:

- Differentiate between declarative and imperative programming.

- Learn about the main characteristics of modern functional languages.

- Acquire the necessary skills to program in Haskell, using the concepts of the functional paradigm.

- Use a Haskell interpreter to implement programs.

Theoretical and practical contentToggle Navigation

Theme 1. Introduction.

Theme 2. Simple data types. Definition of functions. Currying.

Theme 3. Type constructors. Pattern matching. Polymorphism.

Theme 4. List functions. Higher order.

Theme 5. Overloaded operators. Type classes.

Theme 6. Algebraic types. Structural induction.

Theme 7. Abstract data types. Modules.

Theme 8. Lazy evaluation. Infinite lists.

Theme 9. Efficiency. Cyclic structures.

Theme 10. Programming with actions: I/O.

MethodologyToggle Navigation

- Theory lessons are devoted to conceptual explanations and examples.

- Exercise lists for each theme will be provided. A number of solutions to the exercises will be corrected.

- In the laboratories theoretical concepts are reinforced by carrying out exercises and/or practical work to be handed in.

Assessment systemsToggle Navigation

  • Continuous Assessment System
  • Final Assessment System
  • Tools and qualification percentages:
    • Written test to be taken (%): 60
    • Realization of Practical Work (exercises, cases or problems) (%): 40

Ordinary Call: Orientations and DisclaimerToggle Navigation

In the ordinary evaluation you can choose between

- continuous assessment, through 2 written tests (60%) + handing in exercises and/or practical work (40%)

or

- overall assessment, through a single final written exam (100%).



If you wish to withdraw from the continuous assessment you can do it until one month before the completion of the subject.

Extraordinary Call: Orientations and DisclaimerToggle Navigation

In the extraordinary evaluation only overall assessment is available, in the form of a written exam (100%).

Compulsory materialsToggle Navigation

- Subject material available in eGela (slides, exercise lists, laboratories, etc).
- Haskell language interpreter used in the laboratories.

BibliographyToggle Navigation

Basic bibliography

Bird, R. “Introducción a la Programación Funcional con Haskell” (2ª ed), Prentice Hall.

Original version (in English) 1998: Spanish translation: 2000.



Thompson, S. “Haskell. The Craft of Functional Programming"(2ª ed), Addison-Wesley. 1999.

In-depth bibliography

Peyton-Jones,S.L. The implementation of Functional Programming Languages. Prentice-Hall, 1987.

Journals

The Journal of Functional Programming

Web addresses

http://www.haskell.org

http://book.realworldhaskell.org

GroupsToggle Navigation

16 Teórico (Spanish - Tarde)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
1-15

17:00-18:30 (1)

14:00-15:30 (2)

Teaching staff

16 Applied laboratory-based groups-1 (Spanish - Tarde)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
1-15

15:30-17:00 (1)

Teaching staff