Diagrama de temas

  • Estructuras de Datos (2012)

    estructuras.jpg

         

    Profesores

    Mario Aldea Rivas

    Pablo Sánchez Barreiro

    Departamento de Matemáticas, Estadística y Computación

     

     

        

       

       

       

    La asignatura tiene como objetivo dar a conocer los fundamentos de análisis, diseño, implementación, verificación y pruebas de los tipos abstractos de datos básicos y más comúnmente utilizados en el desarrollo de aplicaciones informáticas. Además, el alumno/a aprenderá a usar dichos tipos abstractos de datos como base para la construcción de aplicaciones informáticas, sabiendo elegir según las particularidades de cada aplicación, aquél tipo abstracto de datos que resulte más adecuado, atendiendo principalmente a criterios de eficiencia espacial y temporal.

    The goal of this subject is to make the student able to analyse, design, implement, verify and test basic abstract data types that are most frequently used for the development of software systems. Moreover, the student will learn how to use abstract data types as a cornerstone for the development of software systems, being able to select the abstract data type that is most suitable for an application according to its specific characteristics and considering as the temporal as the spatial efficiency.

     

    Palabras Clave de la Asignatura

    Queues, Tables, Tablas Hash, Hash, Estructuras de Datos, Algebraic Specifications, Colas, Pilas, Tablas de Dispersión, Lists, Stacks, Data Structures, Complexity, Complejidad Algorítmica, Trees, Abstract Data Types, Árboles, Tipos Abstractos de Datos, Especificaciones Algebraicas, Listas.

  • Programa

    programa

     

     

    Datos identificativos de la Asignatura

    • Asignatura: Estructuras de Datos

    • Código: G651

    • Departamento / Área: Departamento de Matemáticas, Estadística y Computación

    • Título: Grado en Ingeniería Ingeniería Informática

    • Centro: Facultad de Ciencias

    • Créditos ECTS: 6

    • Idioma de impartición: Español

    • Profesores responsables: Mario Aldea Rivas y Pablo Sánchez Barreiro

     

     

     

        Programa de la asignatura    

     

    1. Antecedentes

    • Tema 1.1. Modularidad e interfaces.

    • Tema 1.2. Relaciones de herencia: formas de implementar herencia múltiple.

    • Tema 1.3. Estructuras de datos genéricas.

    • Tema 1.4. Buenas prácticas de programación.

     

    2. Complejidad algorítmica

    • Tema 2.1. Notación O(n).

    • Tema 2.2. Cálculo de complejidad en algoritmos iterativos.

    • Tema 2.3. Cálculo de complejidad en algoritmos recursivos.

     

    3. Técnicas de implementación

    • Tema 3.1. Simples: vectores, enlazado mediante punteros y cursores.

    • Tema 3.2. Tabla hash: funciones de hashing. Técnicas de resolución de colisiones: abierto y cerrado. Implementación de tablas hash.

    • Tema 3.3. Estructuras arbóreas de búsqueda: árboles binarios y de búsqueda.

    • Tema 3.4. Árboles binarios equilibrados, árboles AVL y árboles rojinegros.

    • Tema 3.5. Implementación de árboles.

     

    4. Concepto y especificación de Tipos Abstractos de Datos (TADs)

    • Tema 4.1. Concepto de Tipo Abstracto de Datos.

    • Tema 4.2. Especificación algebraica de Tipos Abstractos de Datos.

    • Tema 4.3. Implementación de Tipos Abstractos de Datos.

    • Tema 4.4. Relación especificación-implementación.

    • Tema 4.5. Maude: un entorno de reescritura lógica para la especificación de Tipos Abstractos de Datos.

     

    5. Estructuras de datos lineales

    • Tema 5.1. Conjuntos, bolsas, listas y vectores.

    • Tema 5.2. Pilas, colas.

    • Tema 5.3. Tablas, aplicaciones o mapas.

    • Tema 5.4. Relaciones de orden: colas de prioridad.

    • Tema 5.5. Aplicaciones de las estructuras de datos lineales.

     

    6. Estructuras de datos jerárquicas

    • Tema 6.1. El tipo abstracto de datos árbol.

    • Tema 6.2. Recorrido y ordenación de árboles.

    • Tema 6.3. Aplicaciones.

     

     

     

        Programa de prácticas (2011-2012)    

      

    • P.1. Introducción.

    • P.2. Complejidad algorítmica.

    • P.3. Tipos enumerados.

    • P.4. Polimorfismo y enlazado dinámico.

    • P.5. Listas e Iteradores.

    • P.6. Estructuras enlazadas.

    • P.7. Tablas de dispersión.

    • P.8. Árboles Binarios de Búsqueda.

    • P.9. Implementación de TADs.

    • P.10. Desarrollo de una mini aplicación utilizando TADs.