Última revisión realizada: 23/05/2022
Denominación de la asignatura |
Diseño Avanzado de Algoritmos |
Grado al que pertenece |
Grado en Ingeniería Informática |
Créditos ECTS |
6 |
Curso y cuatrimestre en el que se imparte |
Primer cuatrimestre |
Materia |
Programación y Algoritmia III |
Carácter de la asignatura | Optativa |
Esta es una asignatura práctica en la que se van a aplicar a multitud de problemas de todo tipo las técnicas de diseño de algoritmos más utilizadas. Asimismo se aprenderá a verificar de forma certera si un programa en efecto cumple sus especificaciones.
El profundo cambio que ha supuesto en nuestro modo de vivir, no solamente en la informática y el tratamiento de la información, los algoritmos en los que se basa Google, basta para hacerse una idea de la importancia fundamental que tiene una asignatura como ésta.
En esta asignatura se va a profundizar en las técnicas de diseño de algoritmos, o si se quiere en las técnicas de resolución de problemas. No se va a centrar en un lenguaje de programación en concreto, aunque la posibilidad de implementar un algoritmo en una aplicación que pueda ser ejecutada en un ordenador, es fundamental para entender el funcionamiento y la eficiencia de los algoritmos que veamos.
Hablando de eficiencia, es un concepto fundamental a la hora de juzgar la bondad de los algoritmos. Evidentemente se pide que un algoritmo resuelve un problema dado, pero también se le pide que lo haga con los recursos adecuados de los que disponemos o de los que podemos disponer razonablemente. La tecnología de nuestros computadores avanza al parecer exponencialmente, pero al mismo tiempo la cantidad de datos que deseamos, no, que necesitamos procesar en el mismo tiempo crece a un ritmo siempre mayor.Competencias básicas
Competencias generales
Competencias específicas
Competencias transversales
Tema 1. Análisis de algoritmos recursivos
Introducción
Planteamiento y resolución de ecuaciones de recurrencia homogéneas y no homogéneas.
Ejercicios de ecuaciones de recurrencia
Tema 2. Divide y conquista
Introducción
Descripción general de la estrategia
Ejemplos de algoritmos: divide y conquista
Tema 3. Análisis amortizado
Introducción
El análisis agregado
El método de contabilidad
El método del potencial
Tema 4. Programación dinámica
Introducción
Características de la programación dinámica
Ejemplos de algoritmos de programación dinámica
Tema 5. Algoritmos para problemas NP
Introducción
Vuelta atrás: backtracking
Ramificación y poda
Tema 6. Optimización combinatoria
Introducción
Representación de problemas
Optimización en 1D
Tema 7. Algoritmos de aleatorización
Introducción
Ejemplos de algoritmos de aleatorización
El teorema Buffon
Algoritmo de Monte Carlo
Algoritmo Las Vegas
Tema 8. Optimización multiobjetivo
Representación y modelización
Fórmula ponderada
Aproximación lexicográfica
Fronteras de Pareto
Tema 9. Algoritmos de optimización con campos aleatorios
Introducción
Modelización del campo aleatorio
Estimación de parámetros
Tema 10. Resolución numérica de ecuaciones no lineales
Introducción
El método de la bisección
El método de Newton-Raphson
El método de la secante
Tema 11. Diferenciación e integración
Introducción
Diferenciación numérica
Integración numérica
Tema 12. Algoritmos paralelos
Introducción
Operaciones binarias paralelas
Operaciones paralelas con grafos
Paralelismo en divide y vencerás
Paralelismo en programación dinámica
Las actividades formativas de la asignatura se han elaborado con el objetivo de adaptar el proceso de aprendizaje a las diferentes capacidades, necesidades e intereses de los alumnos.
Las actividades formativas de esta asignatura son las siguientes:
En la programación semanal puedes consultar cuáles son las actividades concretas que tienes que realizar en esta asignatura.
Estas actividades formativas prácticas se completan, por supuesto, con estas otras:
Las horas de dedicación a cada actividad se detallan en la siguiente tabla:
ACTIVIDADES FORMATIVAS |
HORAS |
% PRESENCIAL |
Sesiones presenciales virtuales | 15 |
100% |
Recursos didácticos audiovisuales | 6 |
0 |
Estudio del material básico | 50 |
0 |
Lectura del material complementario | 25 |
0 |
Trabajos, casos prácticos, test | 17 |
0 |
Prácticas de laboratorios virtuales | 12 |
16,7% |
Tutorías | 16 |
30% |
Trabajo colaborativo | 7 |
0 |
Realización de examen final presencial | 2 |
100% |
Total | 150 |
Bibliografía básica
Los textos necesarios para el estudio de la asignatura han sido elaborados por UNIR y están disponibles en formato digital para consulta, descarga e impresión en el aula virtual.
Además, en algunos temas deberás estudiar el siguiente manual de la asignatura:
Brassard, P. B. & Bratley, T. (1997). Fundamentos de algoritmia. Madrid: Pearson.
Díaz de Ilarraza, A. y Lucio, F. (1990). Verificación de programas y metodología de la programación. Bilbao: Universidad del País Vasco.
Guerequeta, R. & Vallecillo, A. (1998). Técnicas de diseño de algoritmos. Málaga: Universidad de Málaga.
Navarro, G. (2012). Teoría de la computación. Chile: Universidad de Chile.
Vargas, L. E. (2010). Problemas y algoritmos. Autoedición: Etnassoft.
Bibliografía complementaria
Erciyes, K. (2018). Guide to Graph Algorithms: Sequential, Parallel and Distributed. Nueva York: Springer.
Horowitz, E. & Sahni, S. (1984). Fundamentals of computer algorithms. Nueva Delhi: Galgotia Publications.
Kaldewaij, A. (1990). Programming: the derivation of algorithms. New Jersey: Prentice Hall.
Knuth, D. E. (1980). Algoritmos fundamentales. Barcelona: Reverté.
Knuth, D. E. (1986). Seminuméricos. Barcelona: Reverté.
Knuth, D. E. (1987). Algoritmos combinatorios. Barcelona: Reverté.
Knuth, D. E. (1987). Clasificación y búsqueda. Barcelona: Reverté.
Riolo, R. y Worzel, B. (2018). Genetic Programming Theory and Practice. Nueva York: Springer.
Sedgewick, R. (1995). Algoritmos en C++. Madrid: Ediciones Díaz de Santos.
Wirth, N. (1986). Algoritmos + estructuras de datos. México: Ediciones Castillo.
El sistema de calificación se basa en la siguiente escala numérica:
0 - 4, 9 |
Suspenso |
(SS) |
5,0 - 6,9 |
Aprobado |
(AP) |
7,0 - 8,9 |
Notable |
(NT) |
9,0 - 10 |
Sobresaliente |
(SB) |
La calificación se compone de dos partes principales:
El examen se realiza al final del cuatrimestre y es de carácter PRESENCIAL U ONLINE y OBLIGATORIO. Supone el 60% de la calificación final y para que la nota obtenida en este examen se sume a la nota final, es obligatorio APROBARLO.
La evaluación continua supone el 40% de la calificación final. Este 40% de la nota final se compone de las calificaciones obtenidas en las diferentes actividades formativas llevadas a cabo durante el cuatrimestre.
Ten en cuenta que la suma de las puntuaciones de las actividades de la evaluación continua permite que realices las que prefieras hasta conseguir el máximo puntuable mencionado en la programación semanal. En ella se detalla la calificación máxima de cada actividad o evento concreto puntuables.
Para aprobar la asignatura será necesario aprobar cada una de las partes.
El sistema de evaluación de la asignatura es el siguiente:
SISTEMA DE EVALUACIÓN |
PONDERACIÓN MIN. |
PONDERACIÓN MÁX. |
Prueba de evaluación final | 60% |
60% |
Evaluación de prácticas de laboratorios virtuales | 0% |
40% |
Resolución de trabajos, proyectos y casos | 0% |
40% |
Test de autoevaluación | 0% |
20% |
Participación en foros y otros medios participativos | 0% |
40% |
Andrés Gaspar Castillo Sanz
Formación: Doctor en Ingeniería del Software por la Universidad Pontificia de Salamanca. Licenciado en Ciencias Físicas y Sociología.
Experiencia: Profesor Universitario desde hace veinticinco años. Investigador en temas de salud en el Hospital Niño Jesús y en temas sociales con Cáritas y otras ONGs.
Líneas de investigación: En el terreno de Ingeniería Informática ha investigado y dirigido varias tesis doctorales y publicaciones en torno a los sistemas multiagentes, la inteligencia artificial y la seguridad. En el ámbito de la investigación social sus aportaciones se centran en los movimientos sociales, el análisis e intervención frente a la pobreza y la exclusión social y las metodologías de la educación no formal.
Obviamente, al tratarse de formación on-line puedes organizar tu tiempo de estudio como desees, siempre y cuando vayas cumpliendo las fechas de entrega de actividades, trabajos y exámenes. Nosotros, para ayudarte, te proponemos los siguientes pasos:
Ten en cuenta estos consejos…
|