Datos Identificativos 2012/13
Asignatura (*) Programación Funcional Código 614111635
Titulación
Enxeñeiro en Informática
Descriptores Ciclo Período Curso Tipo Créditos
1º e 2º Ciclo 1º cuadrimestre
Todos Optativa 5.5
Idioma
Prerrequisitos
Departamento Computación
Coordinación
Quintela Carreira, Juan Jose
Correo electrónico
juan.quintela.carreira@udc.es
Profesorado
Quintela Carreira, Juan Jose
Correo electrónico
juan.quintela.carreira@udc.es
Web http://www.madsgroup.org/~quintela/programacion_funcional/
Descrición xeral La asignatura de Programación Funcional permite al estudiante de
ingeniería informática profundizar en el estudio de los lenguajes
funcionales. Esto se realiza estudiando el lambda cálculo, que
es la teoría en la que se basan estos lenguajes. Se usa una
aproximación práctica, implementando y extendiendo un interprete
del lambda cálculo puro con diversas funcionalidades como
booleanos, enteros, pares, listas, recursividad ...

Competencias do título
Código Competencias da titulación
A1 Aprender de maneira autónoma novos coñecementos e técnicas avanzadas axeitadas para a investigación, o deseño e o desenvolvemento de sistemas e servizos informáticos.
A2 Concibir e desenvolver novas arquitecturas de computación, en especial para sistemas multiprocesadores, analizando e adaptando diversas alternativas tecnolóxicas a cada problema concreto.
A3 Concibir e planificar o desenvolvemento de aplicacións informáticas complexas ou con requisitos especiais.
B1 Aprender a aprender.
B2 Resolver problemas de forma efectiva.
B12 Capacidade para a análise e a síntese.
C6 Valorar criticamente o coñecemento, a tecnoloxía e a información dispoñible para resolver os problemas cos que deben enfrontarse.

Resultados de aprendizaxe
Competencias de materia (Resultados de aprendizaxe) Competencias da titulación
Aprender un nuevo paradigma de programación, y entender sus ventajas y desventajas A1
A2
B1
B2
B12
C6
Implementar los conocimientos teóricos aprendidos en un compilador. A2
A3

Contidos
Temas Subtemas
Introducción a programación Funcional Historia de los lenguajes Funcionales
Lenguajes Imperativos
Lenguajes Declarativos (funcionales/lógicos)
Transparencia Referencial
Lambda Cálculo Puro Sustitucion
Normalización
Call-by-name
Call-by-value
Call-by-need
Representación de Valores no Lambda Calculo Booleanos
Pares
Enteros
Listas
Recursividad (Y)
Sistemas de Tipos para o Lambda Cálculo Tipado simple
Tipado explicito/implicito
Tipado estático/dinámico
Coherencia
Inferencia de tipos
Polimorfismo
Implementación Lenguajes Funcionales Bajo Nivel
Interprete (bytecode)
Garbage collector
Introducción a Erlang Programación Concurrente
Fault tolerance

Planificación
Metodoloxías / probas Horas presenciais Horas non presenciais / traballo autónomo Horas totais
Discusión dirixida 2 2 4
Prácticas de laboratorio 30 25 55
Sesión maxistral 40 10 50
Solución de problemas 7 0 7
Traballos tutelados 5 16.5 21.5
 
Atención personalizada 0 0
 
*Os datos que aparecen na táboa de planificación son de carácter orientativo, considerando a heteroxeneidade do alumnado

Metodoloxías
Metodoloxías Descrición
Discusión dirixida Desarrollanse exemplos relacionados cos contidos teoricos. Resolveranse dubidas.
Prácticas de laboratorio Os estudantes realizaran practicas relacionadas cos coñecementos dados en clase. Estas practicas correxiranse o largo do curso, para incorporar as correccions nas seguintes practicas.
Sesión maxistral Exposición oral complementada co uso de medios audiovisuais e a formulación de preguntas dirixidas a os estudantes, co obxetivo de transmitir coñecemento así como de estimular o razoamento crítico do estudiante.
Solución de problemas Clases de problemas para asentas os coñecementos de teora.
Traballos tutelados Na entrega das practicas permitense elaborar apartados opcionais que supoñen unha extension do traballo realizado obrigratorio.

Atención personalizada
Metodoloxías
Prácticas de laboratorio
Traballos tutelados
Descrición
Clases de problemas no aula. Favorecese a interaccion durante a exposicion dos temas. Durante as practicas no laboratorio explicanse as dubidas que surxan nos contidos dados en teoria para realizar as practicas.

Os traballos tutelados son extensions das practicas optativos que melloran a nota final.

Avaliación
Metodoloxías Descrición Cualificación
Prácticas de laboratorio As practicas de laboratorio son unha linguaxe que se vai mellorando cos contidos dados en clase. As practicas son continuas e corrixense segun se van entregando 100
 
Observacións avaliación

Fontes de información
Bibliografía básica Richar Bird (2000). Intruduccion a la Programacion Funcional en Haskell. Prentice Hall
Paul Hudak (2000). The haskell School of Expression. Cambridge University Press

Bibliografía complementaria Simon Peyton Jones (1987). The Implementation of Functional Programming Languages. Prentice Hall


Recomendacións
Materias que se recomenda ter cursado previamente
Programación Declarativa/614111207
Matemáticas Discretas II/614111406

Materias que se recomenda cursar simultaneamente

Materias que continúan o temario

Observacións


(*)A Guía docente é o documento onde se visualiza a proposta académica da UDC. Este documento é público e non se pode modificar, salvo casos excepcionais baixo a revisión do órgano competente dacordo coa normativa vixente que establece o proceso de elaboración de guías