Curso
Semana 01 - Repaso y Conceptos Fundamentales
Primera semana: introducción al curso, repaso de C básico, herramientas de desarrollo y primer laboratorio.
Semana 02 - Módulos y Organización del Código
Modularización de código: headers vs implementación, compilación separada y automatización con Makefiles.
Semana 03 - Introducción a Punteros
Conceptos básicos de punteros, aritmética de punteros, relación con arrays y paso por referencia a funciones.
Semana 04 - Estructuras y Memoria Dinámica
Gestión manual de memoria con malloc/free, estructuras (struct) básicas y combinación para crear arrays dinámicos complejos.
Semana 05 - Análisis de Algoritmos
Introducción al análisis de eficiencia: conceptos fundamentales, notación Big-O, metodología de análisis y casos de uso.
Semana 06 - Algoritmos de Búsqueda y Ordenación
Algoritmos fundamentales: búsqueda lineal vs binaria, ordenación básica (burbuja/selección/inserción) y avanzada (Quick/Merge/Heap Sort), análisis comparativo y criterios de selección.
Semana 07 - Recursión
Conceptos de recursión, casos base y recursivos, análisis de complejidad recursiva.
Semana 08 - TADs y Listas Enlazadas
Introducción a los Tipos Abstractos de Datos (TAD) y implementación práctica con listas enlazadas simples y dobles.
Semana 09 - Variantes de Listas Enlazadas
Exploración de dos mejoras fundamentales para listas enlazadas: puntero al último y listas doblemente enlazadas.
Semana 10 - Introducción a Pilas (Stacks)
Conceptos fundamentales de pilas: principio LIFO, operaciones básicas, implementación con arrays y listas enlazadas, y aplicaciones prácticas.
Semana 11 - Introducción a Colas (Queues)
Conceptos fundamentales de colas: principio FIFO, operaciones básicas, implementación con arrays circulares y listas enlazadas, y aplicaciones prácticas.
Semana 12 - Introducción a Árboles y BST
Conceptos fundamentales de árboles: estructura jerárquica, terminología básica, implementación con punteros, recorridos fundamentales y árboles binarios de búsqueda.
Semana 13 - Balanceo de Árboles BST y AVL
Técnicas de balanceo: rotaciones básicas, árboles AVL con balanceo automático, implementación en C y casos de rotación.
Semana 14 - Árboles Generales y K-arios
Conceptos fundamentales de árboles generales: representaciones múltiples, implementación con listas de hijos, recorridos especializados y aplicaciones prácticas.
Semana 15 - Introducción a Heaps (Montículos)
Conceptos fundamentales de heaps: propiedades de heap, representación con arrays, operaciones de inserción y extracción, y aplicaciones prácticas.
Semana 16 - Introducción a Hash Maps
Conceptos fundamentales de hash maps: función hash, resolución de colisiones, implementación con encadenamiento, y aplicaciones prácticas.
Enums en C - Tipos de Datos Enumerados
Guía sobre los tipos enumerados (enum) en C: definición, declaración, usos, ejemplos prácticos y consideraciones.
new y delete en C++
Gestión de memoria dinámica en C++: new, delete, new[] y delete[]
Referencias en C++
Explicación de cómo las referencias en C++ son alias de variables