1. Desarrollo de software
1.1 Análisis y especificación de problemas
1.2 Diseño
1.3 Codificación
1.4 Pruebas, ejecución y depuración
1.5 Mantenimiento
Resumen
Problemas de programación
2. Introducción a los tipos abstractos de datos
2.1 Una primera mirada a los TADs y sus implementaciones
2.2 Tipos de datos simples en C++
2.3 Tipos de datos definidos por el programador
2.4 Punteros
Resumen
Problemas de programación
3. Estructura de datos y tipos abstractos de datos
3.1 Estructura de datos, tipos abstractos de datos e implementaciones
3.2 Vectores estáticos
3.3 Vectores multidimensionales (opcional)
3.4 Vectores dinámicos
3.5 Registros al estilo de C (opcional)
3.6 Programacion de procedimientos
Resumen
Problemas de programación
4. Mas sobre POO y TADs: clases
4.1 Programación con procedimientos frente a programación orientada a objetos
4.2 Clases
4.3 Ejemplo: una primera visión de una clase hora
4.4 Constructores de clases
4.5 Otras operaciones de clases
Resumen
Problemas de programación
5. Las clases estándar de C++ para entrada/salida y cadena de caracteres
5.1 Las clases estándar de C++ para entrada/salida y cadena de caracteres
5.2 Los tipos de cadenas de caracteres en C++
5.3 Caso de estudio: edición de textos
5.4 Introducción al encaje de patrones (opcional)
5.5 introducción a la encriptación de datos (opcional)
Resumen
Problemas de programación
6. Listas
6.1 Las listas como TAD
6.2 Una implementación de listas basada en vectores estáticos
6.3 Una implementación de listas basada en vectores dinámicos
6.4 Introducción a las listas enlazadas
6.5 Una implementación de listas enlazadas basada en punteros en C++
6.6 Una implementación de listas enlazadas basada en vectores (opcional)
Resumen
Problemas de programación
7. Pilas
7.1 Introducción a las pilas
7.2Diseño y construcción de una clase Píla basada en vectores
7.3 Pilas enlazadas
7.4 Uso de pilas en llamadas de función
7.5 Caso de estudio: notificación posfija (RPN)
Resumen
Problemas de programación
8. Colas
8.1 Introducción a las colas
8.2 Diseño y construcción de una clase cola basada en vectores
8.3 Colas enlazadas
8.4 Aplicaciones de las colas: buffers y planificación
8.5 Caso de estudio: Simulación de un centro de información
Resumen
Problemas de programación
9. Implementación de TADs: plantillas y contenedores estandar
9.1 Introducción: la evolución de la reusabilidad y la genericidad
9.2 Genericidad de funciones: sobrecarga y plantillas
9.3 Genericidad de clases: plantillas
9.4 El contenedor vector
9.5 Caso de estudio: contando las conexiones a un sistema informático
9.6 Vectores multidimensional (opcional)
9.7 Otros contenedores estándar: deque, stack y queue
9.8 bitsets y valarrays (opcional)
Resumen
Problemas de programación
10. Implementación de TADs: recursión, análisis de algoritmos y algoritmos estándar
10.1 Recursión
10.2 Ejemplos de recursión : Torres de Hanoi y análisis sintácticos
10.3 Implementación de la recursión
10.4 Eficacia de algoritmos
10.5 Algoritmos estándar en C++
10.6 Demostración de la corrección de algoritmos (opcional)
Resumen
Problemas de programación
11. Más enlaces en las listas enlazadas
11.1 Algunas variantes de las listas enlazadas simples
11.2 Implementación con listas enlazadas de polinomios
11.3 Listas doblemente enlazadas y el contenedor estándar
11.4 Caso de estudio: aritmética de grandes números
11.5 Otras multiplemente enlazadas
Resumen
Problemas de programación
12. Búsqueda: arboles binarios y tablas dispersas
12.1 Repaso de las búsquedas lineal y binaria
12.2 Introducción a los árboles binarios
12.3 Los árboles binarios como estructura de datos recursiva
12.4 Árboles binarios de búsqueda
12.5 Caso de estudio: validación de accesos a una computadora
12.6 Árboles binarios de búsqueda hilvanados (opcional)
12.7 Tablas dispersas
Resumen
Problemas de programación
13. Ordenación
13.1 algunos esquemas de ordenación en O(n²)
13.2 Montículos, ordenación con montículo y colas con prioridad
13.3 Ordenación rápida
13.4 Ordenación por mezclas
13.5 Ordenación por radicales
Resumen
Problemas de programación
14. POO y TADs
14.1 Una breve visión general e histórica de la POO y los TADs
14.2 Herencia y diseño orientado a objetos
14.3 Construyendo clases derivadas
14.4 Caso de estudio: paga de nóminas
14.5 Polimorfismo, funciones virtuales y TADs
14.6 Caso de estudio: una estructura de datos heterogénea
Resumen
Problemas de programación
15. Árboles
15.1 Caso de estudio: códigos de Huffman
15.2 Árboles equilibrados: árboles AVL
15.3 Árboles 2-3-4, árboles rojinegros, B-árboles y otros árboles
15.4 contenedores asociativos en la STL: maps (opcional)
Resumen
Problemas de programación
16. Grafos y digrafos
16.1 Grafos dirigidos
16.2 Búsqueda y recorrido de digrafos
16.3 Grafos
Resumen
Problemas de programación
Apéndices