Guías Docentes Electrónicas
1. DATOS GENERALES
Asignatura:
ESTRUCTURA DE DATOS
Código:
42312
Tipología:
OBLIGATORIA
Créditos ECTS:
6
Grado:
346 - GRADO EN INGENIERÍA INFORMÁTICA (AB)
Curso académico:
2018-19
Centro:
604 - ESCUELA SUPERIOR DE INGENIERIA INFORMATICA (AB)
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:
Inglés en el Grupo 12
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
2433
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
BA4 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.
CO6 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.
CO7 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.
CO8 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.
PER1 Capacidad de trabajo en equipo.
PER4 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 ECTS Horas Ev Ob Rec Descripción
Enseñanza presencial (Teoría) [PRESENCIAL] Método expositivo/Lección magistral CO7 CO8 BA4 CO6 0.68 17 S N N Clase (grupos grandes)
Resolución de problemas o casos [PRESENCIAL] Resolución de ejercicios y problemas CO7 PER4 CO8 BA4 CO6 PER1 0.68 17 S N N Clase (grupos grandes)
Prácticas en aulas de ordenadores [PRESENCIAL] Resolución de ejercicios y problemas CO7 PER4 CO8 BA4 CO6 PER1 0.28 7 S N N Laboratorio (grupos pequeños). Ejercicios de forma individual.
Prácticas en aulas de ordenadores [PRESENCIAL] Prácticas CO7 PER4 CO8 BA4 CO6 PER1 0.28 7 S N N Laboratorio (grupos pequeños)
Pruebas de progreso [PRESENCIAL] Pruebas de evaluación CO7 CO8 BA4 CO6 0.48 12 S N S Controles en clase y laboratorio
Prueba final [PRESENCIAL] Pruebas de evaluación CO7 CO8 BA4 CO6 0.24 6 S N N Examen extraordinario.
Elaboración de memorias de Prácticas [AUTÓNOMA] Aprendizaje basado en problemas (ABP) CO7 PER4 CO8 BA4 CO6 PER1 0.8 20 S N N Entregables, etc. de forma individual.
Estudio o preparación de pruebas [AUTÓNOMA] Trabajo autónomo CO7 PER4 CO8 BA4 CO6 PER1 2.56 64 S N 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
Rec: Actividad formativa recuperable
8. CRITERIOS DE EVALUACIÓN Y VALORACIONES
  Valoraciones  
Sistema de evaluación Estudiante presencial Estud. semipres. Descripción
Pruebas de progreso 75.00% 0.00% Controles sobre conociemientos adquiridos en clase y laboratorio ([ESC]50%, [LAB]25%)
Elaboración de memorias de prácticas 15.00% 0.00% Entregables (Moodle, etc.) para lo que podrán realizarse pruebas presenciales para su valoración ([INF]15%)
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%)
Total: 100.00% 0.00%  

Criterios de evaluación de la convocatoria ordinaria:
No hay examen final. La nota de la convocatoria ordinaria será el resultado de la evaluación continua (controles + entregables + parcicipación). Para aprobar, la suma de todas las tareas evaluables (según las valoraciones del cuadro anterior) no podrá ser inferior al 50% de la nota máxima alcanzable.
Particularidades de la convocatoria extraordinaria:
Recuperación de las pruebas de progreso (controles), con el mismo valor sobre la nota final (75%), para la que se guardará, si existe, la puntuación obtenida en las tareas evaluables del curso que no sean pruebas de progreso. Las condiciones para aprobar son las mismas que en la convocatoria ordinaria.
Particularidades de la convocatoria especial de finalización:
Como la convocatoria 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
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 2
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
Comentario: Sólo grupos grandes (4 horas) (no se usa aula de ordenadores)

Tema 2 (de 5): Descripción formal de TADs.
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 3
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
Comentario: En semana 2 sólo grupos grandes

Tema 3 (de 5): TADs lineales.
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 4
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: Una de las 4 semanas sólo grupos grandes. 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
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 4
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: Una de las 4 semanas sólo grupos grandes. Incluye 4 horas de pruebas de progreso (control 2)

Tema 5 (de 5): Grafos.
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 4
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: Una de las 4 semanas sólo grupos grandes. Incluye 4 horas de pruebas de progreso (control 3)

Actividad global
Actividades formativas Suma horas
Comentarios generales sobre la planificación: [ESPAÑOL] Esta planificación es ORIENTATIVA, pudiendo variar a lo largo del curso en función de las necesidades docentes, festividades, etc. La asignatura se imparte en tres sesiones semanales de 1,5 horas. Las actividades de evaluación o recuperación de clases podrán planificarse, excepcionalmente, en horario de tarde. La planificación semana a semana de la asignatura podrá encontrarse en la plataforma Campus Virtual (Moodle). --- [ENGLISH] This course schedule is APPROXIMATE; it could vary throughout the academic year due to teaching needs, bank holidays, etc...The subject is taught in three weekly sessions of 1.5 hours A weekly schedule will be properly detailed and updated in the online platform (Virtual Campus). The activities of evaluation or recovery of classes can be planned, exceptionally, in the afternoon. Note that all the lectures, practice sessions, exams and related activities performed in the bilingual groups will be entirely taught and assesed in English.
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