Matemáticas
Grado y Doble Grado. Curso 2023/2024.
TEORÍA DE LA PROGRAMACIÓN - 800617
Curso Académico 2023-24
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..
- 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..
- 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, que habrán leído con antelación la parte correspondiente al tema bajo estudio en los libros de referencia.
Seminarios
Resolución de ejercicios sencillos para poner en práctica los conceptos y resultados previamente expuestos.
Puesta en común de las soluciones aportadas por los alumnos a los problemas de mayor entidad
que se les habrán propuesto para su resolución fuera de las clases.
Puesta en común de las soluciones aportadas por los alumnos a los problemas de mayor entidad
que se les habrán propuesto para su resolución fuera de las clases.
Clases prácticas
Resolución de problemas. Discusión de las soluciones aportadas por los alumnos a los ejercicios propuestos.
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
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
- Semántica operacional, denotacional y axiomática para un lenguaje imperativo sencillo.
- Aplicaciones.
- Semántica operacional y denotacional para un lenguaje funcional sencillo.
- Elementos que permiten definir el significado de construcciones más complejas.
- Aplicaciones.
- Semántica operacional y denotacional para un lenguaje funcional sencillo.
- 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", buscandose con ello
un aprendizaje "continuo" que se pondrá de manifiesto a través de dicha participación.
En concreto, un 30% de la nota se conseguirá en base a dicha participación activa a todos los niveles:
clases teóricas (planteando preguntas, comentarios, etc.) , resolución de ejercicios y problemas, preparación y exposición de trabajos, etc.
En consecuencia, el examen final, donde se espera que el alumno ratifique la adquisición de las competencias descritas anteriormente,
generará un 70% de la nota. Salvo posibles excepciones muy justificadas a ser evaluadas por el profesor, el baremo se mantendrá en la
convocatoria extraordinaria, siendo posible presentar ejercicios y trabajos para la misma de manera análoga a la ordinaria.
La parte de la nota correspondiente a la participación, al corresponder con lo realizado durante el curso, no será modificable.
un aprendizaje "continuo" que se pondrá de manifiesto a través de dicha participación.
En concreto, un 30% de la nota se conseguirá en base a dicha participación activa a todos los niveles:
clases teóricas (planteando preguntas, comentarios, etc.) , resolución de ejercicios y problemas, preparación y exposición de trabajos, etc.
En consecuencia, el examen final, donde se espera que el alumno ratifique la adquisición de las competencias descritas anteriormente,
generará un 70% de la nota. Salvo posibles excepciones muy justificadas a ser evaluadas por el profesor, el baremo se mantendrá en la
convocatoria extraordinaria, siendo posible presentar ejercicios y trabajos para la misma de manera análoga a la ordinaria.
La parte de la nota correspondiente a la participación, al corresponder con lo realizado durante el curso, no será modificable.
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.
Probablemente se facilitarán "transparencias" o cualquier tipo de documentación concreta 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.
Probablemente se facilitarán "transparencias" o cualquier tipo de documentación concreta 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 | 22/01/2024 - 10/05/2024 | LUNES 12:00 - 13:00 | 112 | DAVID DE FRUTOS ESCRIG |
MARTES 12:00 - 13:00 | 114 | DAVID DE FRUTOS ESCRIG |
Clases prácticas | ||||
---|---|---|---|---|
Grupo | Periodos | Horarios | Aula | Profesor |
Grupo único | 22/01/2024 - 10/05/2024 | LUNES 13:00 - 14:00 | 112 | DAVID DE FRUTOS ESCRIG |
MIÉRCOLES 12:00 - 13:00 | 112 | DAVID DE FRUTOS ESCRIG |