Introducción a Ciencias
de la Computación II
Guadalupe Ibargüengoitia G.
Alejandro Talavera R
Semestre 2001-II
Objetivo:
- Se estudiarán las estructuras de datos clásicas
en su representación como tipos de datos abstractos para un mejor
entendimiento de su definición, a fin de asegurar abstracción, robustes,
encapsulamientos y confiabilidad, para poder incorporarlas en la resolución
de problemas computacionales.
- Aprender los conceptos fundamentales en que se basa la
programación orientada a objetos y la utilización de bibliotecas
de componentes que implementen las estructuras de datos.
- Se usarán las bibliotecas de las estructuras de datos de JAVA
para incluir en aplicaciones que resuelvan los problemas planteados.
- Introducción superficial a los problemas de complejidad de
algoritmos.
Metodología de
Enseñanza
Se presentarán cada una de las estructuras
de datos clásicas como listas, pilas, árboles, etc., desde elpunto
de vista de tipos de datos abstractos (TDA). Para las implementaciones
se utilizará JAVA y las bibliotecas que proporciona para incorporarlas
en la resolución de problemas.
Como proyecto final se planteará un problema y se espera que los alumnos
decidan las estructuras de datos apropiadas para resolver eficientemente
el problema y que el programa funcione correctamente.
Se pondrán dos exámenes escritos uno sobre estructuras lineales y
otro sobre no lineales, que demuestre que se entendieron los conceptos
fundamentales de cada estructura de datos.
Temario:
I. Conceptos generales
1. Abstracción de datos y Programación orientada a objetos.
2. Programando tipos de datos abstractos en JAVA
3. Conceptos de Ingenieria de Software al desarrollar programas:
- Trabajo con escenarios
- Aserciones y verificación
- Reutilización de componentes
- Ejemplo de aplicación.
II. Estructuras de datos lineales.
4. Cadenas. Especificación, implementaciones, aplicaciones.
5. Listas. Especificación, implementaciones, aplicaciones.
6. Pilas. Especificación, implementaciones, aplicaciones.
7. Colas. Especificación, implementaciones, aplicaciones.
III. Estructuras no lineales.
8. Arboles. Especificación, implementaciones, aplicaciones.
9. Gráficas y digráficas. Especificación, implementaciones, aplicaciones.
10. Conjuntos y bolsas. Especificación, implementaciones, aplicaciones.
11. Diccionarios y colas con prioridad. Especificación, implementaciones,
aplicaciones.
12. Poniendo todo junto para resolver un problema real.
13. Comparación de distintos algoritmos para búsquedas y ordenamientos.
Evaluación
La evaluación del curso es por los programas de las estructuras
de datos que se van entregando (alrededor de 6 tareas) que equivalen al
50% de la calificación.
30% por el proyecto final en que se deberá decidir las estructuras a usar
para resolver un problema.
El promedio de los dos exámenes sobre conceptos generales de las estructuras
de datos, dará el 20% de la calificación.
Bibliografía.
Texto:
Sahni Sartaj Data Structures, Algorithms, and Applications in Java.
Mc Graw Hill Higher Education 2000.
Main Michael Data Structures & Other Objects using Java Addison
Wesley 1999
Rowe Glenn W. An Introduction to Data Structures and Algorithms with
Java Prentice Hall 1998
Waite Mitchell, Robert Lafore Data Structures and Algorithms in Java
Waite Group Press 1998
Bailey Duane A. Java Structures: Data Structures in Java for the principled
Programmer Mc Graw Hill 1999
Libros sobre Java:
Savitch Walter JAVA An Introduction to Computer Science & Programming
Prentice Hall 1999
Naughton Patrick Java 2: The complete reference Mc Graw Hill 1999
Flanagan David, Java en pocas palabras 2ª Edición McGraw Hill O’Reilly
1999
|