template-browser-not-supported

Doble Grado en Ingeniería Informática del Software / Grado en Matemáticas

Back Back

Estructuras de Datos

Código asignatura
2GIISMAT-2-005
Curso
Segundo
Temporalidad
Primer Semestre
Carácter
Obligatoria
Créditos
6
Pertenece al itinerario Bilingüe
Yes
Actividades
  • Prácticas de Aula/Semina (7 Hours)
  • Prácticas de Laboratorio (28 Hours)
  • Clases Expositivas (21 Hours)
  • Tutorías Grupales (2 Hours)
Guía docente

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:

  1. Introducción a la Programación.
  2. 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:

  1. 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%).  

  2. Nota de Evaluación Continua: Evaluación continua de los proyectos realizados a lo largo del curso (EC1 a EC4).  

  3. 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: 

  1. Asistencia mínima. Será requisito una asistencia mínima solamente en prácticas de laboratorio. Se permite un máximo de 2 ausencias. 

  2. Puntuación mínima en Teoría. Será requisito obtener al menos 3 puntos (sobre 10) en la nota de teoría. 

  3. 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.