ASIGNATURA: ESTRUCTURA DE DATOS II Cód: 31-206 Régimen cuatrimestral Horas reloj semanales: 4 Horas teóricas: 15 Horas prácticas: 45 Horas totales: 60 Carrera: Sistemas 2016 FUNDAMENTOS: Un tipo de dato abstracto (TDA) es un modelo matemático compuesto por una colección de operaciones (funciones) definidas sobre un conjunto de datos para el modelo. En un TDA no se necesita conocer como actúan los operadores sobre la representación interna de los tipos definidos, que además, suele ser una implementación bastante dependiente de la máquina sobre la que trabaje el compilador. Lo interesante es que los lenguajes actuales nos van a permitir ampliar los TDA predefinidos con otros que serán definidos por el propio programador para adecuar así los tipos de datos a las necesidades de los programas. Los TDA que nos van a interesar de ahora en adelante son aquellos que reflejen cierto comportamiento organizando cierta variedad de datos estructuradamente. A esta forma estructurada de almacenar los datos será a la que nos refiramos para caracterizar cada TDA. Los lenguajes de programación de alto nivel permiten al programador abstraerse del sin fin de detalles de los lenguajes ensambladores. Otro ejemplo, la memoria de la computadora es una estructura unidimensional formada por celdas y sin embargo trabajamos como si fuera única. La abstracción nos brinda la posibilidad de ir definiendo una serie de refinamientos sucesivos a nuestro TDA y entiéndase bien que cuando decimos refinamientos sucesivos nos estamos refiriendo a la estrategia que se utiliza para descomponer un problema en subproblemas. Conforme evoluciona el diseño de software a cada nivel de módulos se representa un refinamiento en el nivel de abstracción. Esto es, incluir detalles que fueron obviados en un nivel superior, en un nivel más bajo de la jerarquía. Si profundizamos más al mundo de la programación y sus conceptos, existen dos de estos conceptos que no se deben confundir, ellos son: tipo de datos y estructura de datos. Un tipo de dato, en un lenguaje de programación, define un conjunto de valores que una determinada variable puede tomar, así como las operaciones básicas sobre dicho conjunto. Las estructuras de datos son colecciones de variables, no necesariamente del mismo tipo, relacionadas entre sí de alguna forma. Las estructuras de datos están caracterizadas por el tipo de dato de los elementos guardados en la estructura y por la relación definida sobre estos elementos. OBJETIVOS: Al finalizar el curso, el alumno habrá adquirido la habilidad de: Organizar un conjunto de datos elementales (mínima información que se tiene en un sistema) Interrelacionar los datos con un conjunto de operaciones. Facilitar la manipulación de los datos Elegir la estructura de datos apropiada para cada problema dependiendo de factores como la frecuencia y el orden en que se realiza cada operación. Relacionar la simplicidad y la eficiencia para la realización de cada operación. 1
CONTENIDOS MINIMOS: Punteros Manejo de Memoria en Ejecución. Asignación Dinámica. Estructuras Dinámicas. Tipos de Datos Recursivos. Recursividad. Algoritmos Fundamentales: recorrido, búsqueda ordenamiento, actualización TDA lista dinámica. TDA pila dinámica TDA cola dinámica TDA Lista doblemente enlazada. Anillos o Lista circular PROGRAMA ANALITICO: Unidad I: Revisión de conceptos Punteros. Asignación dinámica de memoria. TDA (Tipo de Dato Abstracto) estático Archivos binarios. Trabajo con ejercicios integradores utilizando los conceptos anteriormente indicados. Unidad II: Estructuras Dinámicas Concepto de estructuras dinámicas. Reconocimiento de la realidad circulante. Aplicación de los conceptos de cohesión y acoplamiento. Implementación de estructuras dinámicas. Esquema de representación de las estructuras elementales: pila, cola y lista. Desarrollo de problemas simples, con estructuras dinámicas estáticas y dinámicas. Recursividad. Unidad III: TDA lista dinámica. Lista simplemente enlazada. Definición e implantación. Operaciones de generación, inserción, eliminación, recorrido, búsqueda. Lista simplemente enlazada ordenada por posición. Lista simplemente ordenada por uno o mas campos. Aplicaciones Unidad IV: TDA pila dinámica. Pila. Definición e implantación. Modelo LIFO. Modelo de implantación estático y modelo de implantación dinámico. Operaciones de inserción y eliminación. Aplicaciones Unidad V: TDA cola dinámica. Cola. Definición e implantación. Modelo FIFO. Modelo de implantación estático y modelo de implantación dinámico. Operaciones de inserción y eliminación. Aplicaciones Unidad VI: TDA Lista doblemente enlazada. Anillos o Lista circular Listas simplemente enlazadas. Definición e implantación Operaciones de inserción y eliminación. Anillos o Lista circular. Definición e implantación. Operaciones. Ventajas e inconvenientes. METODOLOGÍAS DE ENSEÑANZA Y APRENDIZAJE: La introducción de un tema es precedida por un diálogo dirigido, con preguntas orientadas hacia el tema a tratar, lo que induce a la participación de todo el grupo. 2
A partir de esto se desarrolla la exposición teórica, complementada inmediatamente con la práctica en computadora. Según el tema a tratar, esta exposición puede ser apoyada por una lectura previa recomendada a los alumnos. El alumno trabajará en primer término, en cada desarrollo de un nuevo concepto, con los ejemplos provistos por el profesor, e intentará hacerlos funcionar. Cuando esto se haya logrado, se trabajara con los ejercicios de la guía implementada para la materia, que tendrán el mismo grado de complejidad del desarrollado en clase, cuyo objetivo primordial es afianzar los conceptos impartidos. Esa ejercitación permite al alumno confrontar los nuevos conocimientos con los previamente adquiridos y aplicar los conceptos vistos teóricamente, a nuevas situaciones. Los alumnos deberán presentar, en grupos (cuya cantidad de alumnos depende del curso) un proyecto asociado a las estructuras de datos estudiadas en ésta materia. El tema del proyecto es propuesto por el profesor a cargo del curso, con entregas parciales semana por medio las elaboración y presentación de este proyecto tiene una carga horaria de 21 horas. La finalidad primordial de dicho TP es obviamente la aplicación de los conceptos y por otro lado definir una nota conceptual individual de cada alumno, que podrá ayudar a definir la nota del parcial. El TP NO es condicionante para rendir el parcial, es evaluativo conceptualmente. EVALUACION: Habrá dos exámenes parciales: uno aproximadamente en la mitad del curso, y otro sobre el final del mismo. Esta asignatura es cuatrimestral, en una sola clase semanal. La regularidad por asistencia se obtiene con una ausencia menor o igual que tres clases. La regularidad por conocimientos se obtiene aprobando los dos exámenes parciales, ya sea en primera o en segunda instancia. Se aprueba la materia rindiendo final. CRONOGRAMA: Clase Unidad Teoría Práctica 1 I 2 2 2 II 2 2 3 II 2 2 5 III 1 3 6 III 4 7 III 1 3 8 IV 4 9 IV 1 3 10 V 4 11 V 1 3 12 V 4 13 VI 1 3 14 VI 4 15 VI 4 3
BIBLIOGRAFIA: Básica: - JOYANES AGUILAR LUIS - ZAHONERO MARTINEZ IGNACIO Programación en C: Metodología Algoritmos y Estructura de Datos. McGraw Hill, México 2005 ISBN 9788448198442 - JOYANES AGUILAR LUIS Fundamentos de programación. Algoritmos estructuras de datos y objetos. Mc Graw-Hill. 2003. ISBN 9788448136642 - JOYANES AGUILAR LUIS - FERNANDEZ AZUELA MATILDE, SANCHEZ GARCIA LUCAS, ZAHONERO MARTINEZ IGNACIO Estructura de Datos en C. McGraw Hill, México 2005 ISBN 9788448145125 Complementaria: - JOYANES AGUILAR LUIS - FERNANDEZ AZUELA MATILDE, SANCHEZ GARCIA LUCAS, ZAHONERO MARTINEZ IGNACIO Estructura de Datos Libro de Problemas. MCGRAW-HILL, México 1999 ISBN 9788448122980 - SCHILDT HERBERT: C Manual de Referencia. MCGRAW-HILL 2001 ISBN 9789701047705. Planeamiento Educativo gdeplaneamiento@kennedy.edu.ar 4
5