Sie sind auf Seite 1von 3

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

FACULTAD DE CIENCIAS
CARRERA DE MATEMÁTICO

INTRODUCCIÓN A CIENCIAS DE LA COMPUTACIÓN II

HORAS A LA SEMANA/SEMESTRE
SEMESTRE: Segundo al cuarto
TEÓRICAS PRÁCTICAS CRÉDITOS
CLAVE: 0339
4/64 2/32 10

CARÁCTER: OPTATIVO.
MODALIDAD: CURSO.
SERIACIÓN INDICATIVA ANTECEDENTE: Introducción a Ciencias de la Compu-
tación I.
SERIACIÓN INDICATIVA SUBSECUENTE: Análisis de Algoritmos I, Diseño de Sis-
temas Digitales, Ingenierı́a de Software.

OBJETIVO(S): Este curso continúa con el desarrollo de las ideas fundamentales en el di-
señ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, incluyen-
do 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. Tam-
bién en este curso se hace una introducción superficial a los problemas de complejidad de
algoritmos.

NUM. HORAS UNIDADES TEMÁTICAS


18 1. Especificación
1.1 Tipos de especificaciones: Especificaciones operativas; especifica-
ciones descriptivas; Construcción y uso de especificaciones.
1.2 Verificación. Metas; enfoques, pruebas; análisis; ejecución simbóli-
ca; depuración.
1.3 Lectura de código y diseño, recorridos estructurado.
12 2. Tipos abstractos de datos
2.1 Conceptos involucrados.
2.2 Instrumentación de TAD (ADT) en un lenguaje de alto nivel, con
ejemplos.

1
30 3. Estructuras de datos básicas
3.1 Definición de las estructuras de datos lineales. Estructuras se-
cuenciales. Arreglos empacados.
3.2 Uso de las estructuras de datos básicas.
3.3 Implementaciones contiguas y ligadas; ajuste para que correspon-
dan al problema planteado, incluyendo contraposición entre tiempo
y espacio.
3.4 Estructuras múltiples. Búsqueda, inserción y remoción de elemen-
tos. Listas circulares y bidireccionales. Listas múltiples.
12 4. Estructuras de datos no lineales
4.1 Presentación de las estructuras no lineales. Árboles y estructuras
arborescentes. Árboles binarios. Representación de árboles arbitrarios
en base a árboles binarios.
4.2 Listas y recolección de basura. Asignación dinámica de espacio.
24 5. Búsquedas y ordenamientos
5.1 Algoritmos de ordenamiento de orden nlogn (quicksort, heapsort,
mergesort); complejidad en el tiempo y el espacio: mejor y peor casos.
5.2 Otros algoritmos de ordenamiento (Algoritmo de Shell, de cubetas
y de radicales).
5.3 Comparación de algoritmos.
5.4 Funciones de dispersión y resolución de colisiones.
5.5 Algoritmos de búsqueda y manejo de árboles balanceados: árboles
B y árboles AVL.
5.6 Algoritmos de ordenamientos externos.

BIBLIOGRAFÍA BÁSICA:

1. Magidin, M., Estructuras de datos, México: Editorial Trillas, 1991.

2. Tucker, A.B., Bradley, W.J., Cupper, R.D., Epstein, R.D., Kelemen, C.F., Funda-
mentals of Computing, II: Abstraction, Data Structures, and Large Software Systems,
C++ Edition, New York: McGraw-Hill, 1994.

BIBLIOGRAFÍA COMPLEMENTARIA:

1. Aho, A. V., Hopkroft, J. E., Ullman, J. D., Estructuras de Datos y Algoritmos,


México: Addison-Wesley Publishing Company, 1988.

2. Baase, S., Computer Algorithms, Introduction to Design and Analysis, Reading,


Mass.: Addison-Wesley Publishing Company, 1990

2
3. Biggerstaff, T. J., Perles A. J. edited by , Software Reusability, Volume I, II, New
York: ACM Press, Reading, Mass.: Addison-Wesley Publishing Company, 1989.

4. Cormen, T. H., Leierson, C. E., Rivest, R. L., Introduction to Algorithms, New York:
McGraw-Hill Book Company, 1990.

5. Dijkstra, W. E. Editor, Formal Development of Programs and Proofs, Reading,


Mass.: Addison-Wesley Publishing Company, 1990.

6. Gehani, N., McGettrick, A.D. ; Editores., Software Specification Techniques, Rea-


ding, Mass.:Addison-Wesley Publishing Company, 1980.

7. Ghezzi, C., Jazayeri, M., Mandrioli, D., Fundamentals of Software Engineering, New
Jersey: Prentice-Hall Inc., 1991.

8. Glass, R. L., Software Conflict: Essays on the Art and Science of Software Enginee-
ring, New Jersey: Yourdon Press Computing Series, 1991.

9. Gries, D., Editor, Programming in the 1990s, An Introduction to the Calculation of


Programs, New York: Springer-Verlag, 1990.

SUGERENCIAS DIDÁCTICAS: Lograr la participación activa de los alumnos mediante


exposiciones.

SUGERENCIA PARA LA EVALUACIÓN DE LA ASIGNATURA: Además de las califi-


caciones en exámenes y tareas se tomará en cuenta la participación del alumno.

PERFIL PROFESIOGRÁFICO: Matemático, fı́sico, actuario o licenciado en ciencias de


la computación, especialista en el área de la asignatura a juicio del comité de asignación
de cursos.