Universidad de Jaén

Menú local

Guía docente 2019-20 - 13312012 - Estructuras de datos



TITULACIÓN: Grado en Ingeniería informática
CENTRO: ESCUELA POLITÉCNICA SUPERIOR (JAÉN)
CURSO: 2019-20
ASIGNATURA: Estructuras de datos
GUÍA DOCENTE
1. DATOS BÁSICOS DE LA ASIGNATURA
NOMBRE: Estructuras de datos
CÓDIGO: 13312012 CURSO ACADÉMICO: 2019-20
TIPO: Obligatoria
Créditos ECTS: 6.0 CURSO: 2 CUATRIMESTRE: PC
WEB: http://dv.ujaen.es/docencia/goto_docencia_crs_272406.html
2. DATOS BÁSICOS DEL PROFESORADO
NOMBRE: ORTEGA ALVARADO, LIDIA Mª
IMPARTE: Teoría - Prácticas [Profesor responsable]
DEPARTAMENTO: U118 - INFORMÁTICA
ÁREA: 570 - LENGUAJES Y SISTEMAS INFORMÁTICOS
N. DESPACHO: A3 - 140 E-MAIL: lidia@ujaen.es TLF: 953212890
TUTORÍAS: https://uvirtual.ujaen.es/pub/es/informacionacademica/tutorias/p/58151
URL WEB: www4.ujaen.es/~lidia
ORCID: https://orcid.org/0000-0002-7320-7382
NOMBRE: MOLINA FERNÁNDEZ, CARLOS
IMPARTE: Teoría - Prácticas
DEPARTAMENTO: U118 - INFORMÁTICA
ÁREA: 570 - LENGUAJES Y SISTEMAS INFORMÁTICOS
N. DESPACHO: A3 - 145 E-MAIL: carlosmo@ujaen.es TLF: 953212883
TUTORÍAS: https://uvirtual.ujaen.es/pub/es/informacionacademica/tutorias/p/68163
URL WEB: http://wwwdi,ujaen.es/es/carlosmo
ORCID: https://orcid.org/0000-0002-7281-3065
NOMBRE: RODRÍGUEZ DOMÍNGUEZ, ROSA MARÍA
IMPARTE: Prácticas
DEPARTAMENTO: U118 - INFORMÁTICA
ÁREA: 570 - LENGUAJES Y SISTEMAS INFORMÁTICOS
N. DESPACHO: - E-MAIL: - TLF: -
TUTORÍAS: https://uvirtual.ujaen.es/pub/es/informacionacademica/tutorias/p/38667
URL WEB: -
ORCID: -
3. PRERREQUISITOS, CONTEXTO Y RECOMENDACIONES
PRERREQUISITOS:
-
CONTEXTO DENTRO DE LA TITULACIÓN:

La asignatura pertenece al grupo de asignaturas relacionadas con la programación de ordenadores. Una vez adquiridas en el primer curso las destrezas necesarias para resolver un problema básico mediante la implementación de un programa en C++, esta asignatura de segundo curso y primer cuatrimestre se centra en el estudio de distintas estructuras de datos que permiten representar de una manera apropiada la información del problema para obtener soluciones eficientes. Los conocimientos de esta asignatura son además fundamentales para la mayoría de asignaturas posteriores, especialmente Diseño de Algoritmos, Inteligencia Artificial, Metaheurísticas o Informática Gráfica y Visualización.

RECOMENDACIONES Y ADAPTACIONES CURRICULARES:

Es necesario que el alumno que curse esta asignatura conozca los fundamentos de la programación, el lenguaje de programación C++ y el paradigma de la programación orientada a objetos. Para ello se requiere haber adquirido los conocimientos impartidos en las asignaturas de programación de primer curso: Fundamentos de Programación y Programación Orientada a Objetos.

 

El alumnado que presente necesidades específicas de apoyo educativo, lo ha de notificar personalmente al Servicio de Atención y Ayudas al Estudiante para proceder a realizar, en su caso, la adaptación curricular correspondiente.
4. COMPETENCIAS Y RESULTADOS DE APRENDIZAJE
Código Denominación de la competencia
CB2R Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocació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.
CB3R Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.
CB5R Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.
CC7R 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.
 
Resultados de aprendizaje
Resultado 7 Conocer, diseñar y utilizar de forma eficiente los tipos y estructuras de datos más adecuados a la resolución de un problema.
5. CONTENIDOS

Especificación e implementación de Estructuras de datos. Contenedores secuenciales y asociativos. Estructuras para representar datos multidimensionales.

 

 

Módulo A: Introducción

Lección 1: Presentación e introducción a las estructuras de datos.

Lección 2: Contenedores: tipos. Análisis de complejidad.

Lección 3: Definición de patrones en C++. Operadores. Gestión de memoria.

Módulo B: Vectores y listas
Leccion 4: Vectores estáticos y dinámicos.
Leccion 5: Matrices y arrays multidimensionales. Conjuntos de bits.
Lección 6: Listas enlazadas. Iteración.
Lección 7: Listas doblemente enlazadas. Listas circulares. Matrices dispersas.
Lección 8: Introducción a STL. Clases vector, deque y list.

Módulo C: Pilas y colas
Lección 9: Pilas, colas, colas con prioridad. Adaptadores de STL.

Módulo D: Árboles.
Leccion 10: Árboles. Árboles binarios. Recorridos. Árboles binarios de búsqueda.
Lección 11: Árboles balanceados. Árboles AVL
Lección 12: Heaps. Conjuntos disjuntos
Lección 13: Conjuntos y mapas de STL

Módulo E: Dispersión.
Lección 14: Tipos de dispersión. Funciones de dispersión.
Leccion 15: Resolución de colisiones

Módulo F: Grafos
Lección 16: Representación de grafos. Algoritmos sobre grafos.

Módulo G: Estructuras de datos multidimensionales.
Leccion 17: Mallas regulares. Range-trees
Lección 18: Árboles k-d. Quadtrees

Módulo H: Estructuras de datos para gestión de ficheros
Lección 19: Conceptos y operaciones fundamentales sobre archivos
Lección 20: Indexación
Lección 21: Árboles B

 

Programa Práctico:

Prácticas desarrolladas en C++ sobre los diferentes módulos:

  • Práctica sobre Módulo B
  • Práctica sobre Módulo C
  • Práctica sobre Módulo D
  • Práctica sobre Módulo E
  • Práctica sobre Módulo F
  • Práctica sobre Módulo G
  • Práctica sobre Módulo H 

 

 

6. METODOLOGÍA Y ACTIVIDADES
 
ACTIVIDADES HORAS PRESEN­CIALES HORAS TRABAJO AUTÓ­NOMO TOTAL HORAS CRÉDITOS ECTS COMPETENCIAS (códigos)
A1 - Clases expositivas en gran grupo
  • M1 - Clases magistrales
  • M2 - Exposición de teoría y ejemplos generales
25.0 37.5 62.5 2.5
  • CB2R
  • CB3R
  • CB5R
A2R - Clases en pequeño grupo
  • M10R - Aulas de informática
  • M11R - Resolución de ejercicios
  • M6R - Actividades practicas
30.0 45.0 75.0 3.0
  • CB5R
A3 - Tutorías colectivas/individuales
  • M15 - Seminarios
  • M17 - Aclaración de dudas
  • M18 - Comentarios de trabajos individuales
5.0 7.5 12.5 0.5
  • CC7R
TOTALES: 60.0 90.0 150.0 6.0  
 
INFORMACIÓN DETALLADA:
  • Los contenidos teoricos se desarrollan en clases magistrales, cada lección se desarrolla en una clase.
  • En las sesiones prácticas se realizarán una serie de ejercicios de programación que implementan estructuras de datos.
  • Durante las clases teorico-prácticas se realizarán ejercicios para reforzar los contenidos, preguntar dudas y realizar ejercicios. 
  • En algunas clases  se utilizará la metodología de clase invertida, en la cual el estudiante ha estudiado previamente la lección y en clase se resuelven dudas y se hacen ejercicios. Los alumnos serán advertidos con anterioridad de cuales serán estas clases. 
7. SISTEMA DE EVALUACIÓN
 
ASPECTO CRITERIOS INSTRUMENTO PESO
Asistencia y/o participación en actividades presenciales y/o virtuales Asistencia y participación Asistencia a clase de teoría y prácticas 5.0%
Conceptos teóricos de la materia Conceptos teóricos de la materia Exámen teórico 55.0%
Realización de trabajos, casos o ejercicios Realización de trabajos, casos o ejercicios Entrega de ejercicios 5.0%
Prácticas de laboratorio/campo/uso de herramientas TIC Prácticas de laboratorio/ordenador Entrega de ejercicios prácticos en fechas específicas 35.0%
El sistema de calificación se regirá por lo establecido en el RD 1125/2003 de 5 de septiembre por el que se establece el sistema europeo de créditos y el sistema de calificaciones en la titulaciones universitarias de carácter oficial
INFORMACIÓN DETALLADA:

Atendiendo a lo recogido en el art. 13 del Reglamento de Régimen Académico y de Evaluación del alumnado de la Universidad de Jaén, la evaluación de la asignatura será global.

Según con el artículo 18 de dicho reglamento, se considerará agotada una convocatoria cuando las pruebas de evaluación en las que el estudianate particique supongan más del 30% de la calificación de la asignatura.

Finalmente,  en el  artículo 23 se indica que la existencia de plagio en las pruebas teóricas o prácticas puede comportar la nota de 0 en dicha práctica.  

La evaluación detallada es:

S1: Asistencia a clase de teoría y prácticas (5%)
     Paso de lista. Este apartado se computa durante el período de clases teóricas y prácticas, no habiendo pruebas adicionales para evaluar este apartado.

S2: Conocer los contenidos teóricos de la asignatura (55%)
     Exámen teórico. El exámen debe estar aprobado con 5 puntos o más para superar la asignatura. Se evaluará las competencias CB2R, CB3R, CB5R y CC7R y resultado de aprendizaje 7. El examen tiene dos partes, la de contenidos del temario y la de programación. La parte de programación debe tener al menos 2 puntos.

S3: Realización de ejercicios teórico/prácticos y participación en clase (5%) 

     Entrega de ejercicios. El alumno podrá realizar relaciones de ejercicios y/o  prácticas voluntarias que computarán en este apartado. Se valorará la participación en clase. Este apartado se evalúa en período de clases. Se evaluará la competencia CC7R y resultado de aprendizaje 7.

S4: Ejercicios prácticos en laboratorio  (35%)
      Entrega de ejercicios prácticos en fechas específicas. El alumno desarrollará ejercicios prácticos propuestos en clase de prácticas que entregarán en fechas prefijadas por el profesor. Este apartado se debe superar durante el período de clase, no hay pruebas adicionales para superarlo. Se evaluará la competencia CC7R y resultado de aprendizaje 7. Se utilizarán herramientas antiplagio que podrán comportar una nota de 0 si se detecta plagio. 

El alumno debe superar con más de 5 puntos sobre 10 el exámen teórico. El examen teórico tiene dos partes, una de contenidos teóricos y otros de programación. El examen debe puntuar en al menos dos puntos en el apartado de programación. 

La nota final se computa realizando las medias ponderadas con los porcentajes anteriores y deberá también superar la puntuación de 5. 

Es posible que a requerimiento de los profesores de la asignatura, los estudiantes deben depositar sus apuntes y dispositivos electrónicos en el lugar apartado que se les indique para evitar que sean utilizados durante la celebración del exámen.

 

8. DOCUMENTACIÓN / BIBLIOGRAFÍA
ESPECÍFICA O BÁSICA:
  • Data structures and algorithms in C++. Edición: 2nd ed. Autor: Goodrich, Michael T. Editorial: Hoboken, NJ : John Wiley and Sons, 2011  (C. Biblioteca)
  • Fundamentos de estructuras de datos: soluciones en Ada, Java y C++. Edición: -. Autor: -. Editorial: Madrid [etc.] : Thomson, D.L. 2005  (C. Biblioteca)
  • Estructuras de datos, algoritmos, y programación orientada a objetos. Edición: -. Autor: Heileman, Gregory L.. Editorial: Madrid [etc.]: McGraw-Hill, D. L. 2001  (C. Biblioteca)
GENERAL Y COMPLEMENTARIA:
  • Fundamentos de estructuras de datos: soluciones en Ada, Java y C++. Edición: -. Autor: -. Editorial: Madrid [etc.] : Thomson, D.L. 2005  (C. Biblioteca)
  • Abstracción y estructuras de datos en C++. Edición: -. Autor: Garrido Carrillo, Antonio. Editorial: Madrid : Delta, 2006  (C. Biblioteca)
  • File Structures: an object-oriented approach with C++. Edición: -. Autor: Folk, Michael J.. Editorial: Reading: Addison-Wesley, cop. 1998  (C. Biblioteca)
  • Foundations of multidimensional and metric data structures. Edición: -. Autor: Samet, Hanan. Editorial: Amsterdam : Elsevier : Morgan Kaufmann, cop. 2006  (C. Biblioteca)
9. CRONOGRAMA (primer cuatrimestre)
 
Semana A1 - Clases expositivas en gran grupo A2R - Clases en pequeño grupo A3 - Tutorías colectivas/individuales Trabajo autónomo Observaciones
Nº 1
9 - 15 sept. 2019
2.02.00.0 4.0 Lecciones 1 y 2  
Nº 2
16 - 22 sept. 2019
2.02.00.0 6.0 Lecciones 3 y 4 
Nº 3
23 - 29 sept. 2019
2.02.00.0 6.0 Lecciones 5 y 6 
Nº 4
30 sept. - 6 oct. 2019
2.02.00.0 6.0 Lección 7 y ejercicios de problemas en clase 
Nº 5
7 - 13 oct. 2019
2.02.00.0 6.0 Lecciones 8 y 9 
Nº 6
14 - 20 oct. 2019
2.02.00.0 6.0 Lecciones 10 y 11 
Nº 7
21 - 27 oct. 2019
2.02.00.0 6.0 Lecciones 12 y 13 
Nº 8
28 oct. - 3 nov. 2019
2.02.00.0 6.0 Ejercicios en clase y Lección 14 
Nº 9
4 - 10 nov. 2019
2.02.00.0 6.0 Lecciones 15 y 16 
Nº 10
11 - 17 nov. 2019
2.02.00.0 6.0 Lecciones 17 y 19 (no se imparte la 18 en este curso) 
Nº 11
18 - 24 nov. 2019
2.02.00.0 6.0 Lecciones 20 y 21 
Nº 12
25 nov. - 1 dic. 2019
2.02.00.0 6.0 Ejercicios de clase y resolución de problemas y dudas 
Nº 13
2 - 8 dic. 2019
1.02.00.0 6.0 Ejercicios de clase y resolución de problemas y dudas  
Nº 14
9 - 15 dic. 2019
0.02.00.0 6.0   
Nº 15
16 - 19 dic. 2019
0.02.00.0 8.0   
Total Horas 25.0 30.0 0.0 90.0