Guías Docentes Electrónicas
1. DATOS GENERALES
Asignatura:
PROGRAMACIÓN DECLARATIVA
Código:
42343
Tipología:
OPTATIVA
Créditos ECTS:
6
Grado:
407 - GRADO EN INGENIERÍA INFORMÁTICA (CR) (20)
Curso académico:
2023-24
Centro:
108 - ESCUELA SUPERIOR DE INFORMATICA C. REAL
Grupo(s):
20 
Curso:
3
Duración:
C2
Lengua principal de impartición:
Español
Segunda lengua:
Inglés
Uso docente de otras lenguas:
Las tutorías pueden impartirse en inglés. Existe documentación técnica en inglés. (Tutoring classes can be taught in English. There is technical documentation in English.)
English Friendly:
N
Página web:
Espacio virtual de la asignatura en https://campusvirtual.uclm.es y, opcionalmente, en https://dectau.uclm.es/Pascual.Julian/
Bilingüe:
N
Profesor: PASCUAL JULIAN IRANZO - Grupo(s): 20 
Edificio/Despacho
Departamento
Teléfono
Correo electrónico
Horario de tutoría
Fermín Caballero / 3.02
TECNOLOGÍAS Y SISTEMAS DE INFORMACIÓN
3716
pascual.julian@uclm.es
Disponible en https://esi.uclm.es/index.php/grado-eningenieria-informatica/profesorado/

2. REQUISITOS PREVIOS

Esta asignatura se imparte en el  tercer curso de la titulación, lo que permite asumir que los alumnos que  la vayan a cursar, ya tendrán el suficiente entrenamiento en otras disciplinas afines que les habrán aportado conocimientos, capacidades y niveles de abstracción suficientes para  asimilar convenientemente los contenidos que se imparten en la misma.

En lo que respecta a conocimientos previos, se espera una formación media en:

- Formalismos Matemáticos. Aquí se pone especial  énfasis en los conocimientos referentes a lógica matemática y, en menor medida, álgebra, ya que suponen  la base formal de los  lenguajes lógicos y funcionales que se estudian clásicamente dentro del paradigma declarativo.

- Lenguajes y Técnicas de Programación. El alumno debe estar suficientemente familiarizado con algunos lenguajes de programación de estilo imperativo u orientado objeto, así como con técnicas de programación básicas, que en general no tengan por qué ser totalmente dependientes de un lenguaje de programación concreto para su implementación final. Esto permitirá contrastar de forma más satisfactoria el nuevo paradigma declarativo con otros estilos de programación, resaltando el amplio repertorio de recursos expresivos que aportan a la hora de codificar la solución a un problema minimizando el tamaño de las aplicaciones.

- Algorítmica y Estructuras de Datos. En relación con el apartado anterior, se espera que el alumno conozca  las estructuras de datos y los esquemas algorítmicos básicos a la hora de representar y manipular la información de forma conveniente, para que Posteriormente pueda simplificar tanto las tareas de implementación y mantenimiento, como el cálculo de coste computacional haciendo uso de tecnología declarativa.

- Teoría de Autómatas y Computación. Puesto que la programación declarativa viene aportando lenguajes de programación con altos niveles de abstracción y sólida cimentación matemática, se espera que el alumno conozca y sepa aplicar los fundamentos de la teoría de lenguajes formales, especificaciones algebraicas y métodos formales de la ingeniería del software.

 

Más específicamente se espera que el alumno posea las competencias y los conocimientos adquiridos en las asignaturas de:

- Lógica

- Fundamentos de Programación I y II

- Metodología de la Programación

- Estructuras de Datos 

3. JUSTIFICACIÓN EN EL PLAN DE ESTUDIOS, RELACIÓN CON OTRAS ASIGNATURAS Y CON LA PROFESIÓN

La programación declarativa se basa en la idea de utilizar un cierto tipo de lógica como lenguaje de programación. Esto incluye tanto la programación lógica (o relacional, que usa un lenguaje clausal para programar y el principio de resolución como mecanismo de ejecución) como la funcional (que usa el lenguaje de las funciones matemáticas y la reducción de expresiones como mecanismo computacional).

La programación declarativa ha encontrado una gran variedad de aplicaciones. Sin ánimo de ser exhaustivos, podemos enumerar algunas de éstas:

Procesamiento del lenguaje natural. Representación del conocimiento. Química y biología molecular. Desarrollo de Sistemas de Producción y Sistemas Expertos. Resolución de Problemas. Metaprogramación. Prototipado de aplicaciones. Bases de Datos Deductivas. Servidores y buceadores de información inteligentes. Web Semántica. Diseño de sistemas VLSI. Herramientas de soporte al desarrollo del software.

Lo que da idea de la relevancia de esta materia y justifica su inclusión en un plan de estudios de ingeniería informática.

Más generalmente, la programación declarativa se ha aplicado en todos los campos de la computación simbólica (y por esto también los lenguajes declarativos se denominan a veces, lenguajes de computación simbólica, en contraposición a los lenguajes más tradicionales orientados a la computación numérica), la inteligencia artificial y la informática teórica (e.g., teoría de tipos).

 

La asignatura de Programación Declarativa se integra en la materia de Tecnología Específica de Computación del plan de estudios y sirve de fundamento a, o se relaciona directamente con, las siguientes asignaturas:

  • 		Sistemas basados en el Conocimiento
  • 		Diseño de Sistemas Interactivos

4. COMPETENCIAS DE LA TITULACIÓN QUE LA ASIGNATURA CONTRIBUYE A ALCANZAR
Competencias propias de la asignatura
Código Descripción
CM01 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.
INS01 Capacidad de análisis, síntesis y evaluación.
INS04 Capacidad de resolución de problemas aplicando técnicas de ingeniería.
INS05 Capacidad para argumentar y justificar lógicamente las decisiones tomadas y las opiniones.
PER04 Capacidad de relación interpersonal.
SIS01 Razonamiento crítico.
SIS03 Aprendizaje autónomo.
SIS09 Tener motivación por la calidad.
UCLM03 Correcta comunicación oral y escrita.
5. OBJETIVOS O RESULTADOS DE APRENDIZAJE ESPERADOS
Resultados de aprendizaje propios de la asignatura
Descripción
Comprender los fundamentos teóricos que sustentan el paradigma de programación declarativa.
Conocer y usar los distintos métodos, técnicas y herramientas para el desarrollo de aplicaciones mediante un lenguaje de programación declarativa.
Resultados adicionales
Descripción
* Proporcionar una perspectiva de la programación declarativa, sus motivaciones, sus ventajas y sus defectos (en particular, en comparación con el estilo de programación imperativo).

* Mostrar que es posible caracterizar diferentes subconjuntos de la lógica para los que existen métodos eficientes de deducción automática y comprender que dichos subconjuntos pueden armarse como un lenguaje de programación.

* Entender los mecanismos computacionales asociados a un lenguaje programación declarativa y controlar los mecanismos de deducción correspondientes, aprendiendo a combinar corrección con eficiencia.

* Introducir conceptos sobre la teoría de los lenguajes de programación que son difíciles de abordar cuando se emplean otros paradigmas. Por ejemplo: el concepto de lenguaje de programación como sistema formal; la necesidad e importante utilidad práctica de una definición semántica formal para los lenguajes de programación, etc.

* Mostrar la relación de esta materia con otras disciplinas de la Informática, ya que se pretende capacitar al lector para que pueda aplicar las ideas y técnicas propias de la programación declarativa a otros campos de la informática.

*Transmitir el enorme potencial de la programación declarativa para dar satisfacción a las crecientes demandas comerciales de software de calidad.
6. TEMARIO
  • Tema 1: INTRODUCCIÓN
    • Tema 1.1: Presentación de la Asignatura
    • Tema 1.2: Una Panorámica de la Programación Declarativa
  • Tema 2: PROGRAMACIÓN LÓGICA.
    • Tema 2.1: Demostración Automática y Programación Lógica.
    • Tema 2.2: Programación Lógica.
    • Tema 2.3: El Lenguaje Prolog: Introducción.
    • Tema 2.4: El Lenguaje Prolog: Aspectos y Técnicas Avanzados.
  • Tema 3: PROGRAMACIÓN FUNCIONAL.
    • Tema 3.1: Técnicas Básicas de la Programación funcional usando Haskell.
    • Tema 3.2: Características Avanzadas: abstracción y orden superior.
    • Tema 3.3: Modos de evaluación.
7. ACTIVIDADES O BLOQUES DE ACTIVIDAD Y METODOLOGÍA
Actividad formativa Metodología Competencias relacionadas (para títulos anteriores a RD 822/2021) ECTS Horas Ev Ob Descripción
Enseñanza presencial (Teoría) [PRESENCIAL] Método expositivo/Lección magistral CM01 0.6 15 N N Exposición del temario por parte del profesor. (MAG)
Tutorías individuales [PRESENCIAL] Combinación de métodos CM01 INS05 SIS01 SIS09 UCLM03 0.18 4.5 N N Tutorías individuales o en pequeños grupos en el despacho del profesor, clase o laboratorio. (TUT)
Estudio o preparación de pruebas [AUTÓNOMA] Trabajo autónomo CM01 INS01 SIS01 SIS03 SIS09 1.8 45 N N Estudio y trabajo individuales. (EST)
Otra actividad no presencial [AUTÓNOMA] Prácticas CM01 INS01 INS04 PER04 SIS03 SIS09 UCLM03 0.9 22.5 N N Preparación de prácticas de laboratorio. (PLAB)
Resolución de problemas o casos [PRESENCIAL] Seminarios CM01 INS01 INS04 PER04 SIS01 SIS09 0.6 15 S N Resolución de ejercicios o casos por parte del profesor y los estudiantes. (PRO)
Elaboración de informes o trabajos [AUTÓNOMA] Trabajo autónomo CM01 INS01 INS04 INS05 PER04 SIS01 SIS03 SIS09 UCLM03 0.9 22.5 S N Elaboración de informes sobre temas propuestos por el profesor. (RES)
Prácticas de laboratorio [PRESENCIAL] Trabajo en grupo CM01 INS04 PER04 SIS03 SIS09 0.72 18 S S Realización en el laboratorio de las prácticas programadas. (LAB)
Presentación de trabajos o temas [PRESENCIAL] Método expositivo/Lección magistral CM01 INS01 INS04 INS05 SIS01 SIS09 UCLM03 0.1 2.5 S N Exposición pública de trabajos por parte de los alumnos. (EVA)
Prueba final [PRESENCIAL] Pruebas de evaluación CM01 INS01 INS04 INS05 SIS01 SIS09 UCLM03 0.2 5 S S Realización de un examen final de todo el temario de la asignatura. (EVA)
Total: 6 150
Créditos totales de trabajo presencial: 2.4 Horas totales de trabajo presencial: 60
Créditos totales de trabajo autónomo: 3.6 Horas totales de trabajo autónomo: 90

Ev: Actividad formativa evaluable
Ob: Actividad formativa de superación obligatoria (Será imprescindible su superación tanto en evaluación continua como no continua)

8. CRITERIOS DE EVALUACIÓN Y VALORACIONES
Sistema de evaluación Evaluacion continua Evaluación no continua * Descripción
Elaboración de trabajos teóricos 15.00% 15.00% Resolución de un caso práctico / teórico de complejidad media. Actividad no obligatoria y recuperable a realizar antes del fin del periodo docente. Para los estudiantes de modalidad no continua se acordará un plazo de entrega alternativo en la convocatoria ordinaria.
Elaboración de memorias de prácticas 25.00% 25.00% Evalúa las prácticas de Laboratorio. Actividad obligatoria y recuperable a realizar en las sesiones de laboratorio. Los estudiantes de modalidad no continua serán evaluados de esta actividad a través de un sistema alternativo en la convocatoria ordinaria.
Presentación oral de temas 10.00% 10.00% Corresponde a la presentación de un caso práctico (a seleccionar sobre una lista de temas disponibles). Actividad no obligatoria y recuperable. Para los estudiantes de modalidad no continua se acordará un plazo de entrega alternativo en la convocatoria ordinaria.
Prueba final 50.00% 50.00% Actividad obligatoria y recuperable a realizar en la fecha prevista para el examen final de la convocatoria ordinaria.
Total: 100.00% 100.00%  
* En Evaluación no continua se deben definir los porcentajes de evaluación según lo dispuesto en el art. 4 del Reglamento de Evaluación del Estudiante de la UCLM, que establece que debe facilitarse a los estudiantes que no puedan asistir regularmente a las actividades formativas presenciales la superación de la asignatura, teniendo derecho (art. 12.2) a ser calificado globalmente, en 2 convocatorias anuales por asignatura, una ordinaria y otra extraordinaria (evaluándose el 100% de las competencias).

Criterios de evaluación de la convocatoria ordinaria:
  • Evaluación continua:
    En las actividades obligatorias se debe obtener un mínimo de 4 sobre 10 para considerar la actividad superada y poder aprobar la asignatura. Una misma actividad evaluable obligatoria no podrá dividirse en partes eliminatorias ni establecerse notas mínimas en cada una de sus partes. En las actividades recuperables existe una prueba de evaluación alternativa en la convocatoria extraordinaria.

    La prueba final será común para todos los grupos de teoría/laboratorio de la asignatura y será calificada por los profesores de la asignatura de forma horizontal, es decir, cada una de las partes de la prueba final será evaluada por el mismo profesor para todos los estudiantes.

    El estudiante aprueba la asignatura si obtiene un mínimo de 50 puntos sobre 100 con las valoraciones de cada actividad de evaluación y supera todas las actividades obligatorias.

    Para los estudiantes que no aprueben la asignatura en la convocatoria ordinaria, la calificación de las actividades superadas se conservará para la convocatoria extraordinaria. Si una actividad no es recuperable, su valoración se conservará para la convocatoria extraordinaria aunque no se haya superado. En el caso de actividades recuperables superadas, el estudiante podrá presentarse a la evaluación alternativa de esas actividades en la convocatoria extraordinaria y, en ese caso, la nota final de la actividad corresponderá a la última nota obtenida.

    La calificación de las actividades superadas en cualquier convocatoria, exceptuando la prueba final, se conservará para el próximo curso académico a petición del estudiante siempre que ésta sea igual o superior a 5 y no se modifique las actividades formativas y los criterios de evaluación de la asignatura en el próximo curso académico.

    La no comparecencia a la prueba final supondrá la calificación de "No presentado". Si el estudiante no ha superado alguna actividad de evaluación obligatoria, la nota final en la asignatura no puede superar el 4 sobre 10.
  • Evaluación no continua:
    Los estudiantes pueden solicitar, al principio del cuatrimestre, acogerse a la modalidad de evaluación no continua. Del mismo modo, el estudiante podrá cambiarse a la modalidad de evaluación no continua siempre que no haya participado durante el periodo de impartición de clases en actividades evaluables que supongan en su conjunto al menos el 50% de la evaluación total de la asignatura. Si un estudiante ha alcanzado ese 50% de actividades evaluables o si, en cualquier caso, el periodo de clases hubiera finalizado, se considerará en evaluación continua sin posibilidad de cambiar de modalidad de evaluación.

    Los estudiantes que se acogen a la modalidad de evaluación no continua serán calificados globalmente, en 2 convocatorias anuales, una ordinaria y otra extraordinaria, evaluándose el 100% de las competencias, a través de los sistemas de evaluación indicados en la columna "Evaluación no continua".

    En la modalidad de evaluación "no continua" no existe la obligatoriedad de conservar la nota obtenida por el estudiante en las actividades o pruebas (de progreso o parciales) que haya realizado en modalidad de evaluación continua.

Particularidades de la convocatoria extraordinaria:
Se realizará pruebas de evaluación para todas las actividades recuperables. La no comparecencia a la prueba final supondrá la calificación de "No presentado", salvo en el caso en que el estudiante conserve la nota de dicha prueba de la convocatoria ordinaria. En este último caso, la realización por parte del estudiante de cualquier otra actividad evaluable en la convocatoria extraordinaria supondrá la calificación numérica en el acta.
Particularidades de la convocatoria especial de finalización:
Tendrá las mismas características que la convocatoria extraordinaria.
9. SECUENCIA DE TRABAJO, CALENDARIO, HITOS IMPORTANTES E INVERSIÓN TEMPORAL
No asignables a temas
Horas Suma horas

Tema 1 (de 3): INTRODUCCIÓN
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 1
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo autónomo] 1
Resolución de problemas o casos [PRESENCIAL][Seminarios] 1
Periodo temporal: Semana 1
Grupo 21:
Inicio del tema: 01-02-2024 Fin del tema: 03-02-2024
Grupo 20:
Inicio del tema: 01-02-2024 Fin del tema: 03-02-2024
Comentario: Fechas orientativas.

Tema 2 (de 3): PROGRAMACIÓN LÓGICA.
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 9
Tutorías individuales [PRESENCIAL][Combinación de métodos] 2
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo autónomo] 22.5
Otra actividad no presencial [AUTÓNOMA][Prácticas] 15
Resolución de problemas o casos [PRESENCIAL][Seminarios] 9
Elaboración de informes o trabajos [AUTÓNOMA][Trabajo autónomo] 12.5
Prácticas de laboratorio [PRESENCIAL][Trabajo en grupo] 12
Presentación de trabajos o temas [PRESENCIAL][Método expositivo/Lección magistral] 2.5
Periodo temporal: Semanas 2 a la 9
Grupo 20:
Inicio del tema: 06-02-2024 Fin del tema: 31-03-2024
Grupo 21:
Inicio del tema: 06-02-2024 Fin del tema: 31-03-2024
Comentario: Fechas orientativas.

Tema 3 (de 3): PROGRAMACIÓN FUNCIONAL.
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 5
Tutorías individuales [PRESENCIAL][Combinación de métodos] 2.5
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo autónomo] 21.5
Otra actividad no presencial [AUTÓNOMA][Prácticas] 7.5
Resolución de problemas o casos [PRESENCIAL][Seminarios] 5
Elaboración de informes o trabajos [AUTÓNOMA][Trabajo autónomo] 10
Prácticas de laboratorio [PRESENCIAL][Trabajo en grupo] 6
Prueba final [PRESENCIAL][Pruebas de evaluación] 5
Periodo temporal: Semanas 11 a la 15
Grupo 20:
Inicio del tema: 10-04-2024 Fin del tema: 12-05-2024
Grupo 21:
Inicio del tema: 10-04-2024 Fin del tema: 12-05-2024
Comentario: Fechas orientativas.

Actividad global
Actividades formativas Suma horas
Comentarios generales sobre la planificación: La asignatura se imparte en tres sesiones semanales de 1,5 horas.
10. BIBLIOGRAFÍA, RECURSOS
Autor/es Título Libro/Revista Población Editorial ISBN Año Descripción Enlace Web Catálogo biblioteca
Apt, Krysztof From logic programming to prolog Hemel Hempstead Prentice-Hall 0-13-230-368-X 1999 Manual complementario Ficha de la biblioteca
Bird, Richard Introducción a la programación funcional con Haskell Prentice Hall 84-8322-176-4 2000 Manual básico de la asignatura Ficha de la biblioteca
Bratko, Ivan Prolog : programming for artificial intelligence Addison-Wesley 0-201-40375-7 2001 Manual complementario Ficha de la biblioteca
Field, A. J. & Harrison, P. G. Functional programming Addison-Wesley 0-201-19249-7 1989 Manual complementario Ficha de la biblioteca
Julián Iranzo, P. & Alpuente Frasnedo, M. Programación lógica : teoría y práctica Madrid Pearson Prentice Hall 978-84-8322-368-0 2007 Manual básico de la asignatura Ficha de la biblioteca



Web mantenido y actualizado por el Servicio de informática