Objetivos de la asignatura
1) Aprender una variedad de la lógica, la lógica clausal, dirigida a abreviar la potencialidad expresiva y deductiva de los sistemas de deducción natural, a fin de poder ser automatizada de forma eficiente.
2) Entender la lógica como una herramienta de la que se puede derivar un lenguaje de programación que permite expresar conocimientos sobre los que se pueden hacer deducciones automáticas.
3) Lograr expresar conocimientos y obtener respuestas a preguntas usando un lenguaje de programación de inspiración lógica: el Prolog.
4) Aprender a resolver problemas expresándolos algorítmicamente.
5) Comprender el origen histórico y social de la moderna informática y el papel que jugó en ese origen la lógica.
6) Ser consciente de los valores éticos y sociales implicados en la creación y uso de las tecnologías informáticas que razonan mecánicamente.
Contenidos
1. Breve introducción a la lógica clausal.
2. Básicos de Prolog
2.1 Hechos y reglas. Reglas recursivas.
2.2 Búsqueda de soluciones. Trazas
2.3. Negación como fallo.
2.4. Operaciones aritméticas.
3. Aplicaciones de Prolog
3.1 Procesamiento del lenguaje natural
3.2 Aprendizaje automático.
3.3 Fuzzy Prolog.
4. Reflexiones filosóficas sobre aspectos controvertidos de la Programación Lógica
Bibliografía básica y complementaria
Bibliografía básica:
Shonning, U., Logic for Computer Scientists. Birkhäuser, 1989.
Clocksin & Mellish, Programación en Prolog. Gustavo Pili, 1993
Pereira, L. M. ‘The Philosophical Relevance of Logic Programming’, Gabbay, D. et al. (eds.), Handbook of the Logic of Argument and Inference. Studies in Logic and Practical Reasoning series, vol. I, pp 425-448. Elsevier Science, 2002. Traducción en Agora, Papeles de Filosofía, vo. 26, 1, 2007, 153-185.
Bibliografía avanzada:
Bratko, I., Prolog Programming for Artificial Intelligence, Addison-Wesley, 1990, 2nd. ed.
Coelho, H., Prolog by example:how to learn, teach and use it. Springer-Verlag, 1988.
Covington, M. A., Nute, D. Vellino, A., Prolog programming in depth. Prentice-Hall, 1997.
Covington, M., Natural Language Processing for Prolog Programmers. Englewood Cliffs, 1994.
Dahl, V. & Sobrino, A (eds.), Estudios sobre programación lógica y sus aplicaciones. Servicio de Publicaciones de la USC, 1996.
Competencias
CB7. Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio
CB8. Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios.
CB9. Que los estudiantes sepan comunicar sus conclusiones –y los conocimientos y razones últimas que las sustentan- a públicos especializados y no especializados de un modo claro y sin ambigüedades.
CB10. Que los estudiantes poseerán las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.
CG1 Que los estudiantes sean capaces de crear documentaciones legibles, completas, técnicamente correctas. Elaborar trabajos de investigación homologables con el nivel internacional actual de las disciplinas.
CE1. Identificar los conocimientos tradicionales y actuales que se plantean en el área de Lógica y filosofía de la Ciencia, así como de sus diferentes corrientes y tradiciones.
Metodología de la enseñanza
Clases de teoría con apoyo de material audiovisual
Talleres de prácticas: Análisis de problemas. Análisis y evaluación de soluciones. Depuración de soluciones.
Trabajos guiados: Hacer programas y comentarlos.
Tutorías: Seguimiento de los trabajos a través de consultas personales o e-consultas (e-mail, chat, foro,…)
Sistema de evaluación
Realización de las prácticas: 40%
Participación en las tutorías: 20%
Trabajo de investigación: planteamiento, diseño y ejecución de un programa Prolog. Documentación y evaluación del mismo: 40%
Total horas presenciales: 10
Total clases magistrales /teóricas: 10
Total horas no presenciales (trabajo personal): 115
Tutorías: 10
Seguimiento del trabajo del curso: 73
Realización de prueba final o realización de trabajo final guiado por el profesor: 32