Programa y Bibliografía

Contenidos

Fundamentación

Este curso continúa con la formación de aspectos de la programación. El alumno aprenderá a utilizar estructuras de accesos a los datos más complejas, eligiendo aquella más adecuada, en términos de tiempos de acceso y modificación de los datos.

Complementará su formación con el estudio de familias de algoritmos para resolver problemas tipo y aprenderá conceptos básicos de paralelismo y sincronización.

Objetivos

Contenidos mínimos

Estructuras de manejo de datos: listas, árboles, grafos, tablas de acceso rápido (dispersión), estructuras híbridas.

Servicios y consultas de datos sobre las estructuras: Altas -bajas - modificaciones.

Recursión. Nociones de Complejidad computacional.

Familias de problemas: Búsqueda exhaustiva, Greedy, algoritmos de ordenamiento.

Uso de Threads. Sincronismo. Acceso restringido.

Bliografía y Material de Referencia

- Apuntes y material publicado en este sitio por la cátedra.

- "Introducción a los Algoritmos" - Cormen, Leiserson, Rivest.

- "Estructura de Datos y Algoritmos" - A. Aho, J. Ullman y J. Hopcroft

- "Estructuras de datos en JAVA" - M.A. Weiss

- Threads, referencia online: https://docs.oracle.com/javase/tutorial/essential/concurrency/index.html