Guías Docentes Electrónicas
1. DATOS GENERALES
Asignatura:
ESTRUCTURA DE DATOS
Código:
42312
Tipología:
OBLIGATORIA
Créditos ECTS:
6
Grado:
406 - GRADO EN INGENIERÍA INFORMÁTICA (AB)_20
Curso académico:
2020-21
Centro:
604 - E.S. DE INGENIERIA INFORMATICA ALBACETE
Grupo(s):
10  11  12 
Curso:
2
Duración:
Primer cuatrimestre
Lengua principal de impartición:
Español
Segunda lengua:
Inglés
Uso docente de otras lenguas:
English Friendly:
N
Página web:
Bilingüe:
S
Profesor: JUAN ANTONIO GUERRERO ABENZA - Grupo(s): 10  11 
Edificio/Despacho
Departamento
Teléfono
Correo electrónico
Horario de tutoría
Infante D. Juan Manuel/1A4
SISTEMAS INFORMÁTICOS
926053299
juan.guerrero@uclm.es
Available at the beginning of the academic year. See http://www.esiiab.uclm.es

Profesor: GINES MORENO VALVERDE - Grupo(s): 12 
Edificio/Despacho
Departamento
Teléfono
Correo electrónico
Horario de tutoría
Infante D. Juan Manuel/1.C.9
SISTEMAS INFORMÁTICOS
2471
gines.moreno@uclm.es
Available at the beginning of the academic year. See http://www.esiiab.uclm.es

2. REQUISITOS PREVIOS

Conocimiento básico de conceptos matemáticos: lógica, teoría de funciones, estructura algebraica, mínima capacidad de abstracción y expresión matemática. Es suficiente con haber aprobado las asignaturas de Álgebra y Cálculo.

Conocimiento del lenguaje de programación Java a nivel básico, de un entorno de programación y de los fundamentos de los sistemas de información. Es suficiente con haber aprobado la asignaturas Fundamentos de Programación (I y II) y Sistemas de Información.

3. JUSTIFICACIÓN EN EL PLAN DE ESTUDIOS, RELACIÓN CON OTRAS ASIGNATURAS Y CON LA PROFESIÓN

Estructura de Datos pertenece a la materia de Programación y forma parte del módulo Común a la Rama de Informática del Grado en Ingeniería Informática.

La asignatura puede verse como la continuación lógica de Fundamentos de Programación II, estudiando nuevas estructuras de datos y desde nuevos puntos de vista, aparte de su uso: cómo de definen formalmente y cómo se implementan, de forma que puedan incorporarse a un entorno de programación como parte de su biblioteca.

Su continuación lógica será en la asignatura de Metodología de la Programación, donde cada esquema algorítmico puede tener una inmediata aplicación sobre las nuevas estructuras de datos (ordenación de estructuras lineales, exploraciones voraces o dinámicas de árboles, caminos óptimos sobre grafos, etc.). También en la asignatura de Programación Declarativa (intensificación de Computación), además de ser imprescindibles ciertos conocimientos adquiridos (listas, planteamientos recursivos, etc.), se profundizará en la definición de las estructuras de datos vistas, resolviendo importantes lagunas de expresividad y eficiencia (herencia, orden superior, estructuras infinitas, etc.).

Pero, tanto en el resto de la carrera como en la vida profesional, se deberán implementar aplicaciones donde se requieran estructuras de datos de cierta complejidad. Los lenguajes que suelen usarse pueden proporcionar estructuras adecuadas (listas, colas, etc.) que, para ser usadas correctamente, es necesario haberlas estudiado con cierto detalle. Otras veces no las proporcionan (árboles y grafos), por lo será necesario saber incorporarlas. Por otro lado, la utilización de estructuras de datos, desde el punto de vista de su diseño y análisis, proporcionará un nivel de abstracción y destrezas de programación (recursión, modularización, etc.) muy necesarios en cualquier otra labor de desarrollo de software.


4. COMPETENCIAS DE LA TITULACIÓN QUE LA ASIGNATURA CONTRIBUYE A ALCANZAR
Competencias propias de la asignatura
Código Descripción
BA04 Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en ingeniería.
CO06 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.
CO07 Conocimiento, diseño y utilización de forma eficiente de los tipos y estructuras de datos más adecuados para la resolución de un problema.
CO08 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.
PER01 Capacidad de trabajo en equipo.
PER04 Capacidad de relación interpersonal.
5. OBJETIVOS O RESULTADOS DE APRENDIZAJE ESPERADOS
Resultados de aprendizaje propios de la asignatura
Descripción
Aplicar los principios básicos de diseño estructurado y orientado a objetos para la resolución de problemas.
Saber manejar tipos de datos, estructuras de datos y tipos abstractos de datos de forma correcta y adecuada a los problemas, así como su especificación formal, implementación y utilización de los tipos abstractos de datos lineales y no lineales.
Resultados adicionales
No se han establecido.
6. TEMARIO
  • Tema 1: Introducción
    • Tema 1.1: Presentación y conceptos previos
    • Tema 1.2: Estructuras de datos y eficiencia
  • Tema 2: Descripción formal de TADs.
    • Tema 2.1: Especificación formal en Haskell.
    • Tema 2.2: Ejemplo: Conjuntos.
    • Tema 2.3: Implementación de un TAD.
  • Tema 3: TADs lineales.
    • Tema 3.1: Listas. Especificación y ejemplos.
    • Tema 3.2: Implementación de listas.
    • Tema 3.3: Pilas y colas. Especificación e implementación.
  • Tema 4: TADs no lineales. Árboles.
    • Tema 4.1: Árboles generales. Especificación.
    • Tema 4.2: Árboles binarios. Especificación e implementación.
    • Tema 4.3: Árboles de búsqueda. Implementación.
    • Tema 4.4: Equilibrio y eficiencia. Árboles AVL.
  • Tema 5: Grafos.
    • Tema 5.1: Introducción.
    • Tema 5.2: Especificación de grafos no dirigidos.
    • Tema 5.3: Implementación estática de grafos.
COMENTARIOS ADICIONALES SOBRE EL TEMARIO

[ENGLISH] Syllabus:


Unit 1. Introduction.
     Topic 1.1. Presentation and preliminary concepts.
     Topic 1.2. Data structures and efficiency.
Unit 2.  Formal description of ADTs.
     Topic 2.1. Formal specification with Haskell.
     Topic 2.2. Example: sets.
     Topic 2.3. Implementing an ADT.
Unit 3. Linear ADTs.
     Topic 3.1. Lists. Specification and examples.
     Topic 3.2. Implementing lists.
     Topic 3.3. Stacks and Queues. Specification and implementation.
Unit 4. Non linear ADTs. Trees.
     Topic 4.1. General trees. Specification.
     Topic 4.2. Binary trees. Specification and implementation.
     Topic 4.3. Search trees. Implementation.
     Topic 4.4. Balance and efficiency. AVL trees.
Unit 5. Graphs.
     Topic 5.1. Introduction.
     Topic 5.2. Specification of undirected graphs.
     Topic 5.3. Static implementation of graphs.


7. ACTIVIDADES O BLOQUES DE ACTIVIDAD Y METODOLOGÍA
Actividad formativa Metodología Competencias relacionadas (para títulos anteriores a RD 822/2021) ECTS Horas Ev Ob Descripción
Enseñanza presencial (Teoría) [PRESENCIAL] Método expositivo/Lección magistral BA04 CO06 CO07 CO08 0.68 17 S N Clase (grupos grandes)
Resolución de problemas o casos [PRESENCIAL] Resolución de ejercicios y problemas BA04 CO06 CO07 CO08 PER01 PER04 0.68 17 S N Clase (grupos grandes)
Prácticas en aulas de ordenadores [PRESENCIAL] Resolución de ejercicios y problemas BA04 CO06 CO07 CO08 PER01 PER04 0.28 7 S N Laboratorio (grupos pequeños). Ejercicios de forma individual.
Prácticas en aulas de ordenadores [PRESENCIAL] Prácticas BA04 CO06 CO07 CO08 PER01 PER04 0.28 7 S N Laboratorio (grupos pequeños)
Pruebas de progreso [PRESENCIAL] Pruebas de evaluación BA04 CO06 CO07 CO08 0.48 12 S N Controles en clase y laboratorio
Prueba final [PRESENCIAL] Pruebas de evaluación BA04 CO06 CO07 CO08 0.24 6 S N Examen de evaluación no continua y/o extraordinario
Elaboración de memorias de Prácticas [AUTÓNOMA] Aprendizaje basado en problemas (ABP) BA04 CO06 CO07 CO08 PER01 PER04 0.8 20 S N Entregables, etc. de forma individual.
Estudio o preparación de pruebas [AUTÓNOMA] Trabajo autónomo BA04 CO06 CO07 CO08 PER01 PER04 2.56 64 S N Repaso y ampliación de temas. Resolución de ejercicios. Terminar prácticas. Preparación de Controles.
Total: 6 150
Créditos totales de trabajo presencial: 2.64 Horas totales de trabajo presencial: 66
Créditos totales de trabajo autónomo: 3.36 Horas totales de trabajo autónomo: 84

Ev: Actividad formativa evaluable
Ob: Actividad formativa de superación obligatoria (Será imprescindible su superación tanto en evaluación continua como no continua)

8. CRITERIOS DE EVALUACIÓN Y VALORACIONES
Sistema de evaluación Evaluacion continua Evaluación no continua * Descripción
Pruebas de progreso 70.00% 0.00% Controles sobre conociemientos adquiridos en clase y laboratorio ([ESC]50%, [LAB]20%)
Elaboración de memorias de prácticas 20.00% 20.00% Entregables (Moodle, etc.) para lo que podrán realizarse pruebas presenciales para su valoración ([INF]20%)
Valoración de la participación con aprovechamiento en clase 10.00% 0.00% Participación presencial con exposiciones sobre conceptos y soluciones de ejercicios ([PRES]10%)
Prueba final 0.00% 80.00% Prueba sobre el temario completo de la asignatura ([ESC]80%)
Total: 100.00% 100.00%  
* En Evaluación no continua se deben definir los porcentajes de evaluación según lo dispuesto en el art. 4 del Reglamento de Evaluación del Estudiante de la UCLM, que establece que debe facilitarse a los estudiantes que no puedan asistir regularmente a las actividades formativas presenciales la superación de la asignatura, teniendo derecho (art. 12.2) a ser calificado globalmente, en 2 convocatorias anuales por asignatura, una ordinaria y otra extraordinaria (evaluándose el 100% de las competencias).

Criterios de evaluación de la convocatoria ordinaria:
  • Evaluación continua:
    No hay examen final. La nota de la convocatoria ordinaria será el resultado de la evaluación continua (Pruebas de progreso + Memorias de prácticas + Participación). Para aprobar no se exige nota mínima en ninguna parte, pero la suma no podrá ser inferior al 50% de la nota máxima alcanzable.
  • Evaluación no continua:
    Hay dos pruebas finales exclusivamente para quien no siga la evaluación continua: una sobre el temario completo de la asignatura (80%), y otra sobre las memorias de prácticas (20%). Estas memorias son las mismas que se ofertan en evaluación continua, aunque su evaluación presencial se hace de forma conjunta.
    Se estará en situación de evaluación no continua cuando no se ha realizado ninguna de las pruebas formativas presenciales incluidas exclusivamente en la evaluación continua, en cuyo caso no se tiene derecho a ninguna de las pruebas anteriores.
    Para aprobar, la suma de notas de la anteriores pruebas no podrá ser inferior al 50% de la nota máxima alcanzable.

Particularidades de la convocatoria extraordinaria:
Como en las pruebas finales en evaluación no continua.
Particularidades de la convocatoria especial de finalización:
Como en las pruebas finales en evaluación no continua y extraordinaria.
9. SECUENCIA DE TRABAJO, CALENDARIO, HITOS IMPORTANTES E INVERSIÓN TEMPORAL
No asignables a temas
Horas Suma horas
Prueba final [PRESENCIAL][Pruebas de evaluación] 6

Tema 1 (de 5): Introducción
Actividades formativas Horas
Resolución de problemas o casos [PRESENCIAL][Resolución de ejercicios y problemas] 2
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo autónomo] 6

Tema 2 (de 5): Descripción formal de TADs.
Actividades formativas Horas
Resolución de problemas o casos [PRESENCIAL][Resolución de ejercicios y problemas] 3
Prácticas en aulas de ordenadores [PRESENCIAL][Resolución de ejercicios y problemas] 1
Prácticas en aulas de ordenadores [PRESENCIAL][Prácticas] 1
Elaboración de memorias de Prácticas [AUTÓNOMA][Aprendizaje basado en problemas (ABP)] 2
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo autónomo] 10

Tema 3 (de 5): TADs lineales.
Actividades formativas Horas
Resolución de problemas o casos [PRESENCIAL][Resolución de ejercicios y problemas] 4
Prácticas en aulas de ordenadores [PRESENCIAL][Resolución de ejercicios y problemas] 2
Prácticas en aulas de ordenadores [PRESENCIAL][Prácticas] 2
Pruebas de progreso [PRESENCIAL][Pruebas de evaluación] 4
Elaboración de memorias de Prácticas [AUTÓNOMA][Aprendizaje basado en problemas (ABP)] 6
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo autónomo] 16
Comentario: Incluye 4 horas de pruebas de progreso (control 1) para los temas 1 2 y 3

Tema 4 (de 5): TADs no lineales. Árboles.
Actividades formativas Horas
Resolución de problemas o casos [PRESENCIAL][Resolución de ejercicios y problemas] 4
Prácticas en aulas de ordenadores [PRESENCIAL][Resolución de ejercicios y problemas] 2
Prácticas en aulas de ordenadores [PRESENCIAL][Prácticas] 2
Pruebas de progreso [PRESENCIAL][Pruebas de evaluación] 4
Elaboración de memorias de Prácticas [AUTÓNOMA][Aprendizaje basado en problemas (ABP)] 6
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo autónomo] 16

Tema 5 (de 5): Grafos.
Actividades formativas Horas
Resolución de problemas o casos [PRESENCIAL][Resolución de ejercicios y problemas] 4
Prácticas en aulas de ordenadores [PRESENCIAL][Resolución de ejercicios y problemas] 2
Prácticas en aulas de ordenadores [PRESENCIAL][Prácticas] 2
Pruebas de progreso [PRESENCIAL][Pruebas de evaluación] 4
Elaboración de memorias de Prácticas [AUTÓNOMA][Aprendizaje basado en problemas (ABP)] 6
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo autónomo] 16

Actividad global
Actividades formativas Suma horas
Comentarios generales sobre la planificación: Esta planificación es ORIENTATIVA, pudiendo variar a lo largo del curso en función de las necesidades docentes, festividades, etc. La planificación semana a semana de la asignatura podrá encontrarse en la plataforma Campus Virtual (Moodle). La asignatura se imparte en tres sesiones semanales de 1,5 horas.
10. BIBLIOGRAFÍA, RECURSOS
Autor/es Título Libro/Revista Población Editorial ISBN Año Descripción Enlace Web Catálogo biblioteca
 
Java ES con NetBeans + Documentación http://java.sun.com/javase/downloads/index.jsp  
Java. Tutorial online http://java.sun.com/docs/books/tutorial/java/TOC.html  
Página oficial de Haskell http://haskell.org  
Tutorial de Haskell http://www.haskell.org/tutorial/  
Bird, R.; Walder, P. Introducción a la Programación Funcional en Haskell Prentice-Hall 84-8322-176-4 2000 http://books.google.es/books?id=xIlyOiGOC6EC&printsec=frontcover&dq=haskell+bird&hl=es&ei=-ACQTLa9IIHxOe6WqOkM&sa=X&oi=book_result&ct=result&resnum=1&ved=0CC4Q6AEwAA#v=onepage&q&f=false Ficha de la biblioteca
Ehrig, H., Mahr, B. Fundamentals of Algebraic Specifications Springer-Verlag 3-540-51799-5 1990 http://books.google.es/books?id=sq1Ktr9W3RgC&lpg=PA41&dq=abstract%20data%20types&pg=PP1#v=onepage&q=abstract%20data%20types&f=false  
Goodrich, Michael T. Data structures and algorithms in Java Wiley & Sons 978-0-470-39880-7 2011 Ficha de la biblioteca
Lafore, R. Data Structures and algorithms in Java Sams Publishing 2002  
Lewis, John Estructuras de datos con Java : diseño de estructuras y algo Pearson Educación 84-205-5034-5 2006 Ficha de la biblioteca
Nell, Dale Abstract data types : specifications, implementations and ap D. C. Heath and Company 978-0-669-40000-7 1996 http://books.google.es/books?id=hJ6IOaiHVYUC&printsec=frontcover&dq=Dale+Walker+Abstract+data+types Ficha de la biblioteca



Web mantenido y actualizado por el Servicio de informática