CONOCIMIENTO Y
RAZONAMIENTO
AUTOMATIZADO
Grado en Ingeniería Informática
Universidad de Alcalá
Curso Académico 2018-19
Curso 3º – Cuatrimestre 2º
GUÍA DOCENTE
Nombre de la asignatura: Conocimiento y razonamiento automatizado
Código: 780025
Titulación en la que se imparte:
Grado en Ingeniería Informática
Departamento: Departamento Ciencias de la Computación
Carácter: Obligatoria
Créditos ECTS: 6
Curso y cuatrimestre: 3º Curso / 2º Cuatrimestre
Profesorado: José Enrique Moráis San Miguel
Consultar en la página web del departamento Horario de Tutoría: El horario de Tutorías se indicará el primer día de
clase Idioma en el que se imparte: Español
1. PRESENTACIÓN
Esta asignatura estudia las aplicaciones de la lógica al campo de la computación. Se pretende que el alumno adquiera soltura en el manejo de distintos métodos formales de amplia aplicación en la informática.
Prerrequisitos y Recomendaciones
Es recomendable haber cursado con éxito las anteriores asignaturas relativas a matemáticas.
1.b PRESENTATION
Automated Knowledge and Reasoning is a compulsory subject, that is taught in the second semester of the third year of the Degree in Informatics Engineering.
The subject introduces the students in the fundamental principles and methods of Logic as it is used in Computer Science, including Proposition and Predicate Calculus, SDL-resolution and Logic Programming, Lambda Calculus, and Program Semantics. For a good profit, the student must have good knowledge and skills on the subjects of Discrete Mathematics and a maturity in formal reasoning..
2. COMPETENCIAS
Esta asignatura, y de forma más amplia la materia de la que forma parte, desarrolla en el alumno las siguientes competencias:
Competencias genéricas:
• CG1 Capacidad de comunicación oral y escrita.
• CG2 Capacidad de análisis y síntesis.
• CG3 Capacidad para la toma de decisiones y para la planificación del trabajo individual.
• CG4 Capacidad de aplicar los conocimientos adquiridos a la práctica.
• CG5 Motivación por la calidad y la mejora continua.
Resultados de aprendizaje
• RA1 Conocer los conceptos de Cálculo Proposicional, los algoritmos usuales y ser capaz de modelizar y resolver problemas propios de la informática mediante el mismo.
• RA2 Conocer los conceptos de Cálculo de Predicados, los algoritmos usuales y ser capaz de modelizar y resolver problemas propios de la informática mediante el mismo.
• RA3 Comprender los fundamentos de la programación lógica (Resolución- SDL), manejar los rudimentos de un lenguaje de programación lógica y
entender los detalles de implementación del mismo.
• RA4 Comprender los fundamentos del Cálculo Lambda, manejar los rudimentos de un lenguaje de programación funcional y entender los detalles de implementación del mismo.
• RA5 Comprender la importancia y beneficios de usar lenguajes formales en la especificación. Proporcionar un lenguaje formal para modelizar y especificar las propiedades lógicas o funcionales de un sistema, dichas propiedades informan de lo que el sistema hace.
• RA6 Analizar sintáctica y semánticamente la especificación del sistema, para tratar de encontrar errores semánticos y repararlos. Aplicar técnicas de verificación a los sistemas que previamente han sido especificados y analizados.
3. CONTENIDOS
Cálculo Proposicional. Tableros semánticos. Resolución. Cálculo de Predicados. Tableros semánticos. Resolución. Resolución-SDL y programación lógica.
Cálculo Lambda y programación funcional.
Especificación, verificación y semántica de programas.
Bloques de contenido (se pueden especificar los temas si se considera necesario)
Total de clases, créditos u horas
Cálculo Proposicional
Cálculo proposicional, tableros semánticos y resolución.
10 horas
Cálculo de predicados
Cálculo de predicados, tableros semánticos y resolución
10 horas
Resolución-SDL
Resolución-SDL y programación lógica 14 horas
Cálculo Lambda
Cálculo y programación funcional 14 horas
Especificación, verificación y semántica de
programas
Especificación, verificación y semántica de programas
12 horas
4. METODOLOGÍAS DE
ENSEÑANZA-APRENDIZAJE.-ACTIVIDADES FORMATIVAS
4.1. Distribución de créditos (especificar en horas)
Número de horas presenciales:
Teoría y problemas 28 horas Laboratorio 28 horas
Evaluación final 3 horas
Número de horas del trabajo
propio del estudiante: 91 horas Total horas 150 horas
4.2. Estrategias metodológicas, materiales y recursos
didácticos
La asignatura “Conocimiento y Razonamiento Automatizado” se organiza como una asignatura cuatrimestral de 6 ECTS (150 horas).
En el proceso de enseñanza-aprendizaje de los contenidos anteriormente reseñados se emplearán las siguientes actividades formativas:
• Clases Teóricas presenciales.
• Clases Prácticas: resolución de problemas presenciales.
• Prácticas en Laboratorio presenciales.
• Tutorías: individuales y/o grupales.
Además, en función de la naturaleza de las distintas partes de la materia objeto de estudio, se podrán utilizar, entre otras, las siguientes actividades formativas:
• Elaboración de trabajos con responsabilidad individual pero con gestión de la información como equipo.
• Puesta en común de la información, problemas y dudas que aparezcan en la realización de los trabajos.
• Organización y realización de jornadas públicas con presentaciones orales y discusión de resultados.
• Utilización de Plataforma de Aula Virtual. Actividades presenciales:
En el aula: exposición y discusión de los conocimientos básicos de la asignatura. Planteamiento y resolución teórica de ejercicios y supuestos relacionados. Orientadas a la enseñanza de las competencias específicas de la asignatura, especialmente las relacionadas con los conocimientos y técnicas básicos de la misma.
En el laboratorio: planteamiento y desarrollo de ejercicios prácticos que permitan solventar problemas y analizar hipótesis y contribuyan al desarrollo de la capacidad de análisis de resultados, razonamiento crítico y comprensión de los
métodos de resolución planteados. Servirán como base para la adquisición de las competencias genéricas descritas en el apartado 2.
Actividades no presenciales:
• Análisis y asimilación de los contenidos de la materia, resolución de problemas, consulta bibliográfica, preparación de trabajos individuales y grupales, realización de exámenes presenciales y autoevaluaciones. Orientadas especialmente al desarrollo de métodos para la organización y planificación del trabajo individual y en equipo.
• Tutorías: asesoramiento individual y en grupos durante el proceso de enseñanza-aprendizaje, bien en forma presencial o a distancia.
Materiales y recursos:
Bibliografía de referencia sobre la asignatura. Ordenadores personales.
Entornos de desarrollo y manuales de uso de los mismos. Conexión a Internet.
Plataforma de Aula Virtual y manuales de uso de las mismas. Proyectores.
5. EVALUACIÓN:
Procedimientos, criterios de evaluación y de calificaciónLos estudiantes se acogerán a los procedimientos de evaluación según lo articulado en el titulo 2 (art. 9 y 10) de la Normativa de Evaluación de los Aprendizajes de la UAH.
En todo caso, preferentemente se ofrecerá a los alumnos un sistema de evaluación continua que tenga características de evaluación formativa, de manera que sirva de realimentación en el proceso de enseñanza-aprendizaje por parte del alumno. Para ello se establecen los siguientes procedimientos de evaluación.
Criterios de Evaluación
Los Criterios de Evaluación deben atender al grado de adquisición de las competencias por parte del estudiante. Para ello se definen los siguientes criterios:
CE1: Compresión y uso de tableros semánticos y la resolución para decidir la validez de fórmulas en el Cálculo Proposicional.
CE2: Compresión y uso de tableros semánticos y la resolución para decidir la validez de fórmulas en el Cálculo de Predicados.
CE3: Comprensión de las bases de la programación lógica (resolución SLD) y capacidad para usar la misma, y en concreto el lenguaje Prolog, en programación.
CE4: Comprensión de los fundamentos del Cálculo Lambda y su importancia como base de los lenguajes funcionales. Uso del Cálculo Lambda como lenguaje de programación.
CE5: Aplicar la verificación de programas para decidir la corrección de un programa. Uso de la derivación de programas.
CE6: Conocimiento de sistemas formales de especificación.
Instrumentos de Calificación.
Esta sección indica los instrumentos de evaluación que serán aplicados a cada uno de los criterios de Evaluación.
1. Pruebas de Evaluación Intermedia (PEI 1): Consistente en la resolución de problemas prácticos y teóricos de los conocimientos sobre la decisión de la validez en el contexto del Cálculo Proposicional y el Cálculo de Predicados, así como en la resolución SDL (programación lógica). 2. Pruebas de Evaluación Intermedia (PEI 2): Consistente en la resolución
de problemas prácticos y teóricos de los conocimientos sobre Cálculo Lambda y de especificación, verificación y derivación de programas. 3. Prueba de Laboratorio (PL): Las pruebas de laboratorio consisten en el
diseño e implementación de una aplicación práctica en un lenguaje de programación lógica (Prolog; PL1 y PL2) y en un lenguaje lo más próximo posible al Cálculo Lambda (Scheme; PL3).
4. Prueba de Evaluación Final (PEF) consistente en la resolución de problemas prácticos y teóricos sobre tableros semánticos y resolución en el Cálculo Proposicional y de Predicados, programación lógica (resolución SDL) y especificación, verificación y derivación de programas.
Criterios de Calificación
Esta sección cuantifica los criterios de evaluación para la superación de la asignatura.
1) Convocatoria Ordinaria: Evaluación Continua
En la convocatoria ordinaria – evaluación continua la relación entre los criterios, instrumentos y calificación es la siguiente.
Competencia Resultado Aprendizaje Criterio de Evaluación Instrumento de Evaluación Peso en la calificación
CG1-CG5 RA1-RA3 CE1-CE3 PEI1 30%
CG1-CG5 RA1-RA3 CE1-CE3 PL1 16%
CG1-CG5 RA1-RA3 CE1-CE3 PL2 12%
CG1-CG5 RA3-RA6 CE4-CE6 PEI2 30%
CG1-CG5 RA4 CE4 PL3 12%
Como criterio general, aquellos alumnos en convocatoria ordinaria que no se presenten a la evaluación de todas las prácticas se considerarán No Presentados.
2) Convocatoria Ordinaria: Evaluación Final
En la evaluación final, el alumno deberá realizar una prueba de evaluación final (PEF) y entregar y defender tres prácticas (Pn) que cubren los mismos aspectos que las pruebas de Evaluación Intermedia de Laboratorio.
Competencia Resultado Aprendizaje Criterio de Evaluación Instrumento de Evaluación Peso en la calificación
CG1-CG7 RA1-RA6 CE1-CE6 PEF 60%
CG1-CG5 RA1-RA3 CE1-CE3 PL1 16%
CG1-CG5 RA1-RA3 CE1-CE3 PL2 12%
CG1-CG5 RA4 CE4 PL3 12%
3) Convocatoria Extraordinaria
En la evaluación extraordinaria, el alumno deberá realizar una prueba de evaluación final (PEF) y entregar y defender tres prácticas (Pn) que cubren los mismos aspectos que las pruebas de Evaluación Intermedia de Laboratorio. Competencia Resultado Aprendizaje Criterio de Evaluación Instrumento de Evaluación Peso en la calificación
CG1-CG7 RA1-RA6 CE1-CE6 PEF 60%
CG1-CG5 RA1-RA3 CE1-CE3 PL1 16%
CG1-CG5 RA1-RA3 CE1-CE3 PL2 12%
6.BIBLIOGRAFÍA
Bibliografía Básica
Nerode A., Shore R.A., “Logic for applications”, Springer, 1993.
Cloksin W.F., Mellish C.S., “Programming in Prolog”, SpringerVerlag, 1994. Dybvig R.K., “The Scheme Programming Language”, 3rd Ed., MIT Press, 2003 (disponible on-line en http://www.scheme.com/tspl4/).
Hoare C.A.R., Wirth N., “An Axiomatic Definition of the
Programming Language Pascal”, E.T.H., 1972 (disponible en formato PDF en la página web
http://www.inf.ethz.ch/research/disstechreps/techreports/index?ra nge=1). Ait-Kaci H., “Warrens abstract machine – A tutorial reconstruction”, MIT Press, 1991 (disponible en la página http://wambook.sourceforge.net/).
Danvy O., “A rational deconstruction of Landin’s SECD Machine”, BRICS, 2003 (disponible en format PostScript, PDF y DVI en la página
http://www.brics.dk/RS/03/33/).
Bowen J., “Formal specification and documentation using Z – A Case study approach”, 2003 (disponible en PDF en http://www.zuser.org/zbook).
Bibliografía Complementaria
Michaelson G., “An Introduction to Functional Programming Through Lambda Calculus”, Addison-Wesley, 1989 (disponible en formato PostScript en
http://www.macs.hw.ac.uk/~greg/books/).
Jones S.L.P., “The Implementation Of Functional Programming Languages”, Prentice-Hall, 1987 (disponible en formato DJVU, PDF y HTML en la página web
http://research.microsoft.com/enus/um/people/simonpj/papers/slpj-book-1987/). Slonegger K., Kurtz B.L., “Formal Syntax and Semantics of Programming
Languages”, Addison-Wesley, 1995 (disponible en format PDF en
http://www.cs.uiowa.edu/~slonnegr/plf/Book/). Bramer M., “Logic Programming With Prolog”, Springer, 2005.
Nilsson U., Maluszynski J., “Logic, Programming and Prolog”, 2nd Ed, John Wiley & Sons Ltd, 1995 (disponible en format PDF en http://www.ida.liu.se/~ulfni/lpp/). Stark R., Schmid J., Borger E., “Java and the Java Virtual Machine”, Springer-Verlag, 2001.