Matemáticas

Grado y Doble Grado. Curso 2024/2025.

DISEÑO DE ALGORITMOS - 800615

Curso Académico 2024-25

Datos Generales

SINOPSIS

COMPETENCIAS

Generales
CG1 - Comprender y utilizar el lenguaje matemático. Adquirir la capacidad para enunciar proposiciones en distintos campos de la Matemática, para construir demostraciones y para transmitir los conocimientos matemáticos adquiridos.

CG3 - Asimilar la definición de un nuevo objeto matemático, en términos de otros ya conocidos, y ser capaz de utilizar este objeto en diferentes contextos.

CG4 - Saber abstraer las propiedades estructurales (de objetos matemáticos, de la realidad observada, y de otros ámbitos) distinguiéndolas de aquellas puramente ocasionales y poder comprobarlas con demostraciones o refutarlas con contraejemplos, así como identificar errores en razonamientos incorrectos.

Transversales
CT2 - Saber aplicar sus conocimientos a su trabajo o vocación de una forma profesional y poseer las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y en la resolución de problemas.

CT4 - Poder transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado.

CT5 - Haber desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.
Específicas
Relacionar debidamente los mecanismos iterativos y recursivos como medios básicos para describir algoritmos. (CG4, CE5)
Saber calcular el coste de los algoritmos, tanto iterativos como recursivos. (CE1)
Conocer los métodos generales de diseño de algoritmos, y ser capaz de utilizarlos de manera más o menos mecánica para resolver problemas complejos, siendo consciente de la complejidad de los algoritmos que se obtengan en cada caso. (CG1, CG3, CE1, CE5)

ACTIVIDADES DOCENTES

Clases teóricas
Exposición del contenido básico de los temas y presentación de ejemplos representativos que ilustren las distintas técnicas y métodos.
Seminarios
Exposición de temas complementarios preparados por los alumnos.
Clases prácticas
Realización de ejercicios. Discusión de las soluciones aportadas por los alumnos a los ejercicios más interesantes.
Laboratorios
Realización de prácticas de programación y verificación de algoritmos.
Otras actividades
Implementación en algún lenguaje de programación de los algoritmos diseñados para algunos de los ejercicios propuestos.

Presenciales

2

No presenciales

4

Semestre

8

Breve descriptor:

Verificacion y derivacion de programas correctos. Esquemas algoritmicos para la resolucion de problemas.

Requisitos

Informática, Lógica matemática y Estructuras de datos.

Objetivos

El objetivo principal de esta asignatura es que los alumnos aprendan a utilizar metodologías y técnicas para el diseño y desarrollo de programas correctos de tamaño medio. Se estudian los métodos generales de diseño de algoritmos y cómo aplicarlos en el desarrollo de soluciones para problemas variados. Se aprenderá a valorar cuál de los distintos métodos aplicables al desarrollo de una solución es mejor para cada caso concreto desde el punto de vista de la complejidad.

Contenido

-Diseño de algoritmos sencillos correctos: Especificación de algoritmos. Diseño y análisis de algoritmos iterativos y recursivos.
-Métodos generales de programación: Método divide y vencerás. Algoritmos voraces. Programación Dinámica. Métodos de exploración exhaustiva: vuelta atrás y ramificación y poda.

Evaluación

La calificación final tendra en cuenta:

Exámenes sobre la materia: 75%

Entrega de prácticas y ejercicios: 25%

En la convocatoria extraordinaria se tendrá en cuenta la entrega de prácticas y ejercicios (25%) realizados durante el curso y la realización del examen final (75%).

Para aprobar la asignatura es necesario obtener un mínimo de 5 puntos en el examen.

En los exámenes se plantearán ejercicios similares a los resueltos durante el curso.

Bibliografía

- Martí Oliet, N., Segura, C., Verdejo, J.A. (2012), Algoritmos correctos y eficientes: diseño razonado ilustrado con ejercicios, Garceta Grupo Editorial.
- Martí Oliet, N., Ortega Mallén,Y., Verdejo, J.A. (2013), Estructuras de datos y métodos algorítmicos - 213 Ejercicios resueltos (2ª Edición), Garceta Grupo Editorial.
- Peña Marí, R. (2005), Diseño de programas. Formalismo y abstracción (3ª edición), Prentice Hall.
- Peña Marí, R. (2019), Algoritmos y estructuras de datos. Con programas verificados en Dafny, Garceta Grupo Editorial.
- Brassard, G., Bratley, P. (1996), Fundamentals of algorithmics, Prentice Hall International. Versión en castellano: Fundamentos de algoritmia, Prentice Hall, 1997.
- Neapolitan, R., (2015), Foundations of algorithms, Jones & Bartlett Publishers.
- Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C. (2009) Introduction to algorithms (3ª edición), The MIT Press.
- Leino, K.R.M. (2022), Program Proofs. The MIT Press, 2023.
- Skiena, S. S. (2020), The Algorithm Design Manual (3ª edición), Springer, 2020.

Otra información relevante

La asignatura dispondrá de un espacio en el Campus virtual que albergará la documentación que se considere necesaria, un foro de discusión y un sistema de intercambio de mensajes alumno-profesor.

Estructura

MódulosMaterias
CIENCIAS DE LA COMPUTACIÓNFUNDAMENTOS DE LA PROGRAMACIÓN

Grupos

Clases teóricas
GrupoPeriodosHorariosAulaProfesor
Grupo único20/01/2025 - 09/05/2025LUNES 09:00 - 10:00S-106MANUEL MONTENEGRO MONTES
MIÉRCOLES 09:00 - 10:00S-106MANUEL MONTENEGRO MONTES


Clases prácticas
GrupoPeriodosHorariosAulaProfesor
Grupo único20/01/2025 - 09/05/2025JUEVES 11:00 - 12:00S-106MANUEL MONTENEGRO MONTES


Clases aula de informática
GrupoPeriodosHorariosAulaProfesor
Subgrupo U120/01/2025 - 09/05/2025MARTES 09:00 - 10:00INF4 Aula de InformáticaMANUEL MONTENEGRO MONTES
Subgrupo U220/01/2025 - 09/05/2025MARTES 13:00 - 14:00INF4 Aula de InformáticaMANUEL MONTENEGRO MONTES