Estructuras de Datos
- Prácticas de Aula/Semina (7 Hours)
- Prácticas de Laboratorio (28 Hours)
- Clases Expositivas (21 Hours)
- Tutorías Grupales (2 Hours)
Asignatura de la materia de Programación impartida durante el primer semestre del segundo curso. Cuenta con 6 créditos ECTS equivalentes a 150 horas de trabajo; 60 horas presenciales y 90 horas no presenciales.
La asignatura tiene 2 horas de clases expositivas semanales (hasta 21 horas), 2 horas de prácticas semanales de laboratorio (hasta 28 horas), además de 7 horas semestrales de seminarios y 2 horas semestrales de tutorías grupales.
El estudiante que curse esta asignatura ha de disponer de elevados conocimientos y destreza en el diseño y programación de aplicaciones informáticas. Deberá haber aprobado por tanto las asignaturas de programación del primer curso, especialmente las siguientes:
- Introducción a la Programación.
- Metodología de la Programación.
- Competencias específicas:
Código | Descripción |
Bas 3 | Capacidad para comprender y dominar los conceptos básicos de matemática discreta, lógica y algorítmica y complejidad computacional, y su aplicación para la resolución de problemas propios de la ingeniería. |
Com.6 | 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. |
Com.7 | Conocimiento, diseño y utilización de forma eficiente los tipos y estructuras de datos más adecuados a la resolución de un problema. |
Com.8 | Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados. |
ISW-1 | Capacidad para desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente, sean asequibles de desarrollar y mantener y cumplan normas de calidad, aplicando las teorías, principios, métodos y prácticas de la Ingeniería del Software. |
- Competencias generales:
Código | Descripción |
CG1 | Competencia para el diseño de soluciones a problemas |
CG4 | Análisis y Síntesis |
CG7 | Destreza en la expresión escrita |
CG10 | Destreza en la comunicación oral y escrita en inglés |
- Resultados de aprendizaje:
Código | Descripción |
RA.P.3 | Analizar, diseñar, desarrollar, seleccionar, evaluar y mantener aplicaciones y sistemas informáticos, asegurando su fiabilidad y calidad aplicando las teorías, principios, métodos y prácticas de la Ingeniería del Software, eligiendo el paradigma y los lenguajes de programación más adecuados, considerando las limitaciones derivadas del coste, del tiempo, de la existencia de sistemas ya desarrollados y de las propias organizaciones.[Com.8] [ISW.1] [CG-1] [CG-4] |
RA.P.4 | Conocer y aplicar procedimientos algorítmicos básicos, tipos y estructuras de datos más adecuados a la resolución de un problema, analizando la idoneidad y complejidad de los mismos. [Bas.3] [Com.6] [Com.7] |
RA.P.6 | Capacidad de dar solución a un problema de integración en función de las estrategias, estándares y tecnologías disponibles. [CG-1][CG-4] |
RA.P.7 | Documentar y exponer la solución a un problema a través de textos y diagramas, cumpliendo normas y estándares del diseño y desarrollo del software en español/inglés. [CG-7][CG-10] |
1- Conceptos Fundamentales
• Tipos de datos predefinidos.
• Estructuras de datos lineales: listas, pilas y colas.
• Genericidad en java, contenedores de tipo
• Introducción a la algoritmia.
• Estimación de tiempos de ejecución.
2- Estructuras de datos en Red
• Grafos genéricos.
• Conceptos básicos de Teoría de Grafos.
• Matrices de Adyacencia.
• Listas de Adyacencia.
• Caminos de coste mínimo.
• El algoritmo de Dijkstra.
• El algoritmo de Floyd-Warshall.
• Búsqueda en profundidad.
• Árboles de recubrimiento de coste mínimo.
• Algoritmo de Prim.
3- Estructuras de datos Jerárquicas
• Árboles genéricos.
• Conceptos básicos sobre árboles.
• Métricas de rendimiento.
• Árboles de búsqueda.
• Árboles binarios.
• Árboles de búsqueda binarios.
• Árboles de Adelson-Velski.
• Árboles multicamino.
• Árboles de Bayer & McCreight
4- Colas de Prioridad
• Colas de prioridad genéricas.
• Montículos binarios genéricos.
• Operaciones especiales utilizando montículos binarios.
5- Estructuras Diccionario
• Transformación de claves (hashing).
• Tablas hash genéricas.
• Funciones de dispersión genéricas.
• Tablas hash abiertas.
• Tablas hash cerradas.
• Exploración lineal.
• Agrupamientos (clustering).
• Borrado Perezoso (Lazy deletion).
• Exploración cuadrática.
• Dispersión doble.
• Redispersión.
De forma excepcional, si las condiciones sanitarias lo requieren, se podrán incluir actividades de docencia no presencial. En cuyo caso, se informará al estudiantado de los cambios efectuados.
TRABAJO PRESENCIAL | TRABAJO NO PRESENCIAL | ||||||||||
Temas | Horas totales | Clase Expositiva | Prácticas de aula /Seminarios/ Talleres | Prácticas de laboratorio /campo /aula de informática/ aula de idiomas | Tutorías grupales | Evaluación | Total | Trabajo grupo | Trabajo autónomo | Total | |
Conceptos Fundamentales | 15 | 1 | 1 | 4 | 6 | 9 | 9 | ||||
Estructuras en Red | 43 | 6 | 2 | 8 | 1 | 17 | 26 | 26 | |||
Estructuras Jerárquicas | 54 | 8 | 2 | 10 | 1 | 21 | 33 | 33 | |||
Colas de Prioridad | 11,5 | 2 | 0,5 | 2 | 4,5 | 7 | 7 | ||||
Estructuras Diccionario | 24,5 | 4 | 1,5 | 4 | 9,5 | 15 | 15 | ||||
Evaluación | 2 | 2 | 2 | ||||||||
Total | 150 | 21 | 7 | 28 | 2 | 2 | 60 | 90 | 90 | ||
MODALIDADES | Horas | % | Totales | |
Presencial | Clases Expositivas | 21 | 14 | 60 |
Práctica de aula / Seminarios / Talleres | 7 | 4,7 | ||
Prácticas de laboratorio / campo / aula de informática / aula de idiomas | 28 | 18,7 | ||
Prácticas clínicas hospitalarias | ||||
Tutorías grupales | 2 | 1,3 | ||
Prácticas Externas | ||||
Sesiones de evaluación | 2 | 1,3 | ||
No presencial | Trabajo en Grupo | 90 | ||
Trabajo Individual | 90 | 60 | ||
Total | 150 |
Se podrán aplicar mecanismos automatizados de detección de plagio sobre el código de los proyectos y ejercicios realizados por los estudiantes. Se aplicará la normativa al respecto en el Reglamento de evaluación de los resultados de aprendizaje y las competencias adquiridas por el alumnado.
Convocatoria Ordinaria
La evaluación del aprendizaje será continua durante el semestre y está basada en:
Nota de Teoría: control de aprendizaje de la parte teórica de la asignatura mediante un examen de preguntas de desarrollar (75%) y de tipo test (25%).
Nota de Evaluación Continua: Evaluación continua de los proyectos realizados a lo largo del curso (EC1 a EC4).
Nota de Laboratorio: implementación, prueba y documentación de cuatro proyectos de laboratorio de realización individual. Su evaluación se hará en dos sesiones de evaluación (exámenes prácticos), una sobre los contenidos de los temas 1 y 2, y otro sobre los contenidos de los temas 3, 4 y 5.
Nota laboratorio = P1*10% + P2*30% + P3*36% + P4*24%
P1=EC1
P2=EC2*50% + Ex2*50%
P3=EC3*50% + Ex3*50%
P4=EC4*50% + Ex4*50%
Donde:
EC1 (Algoritmia): Evaluación continua del Proyecto 1
EC2 (Estructuras de datos en red): Evaluación continua del Proyecto 2
EX2: Examen práctico correspondiente a la primera sesión de evaluación.
EC3 (Estructuras de datos jerárquicas + Colas de prioridad): Evaluación continua del Proyecto 3
EC4 (Estructuras de datos diccionario): Evaluación continua del Proyecto 4
EX3 y EX4: Estos exámenes se realizan en la segunda sesión de evaluación.
De este proceso se obtiene la siguiente:
Nota preliminar = 0.6 * Nota de laboratorio + 0.4 * Nota de Teoría
Para superar la asignatura se requiere:
Asistencia mínima. Será requisito una asistencia mínima solamente en prácticas de laboratorio. Se permite un máximo de 2 ausencias.
Puntuación mínima en Teoría. Será requisito obtener al menos 3 puntos (sobre 10) en la nota de teoría.
Puntuación mínima en Prácticas de laboratorio:
- Es obligatorio entregar TODOS los proyectos, y obtener una nota de 3 (sobre 10) en la EC de los proyectos 2, 3 y 4.
- Se ha de obtener una puntuación mínima de 3 en las tres notas de los exámenes
- La media ponderada de las notas de los exámenes debe ser >= 5 (EX2*0,33+EX3*0,4+EX4*0,27 >=5)
Si se cumplen todos los requisitos anteriores, la nota final será:
Nota final = Nota preliminar
Si solo se cumple el requisito de requisito de Puntuación Mínima, la nota final será:
Nota final = Mínimo (3.5; Nota preliminar).
En caso contrario, la nota final será:
Nota final = Mínimo (2; Nota preliminar).
Se considerará No Presentado en el caso de no haber participado en un conjunto de actividades de evaluación cuyo peso en la calificación total suponga menos de un 50%.
Convocatorias extraordinarias
Nota de Teoría: control de aprendizaje de la parte teórica de la asignatura mediante un examen de preguntas de desarrollar (75%) y de tipo test (25%).
Nota de Proyecto Práctico. Los estudiantes desarrollarán un proyecto práctico en el laboratorio.
El proyecto constará de una funcionalidad básica (compuesta por varios apartados) cuyo nivel de implementación, prueba y documentación debe ser del 100% para alcanzar la nota mínima (5). El proyecto tendrá una funcionalidad avanzada cuyo nivel de implementación, prueba y documentación determinará la nota entre 5 y 10.
La nota obtenida del proyecto práctico de laboratorio le corresponde un 30% de la nota final.
Nota Evaluación Continua (Nota de EC): Corresponde a la nota obtenida en la EC a lo largo del curso.
De este proceso se obtiene la siguiente:
Nota Laboratorio= 0.5 * Nota Proyecto Práctico + 0.5 * Nota de EC
Nota preliminar = 0.6* Nota Laboratorio + 0.4 * Nota de Teoría
Será requisito obtener al menos 3 puntos (sobre 10) en las notas del proyecto práctico y de teoría.
Si se cumplen todos los requisitos anteriores, la nota final será:
Nota final = Nota preliminar
En otro caso la nota final será:
Nota final = Mínimo (3.5; nota preliminar).
Evaluación diferenciada
Nota de Teoría: control de aprendizaje de la parte teórica de la asignatura mediante un examen de preguntas de desarrollar (75%) y de tipo test (25%).
Nota Proyecto Práctico: Los estudiantes desarrollarán un proyecto práctico en el laboratorio.
El proyecto constará de una funcionalidad básica (compuesta por varios apartados) cuyo nivel de implementación, prueba y documentación debe ser del 100% para alcanzar la nota mínima (5). El proyecto tendrá una funcionalidad avanzada cuyo nivel de implementación, prueba y documentación determinará la nota entre 5 y 10.
Nota preliminar = 0.6* Nota Laboratorio + 0.4 * Nota de Teoría
Será requisito obtener al menos 3 puntos (sobre 10) en las notas del proyecto práctico y de teoría.
Si se cumplen todos los requisitos anteriores, la nota final será:
Nota final = Nota preliminar
En otro caso la nota final será:
Nota final = Mínimo (3.5; nota preliminar).
Consideraciones para todas las convocatorias del curso
- Se guardará la nota de teoría aprobada en convocatoria ordinaria (>=5) para la siguiente convocatoria
- Se guardará la nota de laboratorio aprobada en convocatoria ordinaria (>=5) para la siguiente convocatoria
De forma excepcional, si las condiciones sanitarias lo requieren, se podrán incluir actividades de evaluación no presencial. En cuyo caso, se informará al estudiantado de los cambios efectuados.
GONZALEZ RODRÍGUEZ, Martín; (2023) Estructuras de Datos, Fundamentos y Aplicaciones. ISBN: 978-1-4467-9145-5.
GONZALEZ RODRÍGUEZ, Martín; (2023) Data Structures, Fundamentals and Applications. ISBN: 978-1-4467-9147-9.
WEISS, Mark Allen; (2010) Estructuras de Datos en Java. Addison Wesley. ISBN 978-8478290352.
JOYANES AGUILAR, LUIS; ZAHONERO, IGNACIO (2007) Estructuras de Datos en Java. McGraw Hill. ISBN: 9788448156312.
AHO, Alfred V., HOPCROFT, Jonh E., ULLMAN, Jefrey D (1988). Estructuras de Datos y Algoritmos. Addison-Wesley Iberoamericana: Sistemas Técnicos de Edición, 1988. ISBN 968-6048-19-7
WIRTH, Niklaus; (1980) Algoritmos + estructuras de datos. Ediciones del Castillo. ISBN 9788421901724.