Guias Docentes

  GUÍA DOCENTE DE LA ASIGNATURA: ESTRUCTURA DE DATOS    
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: 2016-17
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: Inglés en el Grupo 12 (Grupo I). English Friendly: No
Página Web:
Nombre del profesor: JUAN ANTONIO GUERRERO ABENZA - Grupo(s) impartido(s): 10 11
 
Despacho Departamento Teléfono Correo electrónico Horario de tutoría
Infante D. Juan Manuel/1A4 SISTEMAS INFORMÁTICOS 2433 juan.guerrero@uclm.es Se publicará durante el curso. Ver http://www.esiiab.uclm.es
Nombre del profesor: GINES MORENO VALVERDE - Grupo(s) impartido(s): 12
 
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 Se publicará durante el curso. Ver 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.

----------------------------------

[ENGLISH] Prerequisites

Students are expected to have already acquired (in previous subjects like Algebra and Calculus, first year) a basic mathematical background in logic, functions theory, algebraic structures and abstraction, as well as some experience in basic programming environments and the Java language (such concepts have been previously taught in the subjects Programming Foundations -I and II- and Information Systems).

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.

---

[ENGLISH] This Subject within the degree programme, relationship with other subjects and with the CS profession.

Data Structure belongs to the Programming block and it is included into the common module of informatics within de degree programme.

The subject can be seen as the natural continuation of Programming Foundations II, but here we study new data structures under several points of view which include, apart from its use, how they are formally defined and implemented, allowing too the possibility for being incorporated as a library into a programming environment.

The subject is also strongly connected  with Programming Methodology, where several algorithmic patterns admit an immediate application on the new data structures (for instance, sorting linear ADTs, greedy/dynamic traversing of trees, optimal path searching on graphs, ...) as well as with Declarative Programming (speciality on Computation), where it is mandatory to have been acquired some basic notions on  lists, recursion, etc. in order to reinforce some data structures after introducing new expressive resources like higher-order, infinite data structures, and so on.  

During the rest of the degree (and even furthermore, on their professional careers), students will be concerned with the implementation and manipulation of software applications using complex data structures. Modern languages usually provide some of them by default (lists, queues, ...), but they must be studied with some detail for being correctly used. Anyway, other more intrincated data structures (trees, graphs, ...), which are not directly available on typical programming environments, must be designed and incorporated into such tools. Furthermore, the use of data structures, from the point of view of their design and analysis, provide a good level of abstraction and programming skills (recursion, modularity ...) very useful in most tasks related to the development of software applications.
 

4. Competencias de la titulación que la asignatura contribuye a alcanzar
Competencias propias de la asignatura
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 propios de la asignatura
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.
Aplicar los principios básicos de diseño estructurado y orientado a objetos para la resolución de problemas.
6. Temario / Contenidos
 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 de****ion 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 BA4, CO6, CO7, CO8 0.68 17.00 No No Clase (grupos grandes)
Resolución de problemas o casos [PRESENCIAL] Resolución de ejercicios y problemas BA4, CO6, CO7, CO8, PER1, PER4 0.68 17.00 No No Clase (grupos grandes)
Prácticas en aulas de ordenadores [PRESENCIAL] Resolución de ejercicios y problemas BA4, CO6, CO7, CO8, PER1, PER4 0.28 7.00 No No Laboratorio (grupos pequeños)
Prácticas en aulas de ordenadores [PRESENCIAL] Prácticas BA4, CO6, CO7, CO8, PER1, PER4 0.28 7.00 No No Laboratorio (grupos pequeños)
Pruebas de progreso [PRESENCIAL] Pruebas de evaluación BA4, CO6, CO7, CO8 0.48 12.00 Controles en clase y laboratorio
Prueba final [PRESENCIAL] Pruebas de evaluación BA4, CO6, CO7, CO8 0.24 6.00 No No Examen extraordinario.
Elaboración de memorias de Prácticas [AUTÓNOMA] Aprendizaje basado en problemas (ABP) BA4, CO6, CO7, CO8, PER1, PER4 0.80 20.00 No No Entregables, etc.
Estudio o preparación de pruebas [AUTÓNOMA] Trabajo autónomo BA4, CO6, CO7, CO8, PER1, PER4 2.56 64.00 No No Repaso y ampliación de temas. Resolución de ejercicios. Terminar prácticas. Preparación de Controles.
Total: 6.00 150.00  
Créditos totales de trabajo presencial: 2.64 Horas totales de trabajo presencial: 66.00
Créditos totales de trabajo autónomo: 3.36 Horas totales de trabajo autónomo: 84.00
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 Estud. pres. 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:
[ESPAÑOL]
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.
---

[ENGLISH] Assessment criteria in the regular exam session.
There is not a final term exam. Each student's final grade in the regular assessment will be based on the results from her/his work developed throughout the course (tests + submitted tasks + participation). In order to achieve a pass grade in this subject, the total score of the sum (weighted sum according to the previous table) of all the assignments to be assessed can not be less than 50% of the maximum possible score.
Particularidades de la convocatoria extraordinaria:
[ESPAÑOL]
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.
---

[ENGLISH] Assessment Criteria in the extra exam session.
For the suplementary/extra exam session, students will have to retake all the achievement tests, with the same weight as in the final grade (75%). Besides, the score, if existing in the regular session, from the assigments to be submitted, will also be added. Again, the same conditions of the regular exam session hold.
Particularidades de la convocatoria especial de finalización:
[ESPAÑOL]
Como la convocatoria extraordinaria.
---

[ENGLISH] Assessment Criteria in the special exam session for completion of studies.
Same criteria as the previous one (extra exam session).

9. Secuencia de trabajo, calendario, hitos importantes e inversión temporal
No asignables a temas
Actividades formativas Horas
Prueba final [PRESENCIAL] [Pruebas de evaluación] (6 h tot.) 6
Tema 1 (de 5): Introducción
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL] [Método expositivo/Lección magistral] (17 h tot.) 2
Resolución de problemas o casos [PRESENCIAL] [Resolución de ejercicios y problemas] (17 h tot.) 2
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo autónomo] (64 h tot.) 6
Periodo temporal: semana 1
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] (17 h tot.) 3
Resolución de problemas o casos [PRESENCIAL] [Resolución de ejercicios y problemas] (17 h tot.) 3
Prácticas en aulas de ordenadores [PRESENCIAL] [Resolución de ejercicios y problemas] (7 h tot.) 1
Prácticas en aulas de ordenadores [PRESENCIAL] [Prácticas] (7 h tot.) 1
Elaboración de memorias de Prácticas [AUTÓNOMA] [Aprendizaje basado en problemas (ABP)] (20 h tot.) 2
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo autónomo] (64 h tot.) 10
Periodo temporal: semanas 2 y 3
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] (17 h tot.) 4
Resolución de problemas o casos [PRESENCIAL] [Resolución de ejercicios y problemas] (17 h tot.) 4
Prácticas en aulas de ordenadores [PRESENCIAL] [Resolución de ejercicios y problemas] (7 h tot.) 2
Prácticas en aulas de ordenadores [PRESENCIAL] [Prácticas] (7 h tot.) 2
Pruebas de progreso [PRESENCIAL] [Pruebas de evaluación] (12 h tot.) 4
Elaboración de memorias de Prácticas [AUTÓNOMA] [Aprendizaje basado en problemas (ABP)] (20 h tot.) 6
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo autónomo] (64 h tot.) 16
Periodo temporal: semanas 4 5 6 7
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] (17 h tot.) 4
Resolución de problemas o casos [PRESENCIAL] [Resolución de ejercicios y problemas] (17 h tot.) 4
Prácticas en aulas de ordenadores [PRESENCIAL] [Resolución de ejercicios y problemas] (7 h tot.) 2
Prácticas en aulas de ordenadores [PRESENCIAL] [Prácticas] (7 h tot.) 2
Pruebas de progreso [PRESENCIAL] [Pruebas de evaluación] (12 h tot.) 4
Elaboración de memorias de Prácticas [AUTÓNOMA] [Aprendizaje basado en problemas (ABP)] (20 h tot.) 6
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo autónomo] (64 h tot.) 16
Periodo temporal: semanas 8 9 10 11
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] (17 h tot.) 4
Resolución de problemas o casos [PRESENCIAL] [Resolución de ejercicios y problemas] (17 h tot.) 4
Prácticas en aulas de ordenadores [PRESENCIAL] [Resolución de ejercicios y problemas] (7 h tot.) 2
Prácticas en aulas de ordenadores [PRESENCIAL] [Prácticas] (7 h tot.) 2
Pruebas de progreso [PRESENCIAL] [Pruebas de evaluación] (12 h tot.) 4
Elaboración de memorias de Prácticas [AUTÓNOMA] [Aprendizaje basado en problemas (ABP)] (20 h tot.) 6
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo autónomo] (64 h tot.) 16
Periodo temporal: semanas 12 13 14 15
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
Enseñanza presencial (Teoría) [PRESENCIAL] [Método expositivo/Lección magistral] 17
Resolución de problemas o casos [PRESENCIAL] [Resolución de ejercicios y problemas] 17
Prácticas en aulas de ordenadores [PRESENCIAL] [Resolución de ejercicios y problemas] 7
Prácticas en aulas de ordenadores [PRESENCIAL] [Prácticas] 7
Pruebas de progreso [PRESENCIAL] [Pruebas de evaluación] 12
Prueba final [PRESENCIAL] [Pruebas de evaluación] 6
Elaboración de memorias de Prácticas [AUTÓNOMA] [Aprendizaje basado en problemas (ABP)] 20
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo autónomo] 64
Total horas: 150
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 planificación semana a semana de la asignatura podrá encontrarse en la plataforma Campus Virtual (Moodle).
---

[ENGLISH]
This course schedule is APPROXIMATE; it could be varied throughout the academic course due to teaching needs, bank holidays, etc... A weekly schedule will be properly detailed and updated in the online platform (Campus Virtual, moodle).
Note that all the lectures, practice sessions, exams and related activities performed in the bilingual groups will be entirely taught in English.
10. Bibliografía, recursos
Autor/es Título Editorial Población ISBN Año Descripción Enlace Web Catálogo biblioteca
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
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/  

Web mantenido y actualizado por el Servicio de Informática.