Fichas de asignaturas 2014-15
![]() |
DISEÑO DE ALGORITMOS |
![]() ![]() ![]() |
|
Asignatura |
![]() |
| |
Profesorado |
![]() |
| |
Competencias |
![]() |
| |
Resultados Aprendizaje |
![]() |
| |
Actividades Formativas |
![]() |
| |
Sistemas de Evaluación |
![]() |
| |
Contenidos |
![]() |
| |
Bibliografía |
![]() |
Código | Nombre | |||
Asignatura | 21714015 | DISEÑO DE ALGORITMOS | Créditos Teóricos | 2.5 |
Título | 21714 | GRADO EN INGENIERÍA INFORMÁTICA | Créditos Prácticos | 5 |
Curso | 3 | Tipo | Obligatoria | |
Créd. ECTS | 6 | |||
Departamento | C137 | INGENIERÍA INFORMÁTICA |
Requisitos previos
Es muy recomendable que el alumno haya adquirido las competencias correspondientes a las materias de los dos primeros cursos, así como que sepa expresarse con fluidez, corrección y precisión en español.
Recomendaciones
Haber superado las siguientes asignaturas y mantener la destreza necesaria en las materias objeto de su estudio. - Introducción a la Programación - Matemática Discreta - Metodología de la Programación - Sistemas Operativos - Análisis de Algoritmos y Estructuras de Datos - Estructuras de Datos no Lineales - Programación Orientada a Objetos En particular, el alumno debe saber cómo resolver las sumas y ecuaciones de recurrencia fundamentales, así como poseer una práctica fluida en el diseño iterativo y recursivo elemental, las técnicas de transformación, la programación en lenguaje C++ y el manejo de las herramientas básicas de programación disponibles a través de un intérprete de órdenes en un sistema operativo GNU/Linux. Por último, se recomienda poseer los suficientes conocimientos de lengua inglesa como para, al menos, ser capaz de leer y comprender los materiales y bibliografía recomendados.
Profesorado
Competencias
Se relacionan aquí las competencias de la materia/módulo o título al que pertenece la asignatura, entre las que el profesorado podrá indicar las relacionadas con la asignatura.
Identificador | Competencia | Tipo |
C06 | Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos | ESPECÍFICA |
CB2 | Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vacació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 | GENERAL |
CB5 | Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía | GENERAL |
CG08 | Conocimiento de las materias básicas y tecnologías, que capaciten para el aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones. | GENERAL |
CG09 | Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática. | GENERAL |
CT1 | Trabajo en equipo: capacidad de asumir las labores asignadas dentro de un equipo, así como de integrarse en él y trabajar de forma eficiente con el resto de sus integrantes | TRANSVERSAL |
Resultados Aprendizaje
Identificador | Resultado |
R7 | Conocer la diferencia entre grafos explícitos e implícitos. |
R5 | Conocer la diferencia entre los enfoques ascendente y descendente en el diseño de algoritmos de programación dinámica. |
R4 | Saber aplicar la programación dinámica a problemas de optimización |
R1 | Saber aplicar la técnica de divide y vencerás al diseño de algoritmos. |
R3 | Saber utilizar algoritmos devoradores para resolver problemas de optimización. |
R2 | Ser capaz de analizar algoritmos de divide y vencerás. |
R6 | Ser capaz de aplicar las técnicas básicas de exploración de un grafo. |
R8 | Ser capaz de utilizar los algoritmos en el laboratorio para obtener programas que resuelvan problemas reales. |
Actividades formativas
Actividad | Detalle | Horas | Grupo | Competencias a desarrollar |
01. Teoría | En las clases de teoría se aprenderán los fundamentos teóricos de la materia y se ilustrarán sus conceptos mediante ejemplos paradigmáticos. |
20 | C06 CG08 | |
02. Prácticas, seminarios y problemas | En las clases de problemas se aplicarán los conocimientos aprendidos en las clases de teoría a la resolución de problemas relacionados. |
10 | C06 CG08 CG09 | |
03. Prácticas de informática | Las clases prácticas se desarrollarán en un laboratorio de informática. Previamente se proporcionará a los alumnos a través del campus virtual un guión de las actividades a realizar. Cada guión podrá abarcar varias sesiones de laboratorio y contendrá ejercicios en los que habrá que programar los algoritmos pertinentes como forma de resolver los problemas planteados. |
30 | CG08 CG09 | |
10. Actividades formativas no presenciales | Estas actividades engloban la dedicación personal al estudio del alumno, que debe incluir tanto el repaso de los materiales suministrados, como la resolución de problemas y la realización de prácticas de programación. |
86 | CG08 | |
12. Actividades de evaluación | Exámenes escritos. |
4 | C06 CG09 |
Evaluación
Criterios Generales de Evaluación
Los profesores valorarán la corrección y eficiencia de las soluciones obtenidas, además de aspectos subjetivos como la presentación, claridad y elegancia de su desarrollo en los que se incidirá durante todo el curso. Se prestará especial atención a la capacidad del alumno para explicar las soluciones desarrolladas claramente, con precisión, sin errores gramaticales ni ortográficos. Una mera solución sin explicación o justificación podrá no ser tenida en cuenta. En el caso de programas de ordenador, estos deberán estar escritos conforme al estándar en uso del lenguaje y poseer un comportamiento inequívocamente definido. Los alumnos deben comprobar periódicamente el estado del curso en el campus virtual, donde se publicarán con la debida antelación diversos materiales docentes, convocatorias, calificaciones y, en definitiva, información vital para el seguimiento de la asignatura. En particular, los alumnos tienen la obligación de conocer las noticias publicadas a través del tablón de anuncios virtual del curso, cuyos mensajes sustituyen a los que tradicionalmente se colocaban en un tablón físico y que se consideran la fuente oficial de comunicación de la asignatura. Los alumnos son responsables de proteger sus ficheros y datos personales, incluyendo sus contraseñas de acceso al correo electrónico y al campus virtual. La copia total o parcial de exámenes o prácticas, así como cualquier otro tipo de fraude detectado por los profesores, podrá ser motivo de SUSPENSO INMEDIATO EN TODAS LAS CONVOCATORIAS del curso académico para todos los implicados, sea cual fuere su papel. En particular, se informa de que las entregas electrónicas podrán almacenarse durante un plazo de 5 años para ulteriores comprobaciones.
Procedimiento de Evaluación
Tarea/Actividades | Medios, Técnicas e Instrumentos | Evaluador/es | Competencias a evaluar |
Exámenes escritos |
|
C06 CG08 CG09 | |
Memorias de prácticas |
|
C06 CG08 CG09 |
Procedimiento de calificación
Las calificaciones se otorgarán mediante un sistema de evaluación continua en el que la nota final de la asignatura se calculará mediante la siguiente fórmula: NF = | 0,7 * NT + 0,3 * NP si NT >= 3,5 | 0,7 * NT si NT < 3,5 donde: 1. NT es la nota obtenida, en una escala de 0 a 10, en el examen de teoría. 2. NP es la nota de prácticas: la media en una escala de 0 a 10 de las calificaciones de las prácticas desarrolladas durante el curso. Será necesario obtener una nota igual o superior a 3,5 en el examen de teoría para que las prácticas sean tenidas en cuenta a la hora de calcular la nota final de la asignatura. En ningún caso se guardará la NT para posteriores convocatorias de la asignatura. La presentación de memorias por cada práctica a través de los medios anunciados en el campus virtual en las fechas indicadas por el profesor es obligatoria. Los alumnos deben asegurarse de realizar correctamente las entregas electrónicas, a través de los medios anunciados en el campus virtual, en tiempo y forma. En particular, deben observarse estrictamente las normas de entrega publicadas en el campus virtual. Los alumnos que no presenten alguna de las memorias de prácticas, obtendrán una calificación de 0 en su NP. Los alumnos podrán ser convocados para la defensa de sus prácticas en determinadas fechas indicadas por el profesor. En caso de ser convocados a defensa, los alumnos deberán acudir portando copias impresas de las memorias entregadas electrónicamente. El desconocimiento de las cuestiones planteadas implicará una calificación de 0 en su NP.
Descripcion de los Contenidos
Contenido | Competencias relacionadas | Resultados de aprendizaje relacionados |
Bloque 1. Algoritmos devoradores. Sesiones de teoría y problemas: - Esquema general. - El problema del cambio de moneda. - El problema de la mochila. - El problema del árbol de expansión mínimo. - Caminos mínimos desde un vértice a todos los demás. Sesiones de laboratorio: - Simulación del reintegro en un cajero automático. - Trazado de líneas de comunicación de coste mínimo. |
C06 CG08 CG09 | R3 R8 |
Bloque 2. Programación dinámica. Sesiones de teoría y problemas: - Diseño descendente: funciones con memoria. - Diseño ascendente: tabla de subproblemas resueltos. - Ejemplos numéricos. - Principio de optimalidad. - El problema del cambio de moneda. - El problema de la mochila. - Caminos mínimos entre todas las parejas de vértices. - Clausura reflexiva y transitiva. Sesiones de laboratorio: - Impacto de la memorización. - Aprovechamiento óptimo de espacios publicitarios. - Planificación de rutas por carretera de coste mínimo. |
C06 CG08 CG09 | R5 R4 R8 |
Bloque 3. Algoritmos de divide y vencerás. Sesiones de teoría y problemas: - Esquema general. - Reducción: búsqueda binaria, potencia rápida. - Equilibrado: extremos, ordenación por fusión. - Partición: ordenación rápida, selección rápida. Sesiones de laboratorio: - Potencia rápida de una matriz. - Ordenación por fusión frente a ordenación rápida. - Influencia del umbral. |
C06 CG08 CG09 | R1 R2 R8 |
Bloque 4. Exploración en grafos. Sesiones de teoría y problemas: - Recorridos de un grafo: aplicaciones, ordenación topológica. - Búsqueda con retroceso. - Ramificación y acotación. Sesiones de laboratorio: - Secuenciación de tareas interdependientes - Resolución del problema de las n damas. - Asignación óptima de recursos en proyectos. |
C06 CG08 CG09 | R7 R6 R8 |
Bibliografía
Bibliografía Básica
[1] Brassard, Gilles y Bratley, Paul. Fundamentos de algoritmia. Prentice-Hall. 1997. [2] Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. y Stein, Clifford. Introduction to algorithms. MIT Press. 3ª ed. 2009. [3] Johnsonbaugh, Richard y Schaefer, Marcus. Algorithms. Prentice-Hall. 2004. [4] Kleinberg, Jon y Tardos Éva. Algorithm Design. Addison-Wesley. 2005. [5] Levitin, Anany V. Introduction to the design and analysis of algorithms. Addison-Wesley. 2ª ed. 2007. [6] Martí Oliet, Narciso; Ortega Mallén, Yolanda y Verdejo López, José A. Estructuras de datos y métodos algorítmicos. Ejercicios resueltos. Prentice-Hall. 2004. [7] Neapolitan, Richard y Naimipour, Kumarss. Foundations of algorithms. Jones and Bartlett. 4ª ed. 2009. [8] Sedgewick, Robert y Wayne, Kevin. Algorithms. Addison-Wesley. 4ª ed. 2011. Material complementario en http://www.cs.princeton.edu/algs4. [9] Skiena, Steven S. The algorithm design manual. Springer. 2ª ed. 2008.
Bibliografía Específica
[1] Aho, Alfred; Hopcroft, John y Ullman, Jeffrey. The design and analysis of computer algorithms. Addison-Wesley. 1974. [2] Baase, Sara y Van Gelder, Allen. Computer algorithms. Introduction to design and analysis. Addison-Wesley. 3ª ed. 2000. [3] Brassard, Gilles y Bratley, Paul. Algorítmica. Concepción y análisis. Masson. 1990. [4] Horowitz, Ellis y Sahni, Sartaj. Fundamentals of computer algorithms. Pitman. 1978. [5] Horowitz, Ellis; Sahni, Sartaj y Rajasekaran, Sanguthevar. Computer algorithms / C++. Universities Press. 2ª ed. 2008. [6] Manber, Udi. Introduction to algorithms. A creative approach. Addison-Wesley. 1989. [7] Martí Oliet, Narciso; Segura Díaz, Clara M. y Verdejo López, José A. Especificación, derivación y análisis de algoritmos. Ejercicios resueltos. Prentice-Hall. 2007. [8] Parberry, Ian y Gasarch, William. Problems on algorithms. http://www.eng.unt.edu/ian/books/free/poa.pdf. 2002. [9] Lippman, Stanley B.; Lajoie, Josée y Moo, Barbara E.
C++ Primer.
Addison-Wesley. 5ª ed. 2012.
[10] Stroustrup, Bjarne. Programming: Principles and practice using C++. Addison-Wesley. 2008.
Bibliografía Ampliación
[1] Graham, Ronald L.; Knuth, Donald E. y Patashnik, Oren. Concrete mathematics. A foundation for Computer Science. Addison-Wesley. 2ª ed. 1994. [2] Kao, Ming-Yang (ed.) Encyclopedia of algorithms. Springer. 2008. [3] Knuth, Donald E. The art of computer programming. Volume I. Fundamental algorithms. Addison-Wesley. 3ª ed. 1997. [4] Knuth, Donald E. The art of computer programming. Volume II. Seminumerical algorithms. Addison-Wesley. 3ª ed. 1997. [5] Knuth, Donald E. The art of computer programming. Volume III. Sorting and searching. Addison-Wesley. 2ª ed. 1997. [6] Sedgevick, Robert y Flajolet, Philippe. An introduction to the analysis of algorithms. Addison-Wesley. 1996.
El presente documento es propiedad de la Universidad de Cádiz y forma parte de su Sistema de Gestión de Calidad Docente. En aplicación de la Ley 3/2007, de 22 de marzo, para la igualdad efectiva de mujeres y hombres, así como la Ley 12/2007, de 26 de noviembre, para la promoción de la igualdad de género en Andalucía, toda alusión a personas o colectivos incluida en este documento estará haciendo referencia al género gramatical neutro, incluyendo por lo tanto la posibilidad de referirse tanto a mujeres como a hombres.