Ingeniería Informática - Matemáticas Plan 2019
Grado y Doble Grado. Curso 2025/2026.
TEORÍA DE LA PROGRAMACIÓN - 900227
Curso Académico 2025-26
Datos Generales
- Plan de estudios: DT32 - DOBLE GRADO EN INGENIERÍA INFORMÁTICA - MATEMÁTICAS (2019) (2019-20)
- Carácter: Obligatoria
- ECTS: 6.0
SINOPSIS
COMPETENCIAS
Generales
Comprender cómo funcionan las construcciones de un lenguaje de programación y ser capaces de describir su comportamiento de forma detallada y precisa.
Transversales
Aplicar distintas técnicas matemáticas al estudio de los lenguajes de programación y los programas escritos en ellos. En ocasiones se tratará de teorías y conceptos previamente estudiados y en otras de variantes nuevas, que generarán
una sinergia entre la nueva materia y las otras previamente estudiadas.
una sinergia entre la nueva materia y las otras previamente estudiadas.
Específicas
- Ser capaces de describir formalmente y analizar el significado de las construcciones básicas de lenguajes de programación correspondientes a varios paradigmas.
- Ser capaces de distinguir y manejar fluidamente los distintos tipos de inducción que se necesitan para manejar los distintos tipos de semánticas y relacionarlas entre sí.
- Explicar los conceptos y resultados fundamentales relativos a las semánticas formales de los lenguajes de programación.
- Comparar diferentes descripciones semánticas de un mismo lenguaje de programación, entendiendo el sentido en que son equivalentes y la forma en que se complementan.
- Derivar distintas consecuencias que se siguen de las descripciones semánticas.
- Aplicar lo aprendido para elaborar la definición de otros lenguajes de programación o construcciones adicionales de los mismos.
- Aplicar lo aprendido para precisar el significado de programas concretos y en base a ello probar la corrección de los mismos.
- Ser capaces de distinguir y manejar fluidamente los distintos tipos de inducción que se necesitan para manejar los distintos tipos de semánticas y relacionarlas entre sí.
- Explicar los conceptos y resultados fundamentales relativos a las semánticas formales de los lenguajes de programación.
- Comparar diferentes descripciones semánticas de un mismo lenguaje de programación, entendiendo el sentido en que son equivalentes y la forma en que se complementan.
- Derivar distintas consecuencias que se siguen de las descripciones semánticas.
- Aplicar lo aprendido para elaborar la definición de otros lenguajes de programación o construcciones adicionales de los mismos.
- Aplicar lo aprendido para precisar el significado de programas concretos y en base a ello probar la corrección de los mismos.
ACTIVIDADES DOCENTES
Clases teóricas
Exposición por parte del profesor de los conceptos y resultados más importantes de cada tema. Estas exposiciones serán ilustradas con
ejemplos y ampliadas a partir de las observaciones y preguntas de los alumnos. Estudio por parte de los alumnos del resto de la materia,. trasladando en su caso sus dudas o comentarios en las clases siguientes o asistiendo a las tutorías para que el profesor la clarifique cuando resulte necesario.
El estudio personal incluirá la resolución inmediata de aquellos ejercicios introducidos por los autores del texto que seguiremos a lo largo de cada tema, para que sirvan de "autoevaluación" dejando de manifiesto que se va entendiendo y aprendido la materia.
ejemplos y ampliadas a partir de las observaciones y preguntas de los alumnos. Estudio por parte de los alumnos del resto de la materia,. trasladando en su caso sus dudas o comentarios en las clases siguientes o asistiendo a las tutorías para que el profesor la clarifique cuando resulte necesario.
El estudio personal incluirá la resolución inmediata de aquellos ejercicios introducidos por los autores del texto que seguiremos a lo largo de cada tema, para que sirvan de "autoevaluación" dejando de manifiesto que se va entendiendo y aprendido la materia.
Seminarios
De disponer de tiempo para ello, a lo largo del curso el profesor expondrá las ideas fundamentales de diversos temas complementarios que se proponen como trabajos "voluntarios" a fin de aumentar aún más la nota
de evaluación continua conseguida según los cauces obligatorios que se detallan abajo.
de evaluación continua conseguida según los cauces obligatorios que se detallan abajo.
Clases prácticas
La mayor parte de ellas, sin previo aviso, comenzarán con la propuesta de algún ejercicio sencillo que deberá ser resuelto y entregado en un breve periodo de tiempo. Los ejercicios buscarán poner de manifiesto simplemente que la asignatura se va llevando al día, lo que se considera necesario y suficiente para poder sacar partido a las clases siguientes. Los ejercicios se comentarán en clase, y se espera que quienes encuentren dificultad en ellos aprovechen las tutorías para que consoliden su seguimiento de la materia, lo que es el objetivo buscado con ellos. De detectarse problemas de una cierta entidad de índole general, se darán en clase las ideas fundamentales para resolverlos, urgiendo a los alumnos a completar sus soluciones, para más tarde compararlas con las que el profesor aportará en el Campus con todo detalle, cuando lo considere oportuno.
Presenciales
2
No presenciales
4
Semestre
8
Breve descriptor:
Estudio de las semánticas formales para los lenguajes de programación.
Conceptos fundamentales que soportan las distintas semánticas y las relaciones entre las mismas.
Utilización de los formalismos para describir la semántica de construcciones de los lenguajes, calcular la semántica de programas y analizar las propiedades de los mismos. probando en particular su correección.
Aplicaciones.
Conceptos fundamentales que soportan las distintas semánticas y las relaciones entre las mismas.
Utilización de los formalismos para describir la semántica de construcciones de los lenguajes, calcular la semántica de programas y analizar las propiedades de los mismos. probando en particular su correección.
Aplicaciones.
Requisitos
Serán muy útiles algunos de los conceptos que deberían haber sido estudiados en Estructuras de datos y algoritmos, Métodos algorítmicos en resolución de problemas y Programación declarativa.
Objetivos
Mostrar al alumno la necesidad de contar con definiciones formales del significado de los lenguajes de programación, que permitan precisar lo que calcularán, y cómo, los programas escritos usando los mismos. A partir de ellas se podrá razonar sobre su corrección con respecto a una especificación dada.
Ofrecer al alumno un campo interesante para aplicar distintas técnicas y conceptos matemáticos aprendidos durante la carrera, viendo como utilizarlas para definir la semántica de los lenguajes de programación.
Comprender cómo funcionan las construcciones de los lenguajes de programación y ser capaces de describir su comportamiento de forma detallada y precisa.
Ofrecer al alumno un campo interesante para aplicar distintas técnicas y conceptos matemáticos aprendidos durante la carrera, viendo como utilizarlas para definir la semántica de los lenguajes de programación.
Comprender cómo funcionan las construcciones de los lenguajes de programación y ser capaces de describir su comportamiento de forma detallada y precisa.
Contenido
- Semántica operacional, denotacional y axiomática para un lenguaje imperativo sencillo.
- Aplicaciones.
- Elementos que permiten definir el significado de construcciones más complejas.
- Aplicaciones.
- Elementos que permiten definir el significado de construcciones más complejas.
Evaluación
La metodología que se aplicará exigirá la participación activa del alumno en el "día a día", buscándose
un aprendizaje "continuo" que se pondrá de manifiesto a través de dicha participación.
Un 40% de la nota se conseguirá en base a dicha participación activa a distintos niveles:
Ejercicios entregados EN las clases prácticas (la mitad de ese 40%): sin previo aviso, la mayor parte de esas clases comenzarán con la propuesta de algún ejercicio sencillo, que deberá ser resuelto y entregado en un breve periodo de tiempo. Los ejercicios buscarán poner de manifiesto simplemente que la asignatura se va llevando al día. Su simplicidad deja sin sentido su corrección individualizada, pues lo importante es que cada estudiante se sepa en condiciones de afrontarlos y de entender por sí mismo si los hizo bien.
Participación en las clases teóricas (planteando preguntas, comentarios, etc.)
Ejercicios, tanto sencillos como más complicados, que podrán ser incorporados a un Cuaderno de Ejercicios personal en el CVirtual, aparte de ser discutidos en las clases prácticas. Estas aportaciones NO se evaluarán, pero se tendrá en cuenta su realización, mejor a su debido tiempo. Sin embargo los alumnos podrán (deberían) utilizar las tutorías para discutir con el profesor sus soluciones, en especial cuando les queden dudas sobre su corrección técnica.
La realización de los trabajos voluntarios podrá incrementar la nota de este segundo 20% de la nota final.
El examen final, donde se espera que el alumno ratifique la adquisición de las competencias descritas anteriormente, generará un 60% de la nota. El baremo se mantendrá en la convocatoria extraordinaria, siendo posible presentar ejercicios y trabajos para la misma de manera análoga a como para la ordinaria. Sin embargo, la parte de la nota correspondiente a la participación en las clases no será modificable.
No se exigirá ninguna nota mínima en ninguna de las partes: tan sólo conseguir el 5 entre los tres apartados
un aprendizaje "continuo" que se pondrá de manifiesto a través de dicha participación.
Un 40% de la nota se conseguirá en base a dicha participación activa a distintos niveles:
Ejercicios entregados EN las clases prácticas (la mitad de ese 40%): sin previo aviso, la mayor parte de esas clases comenzarán con la propuesta de algún ejercicio sencillo, que deberá ser resuelto y entregado en un breve periodo de tiempo. Los ejercicios buscarán poner de manifiesto simplemente que la asignatura se va llevando al día. Su simplicidad deja sin sentido su corrección individualizada, pues lo importante es que cada estudiante se sepa en condiciones de afrontarlos y de entender por sí mismo si los hizo bien.
Participación en las clases teóricas (planteando preguntas, comentarios, etc.)
Ejercicios, tanto sencillos como más complicados, que podrán ser incorporados a un Cuaderno de Ejercicios personal en el CVirtual, aparte de ser discutidos en las clases prácticas. Estas aportaciones NO se evaluarán, pero se tendrá en cuenta su realización, mejor a su debido tiempo. Sin embargo los alumnos podrán (deberían) utilizar las tutorías para discutir con el profesor sus soluciones, en especial cuando les queden dudas sobre su corrección técnica.
La realización de los trabajos voluntarios podrá incrementar la nota de este segundo 20% de la nota final.
El examen final, donde se espera que el alumno ratifique la adquisición de las competencias descritas anteriormente, generará un 60% de la nota. El baremo se mantendrá en la convocatoria extraordinaria, siendo posible presentar ejercicios y trabajos para la misma de manera análoga a como para la ordinaria. Sin embargo, la parte de la nota correspondiente a la participación en las clases no será modificable.
No se exigirá ninguna nota mínima en ninguna de las partes: tan sólo conseguir el 5 entre los tres apartados
Bibliografía
- Hanne Riis Nielson y Flemming Nielson, Semantics with Applications. An Appetizer, Springer, 2007.
- Glynn Winskel, The Formal Semantics of Programming Languages, The MIT Press, 1993.
- Glynn Winskel, The Formal Semantics of Programming Languages, The MIT Press, 1993.
Otra información relevante
La asignatura dispondrá de un espacio en el Campus virtual que albergará la documentación que se considere oportuna.
Se facilitarán "transparencias" como guión para facilitar el estudio de la asignatura fuera de las clases, pero en modo alguno se podrá considerar que por medio de las mismas "se cubre" la materia del curso y por tanto se puede suplir la asistencia a clase, que como queda dicho se considera absolutamente fundamental para superar la asignatura.
Se facilitarán "transparencias" como guión para facilitar el estudio de la asignatura fuera de las clases, pero en modo alguno se podrá considerar que por medio de las mismas "se cubre" la materia del curso y por tanto se puede suplir la asistencia a clase, que como queda dicho se considera absolutamente fundamental para superar la asignatura.
Estructura
Módulos | Materias |
---|---|
No existen datos de módulos o materias para esta asignatura. |
Grupos
Clases teóricas | ||||
---|---|---|---|---|
Grupo | Periodos | Horarios | Aula | Profesor |
Grupo único | 19/01/2026 - 08/05/2026 | LUNES 11:00 - 12:00 | 112 | DAVID DE FRUTOS ESCRIG |
MIÉRCOLES 11:00 - 12:00 | 112 | DAVID DE FRUTOS ESCRIG |
Clases prácticas | ||||
---|---|---|---|---|
Grupo | Periodos | Horarios | Aula | Profesor |
Grupo único | 19/01/2026 - 08/05/2026 | MARTES 11:00 - 12:00 | 112 | DAVID DE FRUTOS ESCRIG |
JUEVES 11:00 - 12:00 | 112 | DAVID DE FRUTOS ESCRIG |