Última actualización: 6 de febrero de 2025
Estructuras de Datos y Algoritmos (curso 2024/25)
Grado en Ingeniería Informática y Grado en Estadística - Universidad de Valladolid

Presentación

 

Esta es la página principal de la Asignatura Estructuras de Datos y Algoritmos en el Grado en Ingeniería Informática (código 46913, plan 545) y el Grado en Estadística (código 47083, Plan 549) de la Universidad de Valladolid.

Tablón de anuncios

Consulta de Calificaciones:

 

Atención: El contenido de esta sección se actualizará a lo largo del curso.

 

FechaAviso
06-FebDisponibles las calificaciones de la convocatoria extraordinaria
Fecha de revisión: Viernes 7 de febrero, 12:00, Aula 07
22-EneDisponibles las calificaciones de la convocatoria ordinaria
Fecha de revisión: Jueves 23 de enero, 12:00, Aula 07
08-EneDisponibles las calificaciones de la segunda práctica
Fecha de revisión K1-K4: Martes 21 de enero, 11:30, Aula 03
Fecha de revisión K5-K7: Miércoles 15 de enero, 17:00, Sala de Profesores Asociados (1L009)
26-NovDisponibles las calificaciones del segundo examen parcial
Fecha de revisión: Miércoles 4 de diciembre, 12:15, Aula 07
20-NovDisponibles las calificaciones de la primera práctica
26-OctDisponibles las calificaciones del primer examen parcial
Fecha de revisión: Miércoles 30 de octubre, 12:30, Aula 07
18-SepSegunda asignación de subgrupo práctico, ver en Consulta de Calificaciones introduciendo su NIF
16-SepDisponible cuestionario de solicitud de cambio de subgrupo de prácticas en el Campus Virtual
16-SepPrimera asignación de subgrupo práctico, ver en Consulta de Calificaciones introduciendo su NIF
10-SepDisponible cuestionario de asignación de subgrupos prácticos en el Campus Virtual
10-SepPresentación de la asignatura

Fechas límite

Atención: Las fechas de los exámenes parciales y las entregas de prácticas son provisionales y pueden sufrir modificaciones.

 

FechaConvocatoriaLugarTiempo restante
10-Sep | 12-Sep Presentación de la asignatura Aula 06 | Aula 103 
23-Sep Comienzo de los laboratorios Lab. 101|102|104|105|I+D|Gen  
24-Oct Examen teória primer bloque En horario de clase  
3-Nov 23:59 Límite presentación electrónica primera práctica Campus Virtual  
4,5,7-Nov Defensa primera práctica Laboratorios  
21-Nov Examen teória segundo bloque En horario de clase  
15-Dic 23:59 Límite presentación electrónica segunda práctica Campus Virtual  
16,17,19-Dic Defensa segunda práctica Laboratorios  
21-Ene 10:00 Examen teória tercer bloque Aulas 03-04-05 
6-Feb 9:00 Examen convocatoria extraordinaria Aulas 03-04  

También puede consultar las convocatorias de exámenes e información asociada en la página de la Escuela

.

Documentación

En esta sección se incluye toda la documentación que los profesores de la asignatura proporcionan como complemento o apoyo a la docencia presencial impartida. No se deben considerar como la única fuente de información, unos "apuntes" oficiales o el sustituto de un buen libro (al respecto, consúltese la subsección sobre Bibliografía de la asignatura).

Atención: A medida que avance el curso se irán depositando más archivos o modificando alguno de los existentes, estos cambios se indicarán en el tablón de anuncios.

Parte Teórica

Nota: Si alguien desea que se deposite alguno de los documentos siguientes en reprografía, contacte con los profesores de la asignatura.

 

BloqueTemaTransparenciasEjerciciosAplicaciones
1 (2 ptos) Tema 1 Introducción Hoja de Problemas Medida de Algoritmos
Análisis de Algoritmos Ordenación
2 (2 ptos) Tema 2Tipos Abstractos de Datos   
Tema 3 Arrays y Listas enlazadas Hoja de Problemas Ejemplo Java
3 (3 ptos) Tema 4 Árboles Codigo Java
Arboles
Tema 5 Tablas de Dispersión  

Puede consultar el temario de la asignatura en esta sección.

Parte Práctica

Los enunciados de las prácticas se encuentran disponibles en el Campus Virtual.

 

Profesorado

Los profesores de esta asignatura, durante el curso 2024-25, son los siguientes:

 

TipoGruposProfesorDespachoCorreo
Teoría/PrácticaT1, T2, K1, K2, K3, K4 César Vaca Rodríguez 1D020 cesar.vaca [at] uva.es
PrácticaK5, K6, K7 Miguel Ángel Villaroel - miguelangel.villaroel [at] uva.es

Calendario

Calendario de las actividades previstas para la asignatura, desglosado por semanas:

 

SemanaTeoríaLab./Sem.Evaluación
09/09/2024   
16/09/2024   
23/09/2024 L 
30/09/2024 L 
07/10/2024 L 
14/10/2024 L 
21/10/2024 LTeoría 1
28/10/2024 L 
04/11/2024 LPráctica 1
11/11/2024   
18/11/2024 LTeoría 2
25/11/2024 L 
02/12/2024 L 
09/12/2024 L 
16/12/2024 LPráctica 2

Temario

Bloque 1: Análisis de Algoritmos

Tema 1. Análisis de Algoritmos.
  • Medida de algoritmos.
  • Notación Asintótica.
  • Relaciones de recurrencia: Teorema maestro.
  • Caso práctico: Algoritmos de búsqueda y ordenación.

Bloque 2: Tipos Abstractos de Datos y Estructuras simples

Tema 2. Tipos Abstractos de Datos.
  • Definiciones.
  • El TAD string.
  • Concepto de Contenedor.
  • Colecciones e Iteradores.
  • Tipos de relaciones entre elementos.
  • TADs Contenedores fundamentales.
Tema 3. Vectores y listas enlazadas.
  • Representaciones contiguas y enlazadas.
  • Representaciones lineales y circulares.
  • Uso y eficiencia para distintos TADs.

Bloque 3: Estructuras de Datos

Tema 4. Árboles.
  • Definiciones. Propiedades.
  • Implementaciones del TAD Directorio.
  • Árboles binarios: Definiciones y propiedades.
  • Montículos.
  • Árboles binarios de búsqueda.
  • Árboles AVL.
  • Árboles B+.
Tema 5. Tablas de dispersión.
  • Definiciones y objetivos.
  • Dispersión abierta (encadenamiento).
  • Dispersión cerrada (exploración).
  • Análisis de eficiencia.

Bibliografía básica:

  • [Weiss] M.A. Weiss. Estructuras de datos en Java. Addison-Wesley Iberoamericana, 2004
  • [CLRS] Cormen, Leiserson, Rivest, Stein. Introduction to Algorithms. MIT Press, 2001
  • [NyHoff] L. NyHoff. TADs, estructuras de datos y resolución de problemas con C++. Pearson Prentice Hall, 2005
  • [Aho] Aho, Hopcroft, Ullman. Estructuras de datos y algoritmos. Addison-Wesley Longman, 1998

Bibliografía complementaria:

  • [Shaffer] C.A. Shaffer. A Practical Introduction to Data Structures and Algorithm Analisys. Java Edition. Prentice Hall, 1998
  • [Goodrich] M.T. Goodrich, R. Tamassia. Data Structures and Algorithms in Java. Willey, 1998
  • [McMillan] M. McMillan. Data Structures and Algorithms using C#. Cambridge University Press, 2006
  • [Horowitz] E. Horowitz, S. Sahni. Fundamentals of Computer Algorithms. Computer Science Press

Descripción de la asignatura

Denominación:[46913] [47083] Estructuras de Datos y Algoritmos
Títulación:[545] Grado en Ingeniería Informática
[549] Grado en Estadística
Tipo:Obligatoria
Curso:Segundo, primer cuatrimestre
Área:Lenguajes y Sistemas Informáticos
Departamento:Informática (ATC, CCIA y LSI)
Créditos ECTS:6

Objetivos

El objetivo de la asignatura es estudiar las distintas formas de almacenar y organizar datos de forma que puedan ser usados eficientemente. Para medir la eficiencia se introducen las técnicas básicas de análisis de eficiencia de algoritmos, y el estudio se organiza en base al concepto de tipo abstracto de datos de manera que sea posible clasificar las distintas alternativas separando la interfaz de su implementación..

Resultados de aprendizaje:

  • Conocer y utilizar el concepto de Tipo Abstracto de Datos (TAD), así como los TADs fundamentales.
  • Conocer y aplicar las técnicas básicas para realizar análisis de eficiencia de algoritmos.
  • Conocer y comprender las distintas implementaciones de árboles y grafos, y tener la capacidad para adaptarlas a las características de un problema particular.
  • Conocer las distintas implementaciones de tablas de dispersión y la eficiencia de cada una de ellas.
  • Conocer las diversas alternativas que permiten almacenar información en un sistema de ficheros.
  • Ser capaz de diseñar implementaciones eficientes para nuevos TADs mediante la extensión o combinación de las implementaciones estudiadas.

Prerrequisitos:

La asignatura extiende y da uso a gran parte de los conceptos contemplados en Fundamentos de Programación. Se utilizan técnicas estudiadas en Paradigmas de Programación, y su primer bloque formativo se amplía en la asignatura Análisis y Diseño de Algoritmos.

Aunque no se han establecido prerrequisitos, es fundamental que el alumno posea conocimientos básicos de programación, en particular haber cursado y conseguido las habilidades y destrezas establecidas en la guía docente de la asignatura de Fundamentos de Programación. También es recomendable haber cursado la asignatura Paradigmas de Programación, ya que se utilizarán varias de las técnicas contempladas en esa asignatura (en concreto Orientación a Objetos, Genericidad y Tipado Algebraico). Por último, es recomendable disponer de un nivel suficiente de inglés que permita al estudiante leer parte de la bibliografía de consulta.

Programa de Teoría:

Puede consultar el temario en la siguiente sección.

Programa de Prácticas:

Puede consultar el temario en la siguiente sección.

Metodología (actividades):

ActividadMetodología
Clase de teoríaClase magistral participativa
Estudio de casos en aula
Resolución de problemas
Clase practícaClase magistral participativa
Realización de proyectos (2) asistidos por el profesor, que encargará y guiará el trabajo.
SeminariosIntroducción al entorno práctico.
Tutoría ActivaEvaluación de los contenidos teóricos y de los proyectos

Puede consultar el apartado calendario para ver la distribución de las actividades durante el curso.

Método y criterios de evaluación

A lo largo del desarrollo del curso se realizarán una serie de evaluaciones que se detallan en la siguiente tabla indicando su porcentaje de contribución a la calificación final:

 

ProcedimientoMomentoContribución
Examen teórico bloque 124/10/2024 (provisional)20%
Entrega primera práctica04/11/2024 (provisional)15%
Examen teórico bloque 221/11/2024 (provisional)20%
Entrega segunda práctica16/12/2024 (provisional)15%
Examen teórico bloque 321/01/2025, 10:0030%
Examen extraordinario06/02/2025, 9:00hasta el 70%

Criterios de calificación

Los exámenes teóricos (incluido el final) consistirán en preguntas tipo test, preguntas de respuesta corta y de resolución de problemas sencillos. El examen extraordinario consistirá en 3 bloques (opcionales) que permiten la reevaluación de la calificación obtenida en los exámenes teóricos.

La parte práctica consistirá en la resolución de problemas mediante la obtención del código adecuado. Además de la corrección del código, se valorará la utilización de las técnicas contempladas en la asignatura. La calificación de la parte práctica no es recuperable.

Puede consultar la guía docente de la asignatura (accesible desde la página de la UVa) si desea una especificación más detallada de éstos criterios.

 

(c) 2013 Departamento de Informática, Universidad de Valladolid

Para cualquier duda relativa a estas páginas o la información contenida en las mismas, póngase en contacto con el webmaster (cvaca [at] infor.uva.es) de la asignatura.