Concepto de Memoria dinámica. Areas de memoria. Memoria Heap.
Reserva y liberación de memoria dinámica. Concepto System Call.
Manejo de memoria automática, Garbage Collection. Ventajas y desventajas manejo manual de memoria.
Estructuras de datos definidas por el usuario (STRUCT y UNION).
Concepto de Tipo de Dato Abstracto (TDA)
Definición de operaciones.
Concepto de Encapsulamiento.
Concepto de Interfaz y Contrato.
Concepto de Polimorfismo.
Separación entre la definición e implementación.
Resolución de problemas con TDA's
Conceptos de Lista. Implementación basada en array vs nodos enlazados.
Uso de listas: iteraciones, funciones de orden superior: map, reduce y filter.
Listas por comprensión.
Conceptos de Pila y Cola.
Implementación de Pilas y Colas con Vectores.
Implementación de Pilas y Colas con punteros y memoria dinámica.
Concepto de Diccionario e implementaciones posibles.
Concepto de Hashcode y Funciones de Hashing
Cualidades del Hashcode.
Colisiones y generación de Hashcodes
Implementaciones de HashSet.
Implementaciones de HashMap.
Recursividad.
Concepto de Árbol. Recorridos: primero en profundidad, primero en ancho.
Arboles binarios. Recorridos: pre-orden, in-order y post-orden.
Búsqueda binaria.
Arboles n-arios.
Grafos.
Análisis de complejidad temporal y espacial.
Comparación de eficiencia de algoritmos.