MATERIA: Introducción a Ciencias de la Computación
II
CLAVE: COMP-320
SEMESTRE DE UBICACION: Tercero
AREA: Ciencias de la Computación
PRE-REQUISITOS: Ninguno
OBJETIVOS: Este curso continúa con el desarrollo de las
ideas fundamentales en, el diseño y desarrollo de software. Se
introduce a los alumnos el concepto de tipo abstracto de datos. Ese concepto
se aplica a la implementación de varias estructuras de datos, incluyendo
stacks, colas y árboles binarios. Se revisan algoritmos de búsquedas
y ordenamientos que utilizan estas estructuras de datos. Otros temas incluyen
recursividad, el ciclo de vida del software, especificación de
requisitos, e introducción a verificación de programas.
También en este curso se hace una introducción superficial
a los problemas de complejidad de algoritmos
TEMARIO:
- Especificación, verificación y validació
- Tipos de especificaciones: especificaciones operativas; especificaciones
descriptivas; construcción y usos de especificaciones
- Verificación. Metas; enfoques, pruebas, análisis;
ejecución simbólica; depuración
- Lectura de código y diseño, recorridos estructurados
- Tipos abstractos de datos
- Conceptos Involucrados
- Instrumentación de TAD (ADT) en un lenguaje de alto nivel,
con ejemplos
- Estructuras de datos básicos
- Definición de las estructuras de datos lineales. Estructuras
secuenciales. Arreglos empacados
- Uso de las estructuras de datos básicos
- Implementaciones contiguas y ligadas; ajuste para que correspondan
al problema planteado, incluyendo contraposición entre tiempo
y espacio
- Estructuras múltiples. Búsqueda, inserción
y remoción de elementos. Listas circulares y bidireccionales.
Listas múltiples
- Estructuras de datos no lineales
- Presentación de las estructuras no lineales. Árboles
y estructuras arborescentes. Árboles binarios. Representación
de árboles arbitrarios en base a árboles binarios
- Listas y recolección de basura. Asignación dinámica
de espacio
- Búsquedas y Ordenamientos
- Algoritmos de ordenamiento de orden nlogn (quicksort, heapsort,
mergesort); complejidad en el tiempo y el espacio: mejor y peor
casos
- Otros algoritmos de ordenamiento (Algoritmo de Shell, de cubetas
y de radicales)
- Comparación de algoritmos
- Funciones de dispersión y resolución de colisiones
- Algoritmos de búsqueda y manejo de árboles balanceados:
árboles B y árboles AVL
- Algoritmos de ordenamientos externos
BIBLIOGRAFIA:
- Tucker, A.B.;Bradley, W.J.; Cupper, R.D.; Epstein, R.D.; Kelemen,
C.F.,Fundamentals of Computing, II. Abstraction, Data Structures, and
Large Software Systems, C+ + Edition, McGraw-Hill, 1994
- Magidin, M., Estructuras De Datos, Editorial Trillas, 1991
BIBLIOGRAFÍA COMPLEMENTARIA:
-
Aho, A. V.; Hopkroft, J. E.; Ullman, J. D., Estructuras De Datos
Y Algoritmos, AddisonWesley Publishing Company, 1988
- Baase, S., Computer Algorithms, Introduction to Design and Analysis,
Addison-Wesley Publishing Company, 1990
- Cormen, T. H.; Leierson, C. E.; Rivest, R. L., Introduction To Algolithms,
McGraw-Hili Book Company, 1990
- Biggerstaff, T. J.; Perles A. J. edited by , Software Reusabi@, Volume
Ii II, ACM Press, Addison-Wesley Publishing Company, 1989
- Ghezzi, C.; Jazayeri, M.; Mandrioli, D., Fundamentals Of Software
Engineedng, Prentice-Hall Inc., 1991
- Glass, R. L., Software Conflict, Essays on the Ail and Science of
Software Engineen'ng, Yourdon Press Computing Series, 1991
- Gehani, N.; McGettrick, A.D. ; Editores., Software Specificatio Techniques,
AddisonWesley Publishing Company, 1980
- Gries, D., Editor, Programming in the 1990's, An Introduction to the
Calculation of Programs, Springer Verlag, 1990
- Dijkstra, W. E. Editor, Fonnal Development Of Programs And Proofs,
Addison-Wesley Publishing Company, 1990
|