Estudia
- Artes y humanidades
- Ciencias
- Ciencias de la salud
- Ciencias sociales y jurídicas
-
Ingeniería y arquitectura
- Doble Grado en Ingeniería Civil e Ingeniería de los Recursos Mineros y Energéticos
- Doble Grado en Ingeniería en Tecnologías y Servicios de Telecomunicación / Grado en Ciencia e Ingeniería de Datos
- Doble Grado en Ingeniería Informática del Software / Grado en Matemáticas
- Doble Grado en Ingeniería Informática en Tecnologías de la Información / Grado en Ciencia e Ingeniería de Datos
- Grado en Ciencia e Ingeniería de Datos
- Grado en Ingeniería Civil
- Grado en Ingeniería de los Recursos Mineros y Energéticos
- Grado en Ingeniería de Organización Industrial
- Grado en Ingeniería de Tecnologías Industriales
- Grado en Ingeniería de Tecnologías Mineras
- Grado en Ingeniería Eléctrica
- Bachelor´s Degree in Industrial Electronics and Automatics Engineering
- Grado en Ingeniería en Geomática
- Grado en Ingeniería en Tecnologías y Servicios de Telecomunicación
- Grado en Ingeniería Forestal y del Medio Natural
- Grado en Ingeniería Forestal y del Medio Natural (En extinción)
- Grado en Ingeniería Informática del Software
- Grado en Ingeniería Informática en Tecnologías de la Información
- Grado en Ingeniería Mecánica
- Grado en Ingeniería Química
- Grado en Ingeniería Química Industrial
- Grado en Marina
- Grado en Náutica y Transporte Marítimo
- Información, acceso y becas
Algoritmia
- Prácticas de Laboratorio (14 Hours)
- Docencia On Line (30 Hours)
- Clases Expositivas (16 Hours)
La asignatura Algoritmia (ALG) forma parte de la materia Extracción, Representación y Procesamiento de Datos, junto con otras cuatro asignaturas: Estructuras discretas y Análisis de Algoritmos (EST), Metodología de la Programación (MET), Programación Avanzada (PRO) y Señales y Sistemas (SS). Dentro de la materia Extracción, Representación y Procesamiento de Datos, la asignatura Algoritmia trata el estudio sistemático del diseño y análisis de algoritmos. El objetivo de la asignatura es proporcionar a los alumnos las herramientas básicas que necesitarán para desarrollar algoritmos, sea cual fuere el campo de aplicación requerido. Otro aspecto fundamental de la asignatura es el que concierne a la determinación de la eficiencia de algoritmos.
Para abordar esta asignatura es recomendable que el alumno haya cursado las asignaturas: Metodología de la Programación y Estructuras Discretas y Análisis de Algoritmos.
Competencias Básicas (CB) y Competencias Generales (CG).-
- CB1 - Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio.
- CB2 - Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
- CB5 - Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.
- CG01 - Elegir y aplicar los métodos y técnicas más adecuados para analizar y resolver problemas definidos por datos que representen un reto por su volumen, velocidad, variedad o heterogeneidad, incluidos métodos informáticos, matemáticos, estadísticos y de procesado de la señal.
- CG02 - Tener las habilidades experimentales y analíticas para trabajar con autonomía siendo capaz de plantear experimentos y de describir, analizar, evaluar e interpretar la información resultante para proponer soluciones alternativas y novedosas frente a problemas conocidos y/o emergentes.
- CG03 - Crear modelos y tomar decisiones basadas en los datos disponibles combinando los conocimientos adquiridos y siendo capaz de aplicar otros nuevos para la resolución de problemas.
- CG04 - Capacidad de integrarse en un equipo multidisciplinar en el marco de un proyecto de ciencia de datos.
- CG09 - Capacidad para expresar de los resultados del procesamiento de datos de manera clara y convincente tanto por escrito como oralmente.
Competencias Específicas (CE) y Resultados de Aprendizaje (RALG).-
- CE10 - Conocer los fundamentos de programación y técnicas algorítmicas básicas y aplicarlas utilizando los lenguajes de programación más relevantes en el ámbito de la ciencia e ingeniería de datos.
- CE11 - Evaluar la complejidad computacional de un problema e identificar, si existen, estrategias algorítmicas apropiadas para su resolución
El desarrollo de dichas competencias debe proporcionar los siguientes resultados de aprendizaje:
- RALG1 - Conocer las técnicas de cálculo de complejidad algorítmica espacial y temporal.
- RALG2 - Calcular el coste temporal de un algoritmo, en el mejor y en el peor caso.
- RALG3 - Expresar el coste en notación asintótica.
- RALG4 - Diseñar una solución recursiva para un problema dado.
- RALG5 - Transformar un algoritmo recursivo en su correspondiente versión iterativa.
- RALG6 - Conocer y aplicar las estrategias algorítmicas básicas de las tecnologías informáticas.
- RALG7 – Diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos obtenidos.
- RALG8 - Particularizar esquemas algorítmicos generales para la resolución de problemas.
Unidad didáctica I: Conceptos fundamentales de algoritmia
Tema 1. Análisis de algoritmos
Introducción. Complejidad temporal y espacial. Notaciones asintóticas. Órdenes de complejidad. Análisis por casos: mejor, peor y promedio. Análisis del coste de algoritmos iterativos y recursivos. Casos de estudio: búsqueda, ordenación, etc.
Tema 2. Diseño de Algoritmos Recursivos
Introducción. Principio de inducción. Diseño y verificación de una función recursiva. Técnicas de inmersión. Tipos de recursión. Transformación de algoritmos recursivos en su versión iterativa.
Unidad didáctica II: Esquemas Algorítmicos
Tema 3. Divide y Vencerás
Características generales de divide y vencerás. Esquema general. Ejemplos: búsqueda binaria, ordenación por fusión, ordenación rápida, etc.
Tema 4. Programación Dinámica
Características generales de programación dinámica. Problemas de optimización. Principio de optimalidad. Esquema general. Ejemplos: mochila, devolver el cambio, caminos mínimos, etc.
Tema 5. Algoritmos voraces
Características generales de los algoritmos voraces. Esquema general. Ejemplos: devolver el cambio, mochila, caminos mínimos (Dijkstra), árboles de expansión mínimos (Prim y Kruskal), planificación de tareas, etc.
Tema 6. Búsqueda con retroceso
Características generales de la búsqueda con retroceso. Esquema general. Ejemplos: mochila, ocho reinas, etc.
Tema 7. Ramifica y poda
Características generales de ramifica y poda. Esquema general. Ejemplos: mochila, asignación de tareas, etc.
Las actividades presenciales del alumno consistirán en la asistencia a clases expositivas y prácticas de laboratorio. En las clases expositivas el profesor alternará la exposición de los contenidos teóricos de la asignatura con la realización de ejemplos sobre los mismos y la resolución de problemas. En las prácticas de laboratorio se desarrollará el trabajo de manera individual, para de ese modo, asegurar la adquisición de las habilidades prácticas básicas por cada alumno.
Por otro lado, habrá una serie de actividades online tales como: visualización de clases expositivas y de prácticas de laboratorio, resolución de problemas planteados, cuestionarios, planteamiento y resolución de dudas en los foros o a través de las distintas herramientas de correo privado. Todas estas actividades online irán coordinadas con las actividades presenciales para así, proporcionar una correcta asimilación de los contenidos de la asignatura.
La tutoría académica se realizará de forma online en el horario establecido a tal fin por cada uno de los profesores.
Por lo que se refiere al trabajo autónomo del estudiante, éste comprende tanto el estudio del contenido teórico y práctico de la asignatura, como la realización de ejercicios y problemas que los profesores propongan de forma presencial, o publiquen a través del Campus Virtual, así como la comunicación y el trabajo colaborativo con otros estudiantes a través de las distintas herramientas del Campus Virtual.
La asignatura requiere un total 150 horas entre actividades presenciales, actividades online, trabajo autónomo del alumno y sesiones de evaluación.
El desglose estimado del trabajo por temas es el siguiente:
Temas | Clase Expositiva Presencial | Clase Expositiva online | Prácticas de laboratorio presencial | Prácticas de laboratorio online | Total Presencial y online | Trabajo autónomo | Horas totales |
1. Análisis de algoritmos | 2 | 2 | 2 | 2 | 8 | 10 | 18 |
2. Diseño de Algoritmos recursivos | 2 | 2 | 2 | 2 | 8 | 20 | 28 |
3. Divide y Vencerás | 1 | 1 | 2 | 2 | 6 | 10 | 16 |
4. Programación Dinámica | 3 | 3 | 2 | 3 | 11 | 20 | 31 |
5. Algoritmos voraces | 2 | 2 | 2 | 2 | 8 | 10 | 18 |
6. Búsqueda con retroceso | 3 | 3 | 2 | 2 | 10 | 15 | 25 |
7. Ramifica y Poda | 1 | 2 | 2 | 2 | 7 | 5 | 12 |
Evaluación | 2 | 2 | |||||
Total | 14 | 15 | 14 | 15 | 60 | 90 | 150 |
El resumen de las actividades formativas se muestra en la siguiente tabla:
ACTIVIDAD FORMATIVA | HORAS | PRESENCIALIDAD (%) | TOTALES |
Clases expositivas presenciales | 14 | 100 | |
Prácticas de Laboratorio presenciales | 14 | 100 | |
Evaluación | 2 | 100 | 60 (40%) |
Clases expositivas online | 15 | 0 | |
Prácticas de Laboratorio online | 15 | 0 | |
Trabajo Autónomo | 90 | 0 | 90 (60%) |
TOTAL | 150 |
Convocatoria ordinaria
La calificación final de la asignatura constará de cuatro partes con sus correspondientes pesos:
- Examen de Teoría (45%): la asignatura tendrá un examen de teoría (presencial) que se llevará a cabo en la fecha fijada por la Escuela en el calendario oficial de exámenes de mayo/junio.
- Práctica (40%): se evaluarán de forma continua los trabajos individuales realizados por los alumnos en el aula de prácticas.
- Asistencia y participación (5%): el máximo valor en esta parte se alcanzará con una asistencia al 80% de las sesiones presenciales de prácticas de laboratorio.
- Participación activa en actividades del Campus Virtual (10%): se valorará la participación del alumno en aquellas actividades que se vayan depositando en el Campus Virtual.
Las actividades evaluables no realizadas por el alumno se valorarán con un cero. No obstante, si el peso total de estas actividades supone más del 50% de la nota total, la calificación final del alumno será “No presentado”.
Si no se alcanza al menos un 40% de la calificación en la parte Teórica, o en la parte Práctica, la calificación final de la asignatura será “Suspenso”, con un máximo de 4,5 puntos. Para superar la convocatoria ordinaria la calificación final de la asignatura debe ser de al menos 5 puntos (sobre 10).
Convocatoria extraordinaria
La evaluación constará de dos exámenes presenciales, uno teórico y otro práctico, con los siguientes porcentajes sobre la nota final:
- Examen de Teoría (50%)
- Examen de Prácticas (50%)
Para aprobar la asignatura se requiere alcanzar al menos el 50% de la calificación en el examen de Teoría y el 50% de la calificación en el examen de Prácticas.
Los alumnos que hayan obtenido como mínimo el 50% de la calificación de la parte de Práctica en la Convocatoria Ordinaria, no tendrán obligación de examinarse de esa parte en las convocatorias extraordinarias del presente curso académico. Para aprobar la asignatura, los alumnos deben obtener el 50% en la calificación final de la asignatura.
Evaluación diferenciada
La evaluación será la misma en todas las convocatorias y constará de dos exámenes presenciales, uno teórico y otro práctico, con los siguientes porcentajes sobre la nota final:
- Examen de Teoría (50%)
- Examen de Prácticas (50%)
Para aprobar la asignatura se requiere alcanzar al menos el 50% de la calificación en el examen de Teoría y el 50% de la calificación en el examen de Prácticas.
Bibliografía básica
- Brassard, G., Bratley, P., Fundamentos de Algoritmia, Prentice-Hall, 1997.
- Cormen,T. H.; Leiserson, C. E.; Rivest, R. L.; Stein, C., Introduction to Algorithms, The MIT Press, 2009.
- Peña, R., Diseño de Programas. Formalismo y Abstracción, Prentice-Hall, 2005.
Bibliografía complementaria
- Aho, A. V., Hopcroft, J. E., Ullman, J. D., Data Structures and Algorithms, Addison Wesley, 1987.
- Baase, S., Computer Algorithms, Introduction to Design and Analysis, Addisson Wesley, 1988.
- Horowitz, E., Sahni, S., Fundamentals of Computer Algorithms, Pitman, 1978.
- Scholl, P. C., Algorítmica y Representación de Datos, Recursividad y Árboles, Masson, 1986.
- Torres, C., Diseño y Análisis de algoritmos, Paraninfo, 1992.
Documentación complementaria
Además de esta guía docente, el equipo docente proporcionará material adicional (diapositivas, ejemplos, ejercicios, etc.) a través del entorno de enseñanza virtual de la asignatura:
https://www.innova.uniovi.es/innova/campusvirtual/campusvirtual.php