Fichas de asignaturas 2010-11
![]() |
PROGRAMACIÓN FUNCIONAL |
![]() ![]() |
|
Asignatura |
![]() |
| |
Profesorado |
![]() |
| |
Situación |
![]() |
| |
Competencias |
![]() |
| |
Objetivos |
![]() |
| |
Programa |
![]() |
| |
Actividades |
![]() |
| |
Metodología |
![]() |
| |
Distribucion |
![]() |
| |
Técnicas Docentes |
![]() |
| |
Evaluación |
![]() |
| |
Recursos Bibliográficos |
![]() |
Código | Nombre | |||
Asignatura | 1713044 | PROGRAMACIÓN FUNCIONAL | Créditos Teóricos | 2,5 |
Descriptor | FUNCTIONAL PROGRAMMING | Créditos Prácticos | 2 | |
Titulación | 1713 | INGENIERÍA EN INFORMÁTICA | Tipo | Optativa |
Departamento | C137 | LENGUAJES Y SISTEMAS INFORMATICOS | ||
Curso | ||||
Duración (A: Anual, 1Q/2Q) | 1Q | |||
Créditos ECTS | 4 |
Pulse aquí si desea visionar el fichero referente al cronograma sobre el número de horas de los estudiantes.
Profesorado
Inmaculada Medina Bulo (coordinadora) Francisco Palomo Lozano
Situación
Prerrequisitos
Ninguno
Contexto dentro de la titulación
Esta asignatura introduce un paradigma de programación novedoso para el alumno, que ha estudiado previamente el paradigma imperativo y el orientado a objetos. Supone aprender una nueva forma de enfocar y resolver problemas que produce soluciones generales, elegantes y más fáciles de verificar.
Recomendaciones
Aunque no es en absoluto imprescindible, los alumnos que hayan cursado previamente las asignaturas optativas de Programación Lógica y Lógica Matemática se beneficiarán de los conocimientos adquiridos en ellas, apreciando mejor las ventajas que presentan los lenguajes funcionales.
Competencias
Competencias transversales/genéricas
Capacidad para resolver problemas Capacidad de análisis y síntesis Comunicacion oral y escrita Trabajo en equipo
Competencias específicas
Cognitivas(Saber):
Conocer los fundamentos del paradigma de la programación funcional Conocer el lenguaje funcional Haskell
Procedimentales/Instrumentales(Saber hacer):
Resolver problemas empleando un enfoque funcional Modelar datos mediante estructuras funcionales Programar en el lenguaje funcional Haskell
Actitudinales:
Creatividad Aprendizaje autónomo
Objetivos
Los objetivos que pretende cubrir la asignatura pueden resumirse en los siguientes puntos: 1. Comprender el paradigma de la programación funcional y sus ventajas. 2. Conocer los fundamentos del lenguaje funcional Haskell. 3. Programar en el laboratorio siguiendo el paradigma funcional.
Programa
Teoría: Programación funcional. 0. Presentación. 1. Paradigma de la programación funcional. 1.1. Introducción. 1.2. Características fundamentales. 1.3. Funciones. 1.4. Sesiones y declaraciones. 1.5. Reducción de expresiones y órdenes de reducción. 2. Conceptos fundamentales. 2.1. Tipos de datos. 2.2. Operadores. 2.3. Patrones. 2.4. Expresiones. 3. Funciones de orden superior y polimorfismo. 3.1. Parcialización (currificación). 3.2. Polimorfismo. 4. Definiciones de tipos y sistema de clases. 4.1. Definiciones de tipos. 4.2. Clases de tipos. 5. Listas, árboles y grafos. 5.1. Tipo lista. 5.2. Tipo árbol. 5.3. Tipo grafo. 5.4. Inducción estructural. 6. Evaluación perezosa y mónadas. 6.1. Evaluación perezosa. 6.2. Listas parciales e infinitas. 6.3. Redes finitas de procesos. 6.4. Evaluación impaciente. 6.5. Mónadas. 6.6. Mónadas de E/S. Prácticas: Programación funcional. 1. Entorno de desarrollo. 1.1. Hugs. 1.2. Opciones más frecuentes. 1.3. Ejecución desde Emacs. 1.4. Definición de funciones. 2. Conceptos fundamentales. 2.1. Tipos de datos. 2.2. Operadores. 2.3. Patrones. 2.4. Expresiones. 2.5. Definiciones locales. 3. Funciones de orden superior y polimorfismo. 3.1. Funciones parcializadas. 3.2. Secciones. 3.3. Funciones de orden superior. 3.4. Combinadores. 3.5. Funciones polimórficas. 4. Definiciones de tipos y sistema de clases. 4.1. Sinónimos de tipo. 4.2. Funciones de plegado o recursores. 4.3. Definiciones de tipos. 4.4. Clases e instancias de tipos. 5. Listas, árboles y grafos. 5.1. Tipo lista. 5.2. Tipo árbol. 5.3. Tipo grafo. 5.4. Casos de estudio. 6. Evaluación perezosa y mónadas. 6.1. Definición de funciones con evaluación impaciente. 6.2. Definición de funciones con mónadas de E/S. 6.3. La expresión do.
Actividades
Actividades presenciales obligatorias Actividades prácticas Actividades académicamente dirigidas Actividades de presentación y defensa pública de trabajos Actividades de supervisión y orientación presencial en el aula Tutorías y entrevistas personales Actividades de evaluación continua y final
Metodología
Se empleará una metodología cuyo objetivo es lograr el aprendizaje a través de la resolución de problemas. Las clases correspondientes a los créditos teóricos constarán, fundamentalmente, de sesiones de resolución de problemas propuestos con antelación en las que los alumnos podrán emplear cuantos materiales estimen convenientes. Los alumnos deberán primero intentar resolver los problemas por sí mismos, para luego trabajar por parejas, explicándose mutuamente la solución obtenida e intentando encontrar errores en la solución del compañero, o bien, intentando llegar juntos a una solución. Posteriormente, las soluciones se pondrán en común en grupo y se invitará a su exposición. El objetivo es fomentar el trabajo cooperativo, el espíritu crítico y la comunicación. Se hará especial hincapié en la necesidad de comprobar la corrección de la solución final obtenida y su bondad respecto a distintos criterios, al objeto de fomentar el espíritu crítico. El profesor enseñará los conocimientos teóricos y técnicos necesarios bajo demanda, conforme los alumnos los requieran para resolver los problemas planteados, limitándose a actuar de guía en el proceso de aprendizaje. El alumno es responsable de su propio aprendizaje. No obstante, el profesor realizará al principio de cada tema una breve introducción de sus aspectos principales y de dónde encontrar información adicional, proporcionando diversos materiales a lo largo del curso. Las clases prácticas complementan los contenidos de la parte teórica. Se proporcionarán ejercicios que se desarrollarán en el laboratorio a lo largo del curso. Tanto las clases teóricas como las prácticas se servirán del campus virtual como apoyo para la docencia. Estarán disponibles herramientas de comunicación como foros especializados, tutorías electrónicas privadas y correo electrónico, así como diversos contenidos en formato digital.
Distribución de horas de trabajo del alumno/a
Nº de Horas (indicar total): 100
- Clases Teóricas: 13
- Clases Prácticas: 13
- Exposiciones y Seminarios:
- Tutorías Especializadas (presenciales o virtuales):
- Colectivas: 3
- Individules:
- Realización de Actividades Académicas Dirigidas:
- Con presencia del profesorado: 16
- Sin presencia del profesorado: 28
- Otro Trabajo Personal Autónomo:
- Horas de estudio: 24
- Preparación de Trabajo Personal:
- ...
- Realización de Exámenes:
- Examen escrito: 3
- Exámenes orales (control del Trabajo Personal):
Técnicas Docentes
|
Criterios y Sistemas de Evaluación
El alumno podrá superar la asignatura siguiendo alguno de los dos sistemas de evaluación siguientes: 1. Evaluación continua El alumno podrá superar la asignatura mediante evaluación continua, a través de la realización y superación de diversas tareas/actividades evaluativas de obligado cumplimiento durante el desarrollo de la asignatura. * Objeto de evaluación: - Contenidos del paradigma de la programación funcional - Aplicación de conocimientos a la producción de software de pequeña y mediana escala utilizando el paradigma de la programación funcional. - Participación activa en las actividades individuales y en grupo. - Comunicación oral y escrita * Tareas/actividades de evaluación: a) Generación de dudas y selección de las dudas más útiles y frecuentes (DUF) b) Pruebas individuales presenciales de control escritas c) Resolución de ejercicios: desarrollo de funciones (ejercicios de funciones mediante ordenador y escritos sobre papel) d) Realización de trabajos: desarrollos de críticas y resúmenes sobre artículos y conferencias, y desarrollo de programas según necesidades planteadas por cliente * Técnicas e instrumentos de evaluación: - Pruebas de control escritas (preguntas de respuesta breve y resolución de problemas) - Resolución de ejercicios sobre funciones - Prácticas de laboratorio - Programas elaborados - Pruebas de ensayo crítico - Registro de participación en actividades - Rúbrica para la valoración de la comunicación oral y escrita * Requisitos indispensables: - Asistencia sistemática a las sesiones presenciales - Trabajo individual y en grupo de los alumnos - Seguimiento continuo y planificado - Realización y entrega de actividades en las fechas fijadas * Criterios de evaluación: - Adecuación a los principios del paradigma de la programación funcional - Adecuación al estándar - Adecuación a la especificación - Eficiencia en la ejecución - Organización, claridad, elegancia y corrección de las soluciones presentadas - Participación e implicación - Corrección ortográfica y gramatical - Claridad en el proceso por el cual obtiene la solución al problema * Procedimiento de calificación: Para obtener una calificación positiva el alumno deberá superar satisfactoriamente cada uno de las cuatro tareas de evaluación independientemente. El peso de la tarea a) será del 10%, el de la tarea b) será del 30%, el de la tarea c) será del 25% y el de la tarea d) será del 35%. 2. Evaluación final El alumno podrá superar también la asignatura asistiendo a las convocatorias de exámenes finales que establecen los Estatutos de la Universidad de Cádiz. * Objeto de evaluación: - Contenidos del paradigma de la programación funcional - Aplicación de conocimientos a la producción de software de pequeña y mediana escala utilizando el paradigma de la programación funcional. * Tareas/actividades de evaluación: a) Prueba final individual presencial escritas b) Realización de trabajo: desarrollo de programas según necesidades planteadas por cliente * Criterios de evaluación: - Adecuación a los principios del paradigma de la programación funcional - Adecuación al estándar - Adecuación a la especificación - Eficiencia en la ejecución - Organización, claridad, elegancia y corrección de las soluciones presentadas - Corrección ortográfica y gramatical - Claridad en el proceso por el cual obtiene la solución al problema * Técnicas e instrumentos de evaluación: - Prueba de control escrita (preguntas de respuesta breve y resolución de problemas) - Programas elaborados * Procedimiento de calificación: La asignatura se calificará mediante un examen escrito final (valorado de 0 a 10) y la entrega de un trabajo final (valorado en "apto" o "no apto"). La calificación final será la obtenida en el examen, excepto en el caso en el que el trabajo se evalúe como "no apto" y en el examen tenga una calificación de 5 o más. En ese caso, la calificación final será de 4.
Recursos Bibliográficos
Bibliografía básica. Bird, Richard Introducción a la programación funcional con Haskell. Prentice-Hall. 2000. Bryan O'Sullivan, Bryan;Stewart, Donald Bruce y Goerzen, John Real World Haskell. O'reilly. 2008. Doets, Kee y Eijck, van Jan The Haskell Road to Logic, Maths and Programming Texts in Computing. 2006. Hudak, Paul The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press. 2000. Hutton. Graham Programming in Haskell Cambridge, 2007. Ruiz, Blas C.; Gutiérrez, Francisco; Guerrero, Pablo y Gallardo, José E. Razonando con Haskell. Un curso sobre programación funcional. Thomson. 2004. Thompson, S. Haskell: The craft of functional programming. Addison-Wesley. 1996. Bibliografía complementaria. Jones, M. P. Hugs user's manual. The University of Nottingham and Yale University. 1998.
El presente documento es propiedad de la Universidad de Cádiz y forma parte de su Sistema de Gestión de Calidad Docente. En aplicación de la Ley 3/2007, de 22 de marzo, para la igualdad efectiva de mujeres y hombres, así como la Ley 12/2007, de 26 de noviembre, para la promoción de la igualdad de género en Andalucía, toda alusión a personas o colectivos incluida en este documento estará haciendo referencia al género gramatical neutro, incluyendo por lo tanto la posibilidad de referirse tanto a mujeres como a hombres.