Matemáticas
Grado y Doble Grado. Curso 2025/2026.
TEORÍA DE LA PROGRAMACIÓN - 800617
Curso Académico 2025-26
Datos Generales
- Plan de estudios: 0803 - GRADO EN MATEMÁTICAS (2009-10)
- Carácter: Optativa
- 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.
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.
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..
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..
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.
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 correcció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 corrección.
Aplicaciones.
Requisitos
Es altamente recomendable haber cursado Lógica Matemática. También son útiles algunos de los conceptos estudiados en Programación declarativa, Estructuras de datos y Diseño de algoritmos.
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
Contenido
- Inducción en sus distintas variantes.
- Semántica operacional, denotacional y axiomática para un lenguaje imperativo sencillo.
- 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 |
---|---|
CONTENIDOS AVANZADOS DE CIENCIAS DE LA COMPUTACIÓN | PARADIGMAS DE PROGRAMACIÓN |
Grupos
Clases teóricas | ||||
---|---|---|---|---|
Grupo | Periodos | Horarios | Aula | Profesor |
Grupo único | 19/01/2026 - 08/05/2026 | LUNES 12:00 - 13:00 | 112 | DAVID DE FRUTOS ESCRIG |
MARTES 12:00 - 13:00 | 112 | DAVID DE FRUTOS ESCRIG |
Clases prácticas | ||||
---|---|---|---|---|
Grupo | Periodos | Horarios | Aula | Profesor |
Grupo único | 19/01/2026 - 08/05/2026 | LUNES 13:00 - 14:00 | 112 | DAVID DE FRUTOS ESCRIG |
MIÉRCOLES 12:00 - 13:00 | 112 | DAVID DE FRUTOS ESCRIG |