Última actualización: 09/05/2018


Curso Académico: 2018/2019

Estructura de datos y algoritmos
(16484)
Grado en Ciencia e Ingeniería de Datos (Plan: 392 - Estudio: 350)


Coordinador/a: SEGURA BEDMAR, ISABEL

Departamento asignado a la asignatura: Departamento de Informática

Tipo: Formación Básica
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:

Rama de Conocimiento: Ingeniería y Arquitectura



Requisitos (Asignaturas o materias cuyo conocimiento se presupone)
- Programación. - Cálculo
COMPETENCIA Nº CRÉDITOS ECTS EVIDENCIAS DE EVALUACIÓN CECRI1 (1 ECTS), Evidencia de Evaluación: PRÁCTICAS DE LABORATORIO, TRABAJOS COLECTIVOS (CASO PRÁCTICO) CECRI6 (ALGORITMOS) (1.5 ECTS) Evidencia de Evaluación:EXÁMENES, PRÁCTICAS DE LABORATORIO, TRABAJO COLECTIVO E INDIVIDUAL CECRI7 (TIPOS Y ESTRUCTURAS DE DATOS) (2.5 ECTS), Evidencia de Evaluación: EXÁMENES, PRÁCTICAS DE LABORATORIO, TRABAJO COLECTIVO E INDIVIDUAL CGB4 (0,50 ECTS), Evidencia de Evaluación: PRÁCTICAS DE LABORATORIO, TRABAJOS COLECTIVOS CGB% (0,50 ECTS) Evidencia de Evaluación: PRÁCTICAS DE LABORATORIO, TRABAJO COLECTIVO 1. Competencias Transversales/Genéricas - Capacidad de análisis y síntesis (PO e) - Capacidad de organizar y planificar (PO d) - Resolución de problemas (PO e) - Trabajo en equipo (PO d) - Capacidad de aplicar los conocimientos en la práctica (PO e) 2. Competencias Específicas a. Cognitivas (Saber) - Conocimiento general sobre algorítmica (PO a) - Conocimiento de estructuras de datos fundamentales (PO k) - Conocimiento de estructuras de datos avanzadas (PO k) b. Procedimentales/Instrumentales (Saber hacer) - Diseñar y analizar la complejidad de algoritmos (PO a) - Interpretar y utilizar las diferentes estructuras de datos (PO k) - Implementar soluciones a problemas específicos mediante estas herramientas (PO e) c. Actitudinales (Ser) - Capacidad de resolución de problemas mediante algoritmos (PO e) - Preocupación por la claridad, sencillez y eficiencia en la resolución de problemas (PO e y k) - Debatir y concluir las distintas soluciones a un problema (PO e y k) Los resultados de aprendizaje son: Trabajo individual: - Resolución por parte del alumno de problemas en el que debe demostrar que tienen capacidad para combinar la teoría y práctica (PO a, e, k) Trabajo en grupo: Caso Práctico sobre diseño e implementación de estructuras de datos. (PO a, d, e, k)
Descripción de contenidos: Programa
1. Introducción a. Concepto Tipo Abstracto de Datos (TAD). b. Especificación e Implementación de TAD 2. Tipos Abstractos de Datos lineales a. Concepto TAD Lineal. Estructura estática vs dinámica. b. Pilas. c. Colas. d. Listas: simples y dobles. 3. Algoritmos I: Análisis de la Complejidad. a. Análisis de Algoritmos b. Tipos de Complejidad c. Función Tiempo de Ejecución. d. Orden de Complejidad e. Caso peor, mejor y promedio. 4. Algoritmos II: Recursión. 5. Tipos Abstractos de Datos Jerárquicos: Árboles a. Árboles generales b. Árboles binarios c. Recorrido de un árbol: preorden, en orden, postorden, por niveles d. Árboles Binarios de búsqueda. e. ABB equilibrados. 6. Grafos. a. Definición TAD Grafo. Aplicaciones. b. Implementación basada en matriz de adyacencias. c. Implementación basada en lista de adyacencias. d. Recorridos en profundidad y amplitud e. Algoritmo de Dijkstra (camino más corto). 7. Algoritmos III. a. Divide y Venceras. b. Panorámica de las principales estratégicas algorítmicas.
Actividades formativas, metodología a utilizar y régimen de tutorías
1. Clases Teóricas: Tienen por objetivo alcanzar las competencias específicas cognitivas de la asignatura (PO a y k) 2. Actividades académicas dirigidas por el profesor: 2.1. Con presencia del profesor: Resolución de ejercicios de análisis, diseño e implementación con distinto nivel de complejidad en colaboración con los alumnos (PO a, e). Parte de estas actividades se llevarán a cabo en laboratorio informático (PO k). 2.2. Sin presencia del profesor: Ejercicios, prácticas de implementación y lecturas básicas y complementarias propuestas por el profesor (PO k, e) Además estas actividades pueden realizarse como: a). Trabajo individual: Consistente en el desarrollo de las soluciones a los problemas y ejercicios propuestos por el profesor. b). Trabajo en grupo: Consistente en el desarrollo de las soluciones a los problemas colectivos propuestos por el profesor (PO d). 3. Prueba de evaluación intermedia y examen final de la asignatura (PO a, e, k) 4. Se realizará una tutoría colectiva por cada grupo pequeño para resolver las preguntas y dudas de los estudiantes.
Sistema de evaluación
  • Peso porcentual del Examen Final 60
  • Peso porcentual del resto de la evaluación 40

Bibliografía básica
  • Aho, A. V.; Hopcroft, J. E.; Ullman, J. D.. Estructuras de Datos y Algoritmos. Addison Wesley Iberoamericana.
  • Mark Allen Weiss. Data Structures and Algorithms analysis in Java, 2nd edition, 2007. Pearson Addison Wesley.
  • Michael T. Goodrich and Roberto Tamassia. Data Structures and Algorithms in JAVA, 4th edition, 2006. John Wiley & Sons.
Recursos electrónicosRecursos Electrónicos *
Bibliografía complementaria
  • Isabel Segura Bedmar, Harith AlJumaily, Julian Moreno Schneider, Juan Perea & Nathan D. Ryan. Algorithms and Data Structures. OCW-UC3M: http://ocw.uc3m.es/ingenieria-informatica/algorithms-and-data-structures. 2011
  • Lourdes Araujo Serna, Raquel Martínez Unanue y Miguel Rodríguez Artacho. Programación y estructuras de datos avanzadas. UNED. 2011
(*) El acceso a algunos recursos electrónicos puede estar restringido a los miembros de la comunidad universitaria mediante su validación en campus global. Si esta fuera de la Universidad, establezca una VPN


El programa de la asignatura podría sufrir alguna variación por causa de fuerza mayor debidamente justificada o por eventos académicos comunicados con antelación.