PROGRAM A DE ASIGNATURA CURSO ACADÉMICO 2001/02 Fecha de Edición: 14/11/2001 Área de Titulación: Ingeniería Técnica en Informática de Sistemas Asignatura: PROGRAMACIÓN LÓGICA Curso: Duración (Anual/Cuatrimestral): Cuatrimestral Carácter: Optativa Créditos: 4,5 INDICE 1. Objetivos del programa Esta asignatura optativa va dirigida a alumnos de segundo o tercer cursos de Ingeniería Técnica de Informática de Sistemas del CES Felipe II, que habrán recibido un curso de introducción a la programación en estilo imperativo y estarán estudiando simultáneamente, o habrán estudiado en el curso anterior, una asignatura de estructuras de datos. El objetivo principal del curso es dar a conocer la programación lógica destacando, por un lado, la precisión y sencillez de sus fundamentos lógicos; por otro lado, sus ventajas prácticas para el desarrollo de programas a un nivel de abstracción elevado, que facilita la concisión, la claridad, la corrección y la modificabilidad. En el curso se exponen aspectos referentes a la semántica y modelo de cómputo y las técnicas específicas de programación que se ilustran por medio de ejemplos típicos, usando Prolog como lenguajes de referencia. Se espera que los alumnos adquieran la capacidad de manejar algoritmos y estructuras de datos en un lenguaje lógico, y que puedan demostrar dicha capacidad en la resolución de problemas de programación de mediana envergadura. 2. Temario Tema 1 Fundamentos de la programación lógica. Repaso de la lógica de primer orden. Unificación y resolución. Cláusulas de Horn. Resolución SLD. Programación lógica con cláusulas de Horn. Semántica de los programas lógicos. Tema 2 Programación en Prolog. Representación clausulada del conocimiento. Consulta de una base de cláusulas Prolog. Espacios de búsqueda Prolog. Programación lógica con números, listas y árboles. Control en Prolog. Manipulación de términos. Predicados metalógicos. Técnicas avanzadas de programación en Prolog. Gramáticas lógicas. Metaintérpretes Prolog. Introducción a la programación lógica con restricciones. Este temario recoge los puntos que se tratarán a lo largo del curso, aunque el orden y la agrupación de los mismos podrá variar en función del profesor. Página 1 de 2 3. Desarrollo de la asignatura La asignatura se impartirá casi totalmente en el aula, sin una separación estricta entre clases teóricas y clases de problemas. La exposición de los temas del programa se irá intercalando en las clases con el planteamiento y resolución de ejercicios y problemas de programación. En principio, no se han planificado sesiones de laboratorio regulares para esta asignatura. No obstante, si el desarrollo del curso lo permitiese, se dedicaría alguna hora a la realización de prácticas sencillas en Laboratorio, supervisadas por el profesor, con en el compilador SWIProlog. Esta herramienta es de dominio público y ya se puede descargar desde la página web indicada en el punto 6 4. Forma de evaluación El método de evaluación estará basado en un único examen final que cubrirá todos los temas del programa. Adicionalmente, y con carácter opcional, se realizará una prueba parcial de una hora de duración basada en los ejercicios realizados periódicamente. La nota de la asignatura coincidirá con el resultado del examen final, salvo para aquellos alumnos que decidan realizar el examen parcial y obtengan en dicho examen mejor calificación que en el examen final. Este caso, en el cálculo de la nota final pesará un 75% la calificación del examen final y un 25% la del examen parcial. 5. Bibliografía Básica Clocksin, W. F., Mellish, C. S. “Programación en PROLOG”, 2ª ed. Gustavo Gili, 1990. Sterling, L., Shapiro, E. “The Art of Prolog. Advanced Programming Techniques”. The MIT Press, 1986. Complementaria Bratko, I. “PROLOG. Programming for Artificial Intelligence”. 3ª ed. Addison Wesley, 2001. Maier, D., Warren, D.S. “Computing with Logic. Logic Programming with Prolog”. Benjamin Cummings, 1988. 6. Enlaces de interés en Internet Compilador SWI-Prolog, http://www.swi.psy.uva.nl/projects/SWI-Prolog/ CES Felipe II, www.cesfelipesegundo.com Universidad Complutense de Madrid, www.ucm.es Facultad de Informática, UCM, www.fdi.ucm.es La información actualizada sobre esta asignatura se encuentra disponible en www.cesfelipesegundo.com Página 2 de 2