Contenido - Universidad del Cauca

Anuncio
UNIVERSIDAD DEL CAUCA
FACULTAD DE INGENIERIA ELECTRÓNICA Y
TELECOMUNICACIONES
PROGRAMA DE INGENIERIA DE SISTEMAS
ASIGNATURA:
MODALIDAD:
INTENSIDAD:
PREREQUISITOS:
CLASIFICACION:
ESTRUCTURA DE DATOS II
PRESENCIAL TEORICO / PRACTICA
4 HORAS TEORICAS Y 2 HORAS PRACTICAS / SEMANA.
ESTRUCTURA DE DATOS I
FORMACION PROFESIONAL
OBJETIVO GENERAL
Estudiar los conceptos de análisis y diseño de tipos abstractos de datos, haciendo especial
énfasis en las estructuras de datos no lineales como son los grafos y árboles. Además,
profundizar los conceptos de la programación orientada a objetos y aplicarlos en un lenguaje
altamente utilizado.
OBJETIVOS ESPECIFICOS
El estudiante al final del curso estará en capacidad de:
1. Implementar soluciones algorítmicas con grafos y árboles.
2. Entender, diseñar e implementar tipos abstractos de datos.
3. Aplicar los conceptos de programación orientada a objetos y de estructuras no lineales en
la organización de la información del computador en discos.
METODOLOGIA
1. El alumno adquirirá los conocimientos básicos a través de clases magistrales
acompañadas de ejercicios prácticos.
2. El alumno deberá profundizar sus conocimientos con temas complementarios
desarrollando talleres prácticos y trabajos de investigación.
Estructura de Datos II
1
CONTENIDO
1. INTRODUCCIÓN
1.1.Revisión de los conceptos básicos de Programación Orientada a Objetos
1.1.1. Historia
1.1.2. Mecanismos de Abstracción
1.1.3. Abstracción, Polimorfismo, Herencia y Encapsulamiento.
1.2.Organización de un Lenguaje de programación orientada a objetos (C++)
1.2.1. Conceptos Básicos
1.2.2. Estructuras y Clases
1.2.3. Ejemplos
2. TIPOS ABSTRACTOS DE DATOS
2.1.Definiciones
2.2.Representación de un Objeto Abstracto
2.3.Invariante de un TAD
2.4.Especificación de un TAD
2.5.Clasificación de las Operaciones
2.6.Manejo de Error
2.7.Metodología de Diseño de TAD
2.8.Ejemplos
3. COMPLEJIDAD
3.1.Análisis de Algoritmos
3.2.Tiempo de ejecución de un algoritmo.
3.3.Conceptos de Complejidad.
3.4.Aritmética de notación O.
4. ESTRUCTURAS DE DATOS NO LINEALES
4.1.introducción.
4.2.Revisión Matemática
4.2.1. Sumas y Recurrencias
4.2.2. Conjuntos, Numeración y Grafos.
5. ÁRBOLES
5.1.Binarios
5.1.1. Definiciones y Conceptos Básicos
5.1.2. El TAD Arbin
5.1.3. Ejemplos
5.1.4. Recorridos de Árboles Binarios
5.1.4.1.Inorden, Postorden, Preorden, Niveles.
5.1.4.2.Reconstrucción a partir de sus recorridos.
5.1.5. Algorítmica de manejo de árboles
5.1.6. Implementación de Arboles binarios.
5.1.6.1.Sencillamente encadenados
Estructura de Datos II
2
5.1.6.2.Encadenados al padre
5.1.6.3.Cursores
5.1.6.4.Representación Secuencial
5.1.7. Destrucción y persistencia de Arboles binarios
5.1.7.1.Cursores
5.1.7.2.Representación Secuencial
5.1.7.3.Destructora del TAD Harbin
5.1.8. El TAD Arbol Binario Ordenado ArbinO
5.1.8.1.Búsqueda
5.1.8.2.Inserción
5.1.8.3.Eliminación
5.1.9. El TAD Arbol Binario Balanceado ArbinAVL
5.1.9.1.Inserción
5.1.9.2.Eliminación
5.1.10. El TAD Arbol de Sintaxis
5.1.10.1. Ejemplo practico.
5.2.Árboles N – arios.
5.2.1. Definiciones y Conceptos Básicos
5.2.2. El TAD ArbolN.
5.2.3. Ejemplos
5.2.4. Implementación de Arboles N – arios.
5.2.4.1.Vector de Apuntadores
5.2.4.2.Hijo izquierdo – Hermano derecho.
5.2.4.3.Vectores Dinámicos
5.2.4.4.Lista de Hijos
5.2.4.5.Representaciones Implícitas
5.2.5. Arboles N – arios Específicos y sus aplicaciones
5.2.5.1.Arbol 123
5.2.5.2.Arbol 234
5.2.5.3.Arbol 23
5.2.5.4.Arbol Trie
5.2.5.5.Arbol Cuadtree
5.2.5.6.Arbol AND – OR
5.2.5.7.Arboles de Juego
5.2.5.8.Arbol Rojo – Negro
5.2.5.9.Arbol Multilayer
5.2.5.10. Arboles B
5.2.5.11. Arboles B+
5.2.5.12. Arbol Montículo
6. GRAFOS
6.1.Definiciones y Conceptos Básicos
6.2.El TAD Grafo
6.3.Implementación de Grafos
6.3.1. Matrices de Adyacencia.
Estructura de Datos II
3
6.3.2. Lista de Sucesores
6.3.3. Listas encadenadas de Adyacencia.
6.3.4. Listas de Arcos
6.3.5. Estructuras de Datos Implícitas.
6.4.Caminos de Un grafo
6.5.Recorridos de grafos, Búsqueda
6.5.1. Plano
6.5.2. Profundidad
6.5.3. Niveles
6.5.4. Heurísticos
6.6.Caminos más cortos
6.6.1. Dijsktra
6.6.1.1.Costo de los caminos mininos
6.6.1.2.Caminos mínimos.
6.6.2. Bellman-Ford.
6.7.Minimum spanning trees: Prim.
7. FICHEROS EXTERNOS
7.1.Memoria secundaria
7.1.1. Organización y costes de acceso.
7.2.Procesamiento de ficheros
7.2.1. Operaciones fundamentales en C.
7.3.Organización de ficheros
7.3.1. Registros y headers.
7.4.Compresión de ficheros.
7.5.Índices para ficheros.
7.6.Ordenación de ficheros.
7.7.Hashing.
EVALUACIONES
Se realizarán tres (3) evaluaciones de la siguiente forma:
NUMERO
Primer Parcial
PORCENTAJE
35%
Segundo Parcial
35%
Tercer Parcial
30%
COMPONENTES
Parcial Escrito
80%
Talleres y Laboratorios 20%
Parcial Escrito
60%
Talleres y Laboratorios 20%
Fase 1 Proyecto de clase 20%
Parcial Escrito
50%
Talleres y Laboratorios 10%
Fase 2 Proyecto de clase 40%
Los proyectos, talleres y laboratorios en grupo serán evaluados individualmente y deben estar
debidamente documentados. Todo Proyecto NO sustentado pierde validez.
Las
sustentaciones serán programadas con anterioridad definiendo fecha y hora para cada alumno.
Estructura de Datos II
4
BIBLIOGRAFÍA
Fundamentos de Programación, Luis Joyanes Aguilar, McGraw - Hill.
Turbo C/C++. Hebert Schildt, McGraw -Hill.
Estructura de datos con C y C++. Yedidyah Langsam, Moshe J. Augenstein y Aaron M.
Tanenbaum. Prentice Hall, Segunda edición, 1997.
Matemática discreta y lógica. Una perspectiva desde la Ciencia de la Computación.
Grassmann, W. y Tremblay, J.P. Prentice Hall, Madrid, 1996 ISBN:84-89660-04-2
Estructuras de Datos, Osvaldo Cairo, Mc Graw – Hill.
Estructura de datos en C. Aaron Tanenbaum. Prentice Hall.
TADS: Un enfoque desde tipos abstractos de datos. J. Villalobos. Ediciones Uniandes.
Estructuras de Archivos. M.Folk. Addison Wesley.
Material de Referencia del Curso en Fotocopiadora.
Estructura de Datos II
5
Descargar