Lógica Computacional (21422)
Titulación/estudio: Grado en Ingenieria en Informática (3377)
Curso: segundo
Trimestre: tercero
Número de créditos ECTS: 4 créditos
Horas de dedicación del estudiante: 100 horas
Lenuga o lenguas de la docencia: catalán, español, inglés
Profesor: Rafael Ramirez, Victor Dalmau
1. Presentación de la asignatura
La asignatura Lógica Computacional es una asignatura obligatoria que se ofrece durante el Grado en Ingeniería en Informática, formando parte del segundo curso de este grado. En la asignatura se estudian los aspectos deductivos y algorítmicos tanto de la lógica proposicional como de la lógica de predicados, el uso de la lógica para especificar, verificar y razonar sobre programas de ordenador, y para representar problemas computacionales. La asignatura tiene un componente teórico y otro práctico. Dentro del componente teórico el énfasis está en la comprensión de los conceptos a nivel intuitivo y de la utilización de lenguaje matemático.
La asignatura está compuesta de tres actividades principales: clases de teoría, seminarios y laboratorios. En las clases de teoría se introducen los conceptos formales y se muestran ejemplos de su aplicación. En los seminarios los alumnos resuelven pequeños problemas. Cada problema corresponde a uno de los conceptos introducidos en clase de teoría. En los laboratorios se presentan problemas de más complejidad y de carácter más computacional porque los alumnos tengan la oportunidad de poner en práctica los conceptos aprendidos.
2. Prerrequisitos para el seguimiento del itinerario formativo
Los conocimientos previos para el seguimiento de la asignatura son ciertas nociones de matemáticas básicas adquiridas en la enseñanza secundaria obligatoria y durante los primeros tres cursos de los estudios. En particular, los conocimientos previos requeridos para la asignatura son:
•· Nociones algebraicas básicas: funciones, conjuntos y operaciones elementales sobre conjuntos, relaciones de equivalencia.
•· Nociones básicas de lógica matemática: relaciones, conectores lógicos.
•· Aritmética básica.
•· Capacidad básica para comprender y escribir expresiones matemáticas a nivel elemental.
3. Competencias a alcanzar en la asignatura
El objetivo fundamental de la asignatura es que los alumnos adquieran los aspectos fundamentales relacionados con los aspectos deductivos y algorítmicos de la lógica proposicional y de predicados, y su aplicación por especificar, verificar y razonar sobre programas de ordenador.
Competencias generales |
Competencias específicas |
Instrumentales Interpersonales Sistémicas Otras |
1. Capacidad de entender a nivel intuitivo y formal los diferentes aspectos de la lógica proposicional y de predicados: sintaxis, semántica y su aplicación en diferentes problemas en informática. 2. Capacidad de aplicar los conocimientos adquiridos en contextos prácticos. 3. Capacidad de especificar, verificar y razonar sobre programas de ordenador y representar problemas computacionales usando métodos basados en lógica.
|
4. Contenidos
4.1. Bloques de contenido
•- Bloque de contenido 1. Sintaxis y semántica de lógica proposicional y de predicados.
•- Bloque de contenido 2. Programación lógica
•- Bloque de contenido 3. Especificación y verificación formal de programas
4.2. Organización y concreción de los contenidos
Bloque de contenido 1. Sintaxis, semántica de lógica proposicional y de predicados
Conceptos |
Procedimientos |
Actitudes |
1. Lógica proposicional: conectores lógicos, fórmulas, tablas de verdad, interpretaciones, satisfabilidad y validez, manipulación de fórmulas, tableaux semánticos, pruebas deductivas, resolución. 2. Lógica de predicados: cuantificadores, fórmulas, interpretaciones, satisfabilidad y validez, tableaux semánticos, pruebas deductivas, resolución. |
1. Poder entender, especificar y manipular fórmulas proposicionales. Probar satisfabilidad y validez de fórmulas proposicionales. Aplicar métodos como tablas de verdad, tableaux semánticos y resolución en problemáticas concretas. 2. Poder entender, especificar y manipular formulas de lógica de predicados. Probar satisfabilidad y validez de formulas. Aplicar métodos como tableaux semánticos y resolución en problemáticas concretas. |
1. Apreciar los diferentes tipos de formalismos útiles en la lógica y el razonamiento. 2. Disponibilidad para intentar entender conceptos que inicialmente parecen complejos. |
Bloque de contenido 2. Programación lógica
Conceptos |
Procedimientos |
Actitudes |
1. Programas como fórmulas, substituciones, unificación. 2. Resolución SLD, ejecución de programas lógicos. |
1. Entender la relación entre fórmulas en lógica y programas computacionales. 2. Describir el proceso de ejecución en programas lógicos. Implementar diferentes programas lógicos para problemáticas específicas. |
1. Disponibilidad para intentar entender conceptos que inicialmente parecen complejos. 2. Predisposición para adquirir conocimiento sólido de base. |
Bloque de contenido 3. Especificación y verificación formal de programas
Conceptos |
Procedimientos |
Actitudes |
1. Semántica de lenguajes de programación 2. Especificación formal de programas 3. Verificación formal de programas
|
1. Definir la semántica formal de programas imperativos 2. Especificar formalmente la semántica de programas en problemáticas concretas. 3. Verificar formalmente la corrección de programas concretos. |
1. Disponibilidad para intentar entender conceptos que inicialmente parecen complejos. 2. Predisposición para adquirir conocimiento sólido de base 3. Disponibilidad para dedicar el tiempo necesario a cada concepto |
5. Objetivos de aprendizaje
El objetivo de la asignatura es ampliar aspectos deductivos y algorítmicos de la lógica proposicional y de predicados, y poner en práctica su uso para especificar, verificar y razonar sobre programas de ordenador, y para representar problemas computacionales. También, los estudiantes tendrán que desarrollar competencias para entender las diferencias entre los diferentes tipos de lógica e identificar el mejor formalismo para especificar diferentes problemas computacionales.
6. Evaluación
6.1. Criterios generales de evaluación
En la evaluación continuada se tiene en cuenta cada una de las tres actividades que constituyen la asignatura: clases de teoría, laboratorios y seminarios:
T: la evaluación de la teoría mediante un examen final
L: la evaluación de los laboratorios con las prácticas de programación y examen final de prácticas.
S: la evaluación de los seminarios
En la evaluación continuada, hace falta aprobar cada una de las tres actividades por separado y la nota final se obtiene haciendo la media ponderada de la siguiente forma:
Nota Final = 0,6 * T + 0,3 * L + 0,1 * S
El examen de teoría se realizará sobre los contenidos desarrollados en clase de teoría y en los seminarios. Es un examen escrito e individual que evalúa todas las competencias desarrolladas durante la asignatura. Esta evaluación es obligatoria y tiene que ser cualificada con como mínimo un 50% para aprobar la asignatura.
En los laboratorios se realizan una serie de prácticas que ponen a prueba la capacidad de los alumnos de aplicar la teoría en forma de programas en un ordenador. Las prácticas se realizan en pareja, de manera que los alumnos tengan que cooperar y saber comunicarse para resolver los problemas. Esta evaluación también es obligatoria y tiene que ser cualificada como mínimo con un 50% en la parte de prácticas y 50% en la parte de examen final para aprobar la asignatura.
Antes de cada seminario se presentarán problemas a los alumnos para que ellos los resuelvan en equipos de tres antes de la sesión, como una preparación previa al seminario. Estos problemas corresponden a conceptos o conocimientos tratados en clase de teoría. Los alumnos tienen que entregar las soluciones al principio del seminario, y además se pedirá a los alumnos que presenten sus soluciones en la pizarra. En la evaluación se tendrá en cuenta la preparación del seminario, la presencia en él y también el aprovechamiento. La evaluación del trabajo de los seminarios es obligatoria y como se ha dicho, la nota S que se obtenga tiene que ser cualificada como mínimo con un 50% para aprobar la asignatura.
En caso de no aprobar la asignatura en la evaluación continuada expuesta en los puntos anteriores, el alumno tiene el derecho a una convocatoria en el mes de setiembre. La nota de esta convocatoria se obtendrá en un examen de los contenidos de las clases de teoría y en la nota L. En caso de haber suspendido L en la evaluación continuada, se podrá entregar la práctica entera de toda la asignatura y se evaluará de nuevo. Una vez aprobadas T y L por separado, la nota de setiembre se obtendrá de la siguiente manera:
Nota Setiembre = 0,6*T+0,4*L
6.2. Concreción por competencias
Competencias a alcanzar en la asignatura |
Indicador de alcance |
Procedimiento de evaluación |
Distribución temporal |
Competencias generales
Competencias específicas |
1. Capacidad de solucionar problemas abstractos
2. Capacidad de entender y elaborar programas lógicos para la resolución de problemas computacionales prácticos. 3. Capacidad de especificar y verificar formalmente propiedades de programas de ordenador y determinar su corrección. |
1. Evaluación de prácticas, seminarios y del examen final
|
1. Todo el trimestre
1. Todo el trimestre |
7. Bibliografía y recursos didácticos
7.1. Bibliografía básica
Mathematical Logic for Computer Science
Mordechai Ben-Ari
Springer (2003).
7.2 Bibliografia complementaria
Logic in Computer Science
Michael R.A. Huth, Mark D Ryan
Cambridge University Press (2002)
Logic and its Applications
Edmund Burke, Eric Foxley
Prentice Hall (1996)
7.3. Material docente de la asignatura
Web de la asignatura
Apuntes
Colección de ejercicios (con solución)
Enunciados de las prácticas
7.4. Materiales y herramientas de soporte
SWI-Prolog self-extracting .EXE (3.75mb)
Prolog Introductory Tutorial
8. Metodología
El proceso habitual de aprendizaje comienza con una sesión de teoría en la que se presentan ciertos fundamentos teórico-prácticos. Esta actividad se realiza con todo el grupo de estudiantes. El estudiante tendrá que complementar esta actividad con una lectura detallada de sus propios apuntes y el material adicional que el profesor haya proporcionado. Por ejemplo, una sesión de teoría de 2 horas, convenientemente aprovechadas, requerirá un trabajo adicional fuera del aula de 1 hora por parte del estudiante.
Posteriormente se realizarán algunas sesiones de ejercicios, en las cuales el estudiante pone en práctica los conceptos y técnicas presentadas en la sesión de teoría, mediante la resolución de pequeños problemas. Para los primeros ejercicios de la sesión se proporcionarán las soluciones, pero para el resto no. El objetivo es que consoliden los fundamentos para que posteriormente el estudiante pueda resolver problemas de mayor complejidad. Para esta actividad el grupo se divide en cuatro y se realiza en cuatro grupos pequeños de estudiantes.
El siguiente paso en el proceso de aprendizaje es la sesión de prácticas. En ella se proponen unos problemas de medida más grande que requieren integrar diferentes conceptos y técnicas. Las prácticas son incrementales, cada una añadida a la práctica anterior. Esta actividad se realiza por parejas, en grupos de unos 20 estudiantes, y se presupone que continúa fuera del aula.
El último paso en el proceso de aprendizaje de cada bloque de contenidos es el de la resolución de unos ejercicios de autoevaluación, mediante los cuales el alumno puede comprobar si ha adquirido les competencias que posteriormente se evaluaran en el examen final.