Ficha del curso: 2016-2017 - Facultad de Informática

Anuncio
UNIVERSIDAD COMPLUTENS E DE MADRID
FACULTAD DE INFORMATICA
Ficha del curso: 2016-2017
Grado: DOBLE GRADO DE M ATEM ÁTICAS E INFORM ÁTICA
Curso: 4º ( 2C )
Asignatura: 900226 - Programación Declarativa
Abrev: PD
6 ECTS
Asignatura en Inglés: Declarative Programming
Materia: Programación avanzada
21 ECTS
Otras asignaturas en la misma materia:
M étodos algorítmicos en resolución de problemas
9 ECTS
Programación Concurrente
6 ECTS
Módulo: Tecnología específica: Computación
Departamento: Sistemas Informáticos y Computación
Coordinador: López Fraguas, Francisco Javier
Descripción de contenidos mínimos:
No tiene
Programa detallado:
•
Elementos básicos de la programación funcional: funciones y expresiones, tipos, orden superior, lambda abstracciones.
•
Ejecución de programas funcionales: evaluación impaciente y perezosa, ajuste de patrones.
•
Tipos de datos: tipos definidos, polimórficos, inferencia de tipos, clases de tipos.
•
Técnicas básicas de programación funcional.
•
Elementos básicos de la programación lógica: relaciones, términos, hechos, cláusulas, variables lógicas.
•
Ejecución de programas lógicos: unificación, resolución, espacio de búsqueda.
•
Programación lógica con datos estructurados
•
Programación en lenguaje Prolog: control, predicados metalógicos.
Programa detallado en inglés:
•
Basic notions of functional programming: functions and expressions, types, higher order functions, lambda-abstractions.
•
Execution of functional programs: eager and lazy evaluation, pattern matching.
•
Data types: user-defined types, polymorphism, type inference, type classes.
•
Basic techniques of functional programming.
•
Basic notions of logic programming: relations, terms, clauses, logical variables.
•
Execution of logic programs: unification, resolution, search space.
•
Logic programming with structured data.
•
Programming in Prolog: control and metalogic predicates.
Competencias de la asignatura:
Generales:
CG3-Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos
con aplicación en ingeniería.
CG11-Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a
problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.
CG12-Conocimiento, diseño y utilización de forma eficiente de los tipos y estructuras de datos más adecuados a la resolución de un problema.
CG13-Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los
lenguajes de programación más adecuados.
Específicas:
CE_C1-Capacidad para tener un conocimiento profundo de los principios fundamentales y modelos de la computación y saberlos aplicar para
interpretar, seleccionar, valorar, modelar, y crear nuevos conceptos, teorías, usos y desarrollos tecnológicos relacionados con la
informática.
CE_C2-Capacidad para conocer los fundamentos teóricos de los lenguajes de programación y las técnicas de procesamiento léxico, sintáctico
y semántico asociadas, y saber aplicarlas para la creación, diseño y procesamiento de lenguajes.
CE_C3-Capacidad para evaluar la complejidad computacional de un problema, conocer estrategias algorítmicas que puedan conducir a su
resolución y recomendar, desarrollar e implementar aquella que garantice el mejor rendimiento de acuerdo con los requisitos establecidos.
Básicas y Transversales:
CT1-Capacidad de comunicación oral y escrita, en inglés y español utilizando los medios audiovisuales habituales, y para trabajar en equipos
multidisciplinares y en contextos internacionales.
Fecha:
____ de _______________ de ______
Firma del Director del Departamento:
UNIVERSIDAD COMPLUTENS E DE MADRID
FACULTAD DE INFORMATICA
CT2-Capacidad de análisis y síntesis en la resolución de problemas.
CT3-Capacidad para gestionar adecuadamente la información disponible integrando creativamente conocimientos y aplicándolos a la
resolución de problemas informáticos utilizando el método científico.
Resultados de aprendizaje:
No tiene
Evaluación:
No tiene
Evaluación detallada:
La calificación, tanto en la convocatoria de junio como en la de septiembre, tiene en cuenta las siguientes
actividades y pruebas a realizar por el estudiante:
Exámenes:
A. Uno o más exámenes a mitad del cuatrimestre: 15%
B. Realización de un trabajo práctico asignado: 10%
Para la evaluación de este trabajo el profesor podrá convocar al alumno.
La convocatoria de septiembre dispondrá de un nuevo plazo para la asignación y realización del trabajo
práctico, para aquellos alumnos que no lo hubieran presentado en junio o quieran repetirlo.
C. Examen final: 75%
Actividades formativas:
No tiene
Actividades docentes:
Reparto de créditos:
Teoría: 4,50
Problemas: 0,00
Laboratorios: 1,50
En Aula
En Lab
Final Feb
Parcial Feb
Final Jun
Parcial Jun
Final Sep
Sin Examen
Otras actividades:
Actividad presencial (40%): clases teóricas y de resolución de ejercicios; clases prácticas en
laboratorio, en sesiones de dos horas en semanas alternas.
Acividades dirigidas (10%): trabajos dirigidos.
Trabajo personal (50%).
Bibliografía:
Libros de programación funcional
* R. Bird; Introducción a la Programación Funcional con Haskell; Segunda edición, Prentice Hall, 2000;
* B.C. Ruiz, F. Gutiérrez, P. Guerrero, J.E. Gallardo; Razonando con Haskell: un curso sobre programación funcional; Thomson, 2004;
* Graham Hutton; Programming in Haskell; Cambridge University Press, 2007;
Libros de programación lógica
* L.Sterling, E.Shapiro; The Art of Prolog. Advanced Programming Techniques; The M IT Press, 2ª Edición, 1994;
* P. Julián, M . Alpuente; Programación Lógica, Teoría y Práctica; Pearson, 2007;
* W.F. Clocksin, C.S. M ellish; Programming in Prolog Using the ISO Standard; Springer Verlag, 5ª edición, 2003;
Ficha docente guardada por última vez el 12/09/2016 17:51:00 por el usuario: Vic. Ordenación Académica
Fecha:
____ de _______________ de ______
Firma del Director del Departamento:
Descargar