lesson_01.sh
Variables y Constantes
Algoritmos

Variables y Constantes

Lección: Variables y Constantes

Constante: valor fijo. Variable: valor que cambia durante la ejecución.

paso_por_valor_y_referencia.c
Paso por valor y paso por referencia
C

Paso por valor y paso por referencia

Lección: Variables y Parámetros

Descubre cómo C maneja memoria y punteros.

tipos_de_datos.c
Tipos de Datos
C

Tipos de Datos

Lección: Tipos de Datos

Los tipos fundamentales de C: enteros, flotantes, chars, punteros y structs.

modularidad.c
Modularidad
C

Modularidad

Lección: Modularización y Funciones

Subprogramas, Funciones y Procedimientos

funciones.java
Funciones y procedimientos en Java
Java

Funciones y procedimientos en Java

Lección: Métodos y Funciones en Java

Cómo Java define y usa funciones y procedimientos.

arreglos.c
Arreglos en C
C

Arreglos en C

Lección: Arreglos

Arreglos unidimensionales y matrices con visualizaciones y paso a paso.

operaciones_arreglos.c
Operaciones con Arreglos
C

Operaciones con Arreglos

Lección: Operaciones con Arreglos

Recorrido, búsqueda e inserción en arreglos con simulaciones paso a paso.

while_loop.c
While paso a paso
Algoritmos

While paso a paso

Lección: While

Simula iteración por iteración un while.

do_while_loop.c
Do-while paso a paso
Algoritmos

Do-while paso a paso

Lección: Do-While

Visualiza la lógica del do-while paso por paso.

for_loop.c
For paso a paso
Algoritmos

For paso a paso

Lección: For

Inicialización, condición, bloque e incremento de un ciclo for.

nested_for_table.c
For anidado y tabla de multiplicar
Algoritmos

For anidado y tabla de multiplicar

Lección: Programación Esquemática

Dos for anidados que completan una tabla de multiplicar.

if_condition.c
If paso a paso
Algoritmos

If paso a paso

Lección: If-Else

Flujo de un if línea por línea.

if_else_condition.c
If-else paso a paso
Algoritmos

If-else paso a paso

Lección: If-Else

Cómo el programa elige entre if y else.

switch_case.c
Switch paso a paso
Algoritmos

Switch paso a paso

Lección: Switch y Bloques

Comparación de cases, match y break.

string_methods.c
String paso a paso
C

String paso a paso

Lección: Cadenas

Cambios al usar strlen, buffers y recortes manuales en C.

string_numbers.c
String de números paso a paso
C

String de números paso a paso

Lección: Cadenas

Concatenación textual vs suma real con sprintf y atoi.

strchr_demo.c
strchr paso a paso
C

strchr paso a paso

Lección: Cadenas

Cómo strchr recorre un string y devuelve un puntero.

contar_palabras.c
Contar palabras en cadenas
C

Contar palabras en cadenas

Lección: Cadenas

Recorre una cadena carácter por carácter y cuenta palabras al entrar en texto.

bubble_sort.c
Bubble Sort paso a paso
Algoritmos

Bubble Sort paso a paso

Lección: Ordenación de Arreglos

Visualiza cómo los elementos burbujean hasta su posición correcta.

selection_sort.c
Selection Sort paso a paso
Algoritmos

Selection Sort paso a paso

Lección: Ordenación de Arreglos

Encuentra el mínimo y colócalo en su lugar.

insertion_sort.c
Insertion Sort paso a paso
Algoritmos

Insertion Sort paso a paso

Lección: Ordenación de Arreglos

Inserta cada elemento en su posición correcta dentro de la parte ordenada.

arboles_binarios.c
Árboles Binarios paso a paso
C

Árboles Binarios paso a paso

Lección: Árboles Binarios

Visualiza la inserción recursiva y el recorrido inorden en un BST.

Dispositivos.java
Los 4 pilares de la POO en Java
Java

Los 4 pilares de la POO en Java

Lección: Programación Orientada a Objetos y sus Pilares

Abstracción, encapsulamiento, herencia y polimorfismo con diagramas y demos interactivas.

HolaMundo.java
Conceptos Básicos, JVM y Tu Primer Programa
Java

Conceptos Básicos, JVM y Tu Primer Programa

Lección: Conceptos Básicos y Tu Primer Programa en Java

El pipeline de compilación a bytecode, arquitectura interna de la JVM y anatomía de main().

TiposDatos.java
Variables, Tipos de Datos y Operadores en Java
Java

Variables, Tipos de Datos y Operadores en Java

Lección: Variables, Tipos de Datos y Operadores

Los 8 tipos primitivos en memoria, casting implícito/explícito y cortocircuito lógico con simulador.

ControlFlujo.java
Control de Flujo: Condicionales y Bucles en Java
Java

Control de Flujo: Condicionales y Bucles en Java

Lección: Control de Flujo y Estructuras Repetitivas

Diagramas de flujo animados de if/else, switch moderno, y la anatomía interna de for, while y do-while.

ArraysStrings.java
Arrays y Strings: Memoria y el Pool de Cadenas
Java

Arrays y Strings: Memoria y el Pool de Cadenas

Lección: Arrays y Manejo de Strings en Java

Memoria contigua, String Constant Pool en el Heap, la trampa de == vs equals y StringBuilder.

ClasesObjetos.java
Clases, Objetos y el Ciclo del Operador new
Java

Clases, Objetos y el Ciclo del Operador new

Lección: Fundamentos de POO: Clases, Objetos y Atributos

El plano frente a la edificación, ciclo en 4 tiempos de new, puntero this y aliasing en memoria.

ConstructoresEncapsulamiento.java
Constructores, Encapsulamiento y Fuga de Referencia
Java

Constructores, Encapsulamiento y Fuga de Referencia

Lección: Constructores, Modificadores de Acceso y Getters/Setters

Delegación this(), matriz de los 4 modificadores de acceso, copia defensiva e inmutabilidad.

ArraysDeObjetos.java
Arrays de Objetos: Doble Nivel de Memoria
Java

Arrays de Objetos: Doble Nivel de Memoria

Lección: Arrays de Objetos: Guardar y Recorrer Muchas Instancias

El error de las casillas null, creación en dos pasos, capacidad vs cantidad y aliasing con diagramas de Heap.

HerenciaPolimorfismo.java
Herencia, Despacho Dinámico y Polimorfismo
Java

Herencia, Despacho Dinámico y Polimorfismo

Lección: Herencia, Polimorfismo y Sobrecarga de Métodos

Prueba "es-un", encadenamiento de constructores con super(), sobrecarga vs sobrescritura y la tabla virtual de métodos (vtable).

ClasesAbstractasInterfaces.java
Clases Abstractas e Interfaces en Java
Java

Clases Abstractas e Interfaces en Java

Lección: Clases Abstractas, Interfaces y Organización del Código

Contratos, jerarquías, métodos default y relaciones UML con diagramas interactivos.

ExcepcionesManejoErrores.java
Manejo de Excepciones y Robustez en Java
Java

Manejo de Excepciones y Robustez en Java

Lección: Manejo de Excepciones y Robustez

Propagación en la pila de llamadas, try-with-resources y jerarquía Throwable con simulaciones paso a paso.

TadListas.java
TAD Listas: Estáticas vs Dinámicas y Nodos Enlazados
Java

TAD Listas: Estáticas vs Dinámicas y Nodos Enlazados

Lección: TAD Lista: Estáticas, Dinámicas y Enlazadas

Contrato abstracto, memoria contigua vs dispersa, inserción/eliminación y análisis de complejidad Big-O.

TadPilasColas.java
TAD Pila (LIFO) y TAD Cola (FIFO) en Java
Java

TAD Pila (LIFO) y TAD Cola (FIFO) en Java

Lección: TAD Pila y TAD Cola: Estructuras Lineales

Estructuras lineales, cola circular con aritmética modular y balanceo de expresiones con simuladores.

CollectionsFramework.java
Java Collections Framework y Genéricos
Java

Java Collections Framework y Genéricos

Lección: Colecciones en Java y Genéricos (JCF)

Jerarquía completa, familias List/Set/Map/Queue y anatomía interna de HashMap con simulador de buckets.

IteradoresOrdenamiento.java
Iteradores, Ordenamiento y Contrato equals/hashCode
Java

Iteradores, Ordenamiento y Contrato equals/hashCode

Lección: Iteradores, Ordenamiento y Contrato equals/hashCode

ConcurrentModificationException desmitificada, Comparator vs Comparable y colisiones en HashSet.

TadArbolesBinarios.java
TAD Árboles Binarios y Búsqueda (ABB) en Java
Java

TAD Árboles Binarios y Búsqueda (ABB) en Java

Lección: TAD Árbol: Recorridos y Árbol Binario de Búsqueda

Recorridos DFS/BFS, propiedad ABB, inserción y eliminación con simulador de árbol interactivo.

GrafosAlgoritmos.java
Grafos: Matriz, Lista, BFS, DFS y Dijkstra
Java

Grafos: Matriz, Lista, BFS, DFS y Dijkstra

Lección: Grafos: Matriz, Lista de Adyacencia, BFS, DFS y Dijkstra

Representación en memoria, recorridos BFS/DFS, Dijkstra y Floyd-Warshall con simulador de grafos interactivo.

ArchivosPersistencia.java
Archivos, Serialización y Empaquetado JAR en Java
Java

Archivos, Serialización y Empaquetado JAR en Java

Lección: Archivos, Serialización y Empaquetado JAR

Patrón Decorador en I/O, NIO.2, serialVersionUID y empaquetado nativo con jpackage.

ConcurrenciaHilosPools.java
Hilos, Sincronización y Virtual Threads en Java
Java

Hilos, Sincronización y Virtual Threads en Java

Lección: Programación Concurrente: Hilos, Sincronización y Pools

Stack vs Heap en el JMM, condiciones de carrera en count++, cerrojos synchronized, pools de hilos y Project Loom.

AccesoDatosJdbc.java
JDBC, Inyección SQL y Manejo de Transacciones
Java

JDBC, Inyección SQL y Manejo de Transacciones

Lección: Acceso a Bases de Datos con JDBC y SQL Seguro

Arquitectura de drivers, Statement vs PreparedStatement, cursor de ResultSet, commit/rollback y pools HikariCP.

TestingJunitSpringBoot.java
Testing con JUnit 5, Mockito y Arquitectura Spring Boot
Java

Testing con JUnit 5, Mockito y Arquitectura Spring Boot

Lección: Testing con JUnit y Tu Primera App en Spring Boot

Pirámide de tests, patrón AAA, aislamiento con dobles de prueba (Mockito) y la arquitectura en 3 capas de Spring Boot.

AlgoritmiaVerificacionComplejidad.java
Algoritmia: Especificación, Invariantes y Big-O
Java

Algoritmia: Especificación, Invariantes y Big-O

Lección: Algoritmos: Especificación, Verificación y Complejidad

Tripletas de Hoare, invariantes de bucle paso a paso y curvas de complejidad asintótica.

ArbolesNAriosVectores.java
Árboles N-arios y Representación con Vectores
Java

Árboles N-arios y Representación con Vectores

Lección: Árboles N-arios y representación con vectores

Transformación Primer Hijo - Siguiente Hermano (LCRS) y vector de padres con animador interactivo.

DepuracionCodigoLimpio.java
Depuración, Código Limpio y Refactorización
Java

Depuración, Código Limpio y Refactorización

Lección: Depuración, código limpio y refactorización

El bucle científico de depuración, breakpoints y watches en el IDE, catálogo de code smells y refactor seguro con JUnit.

PaquetesNamespaces.java
Paquetes, Namespaces e Importación de Clases en Java
Java

Paquetes, Namespaces e Importación de Clases en Java

Lección: Clases Abstractas, Interfaces y Organización del Código

Colisiones de nombres, la declaración package y su carpeta, FQCN, import como alias, resolución de ambigüedades y visibilidad package-private.

git_fundamentos.sh
Fundamentos de Git y el Ciclo de Tres Estados
Git

Fundamentos de Git y el Ciclo de Tres Estados

Lección: El principio con Git

De archivos sin seguimiento al commit: Working Directory, Staging Area, Repositorio local, puntero HEAD y la anatomía de un snapshot.

git_remoto.sh
Sincronización Remota: Fetch, Pull y Push en Git
Git

Sincronización Remota: Fetch, Pull y Push en Git

Lección: Bajar y subir cambios

Arquitectura distribuida, alias origin, ramas de seguimiento remoto origin/main, upstream tracking (-u) y la diferencia entre fetch y pull.

git_merge.sh
Ramas, Fast-Forward, 3-Way Merge y Conflictos en Git
Git

Ramas, Fast-Forward, 3-Way Merge y Conflictos en Git

Lección: Fusionar Ramas y Conflictos

Aislamiento de features, integración con git merge, resolución paso a paso de marcadores de conflicto y abortos seguros.

git_rebase.sh
Git Rebase, Historial Lineal y Buenas Prácticas
Git

Git Rebase, Historial Lineal y Buenas Prácticas

Lección: Rebase y Buenas Prácticas en Git

Replay de commits sobre una nueva base, la Regla de Oro del Rebase, resolución commit por commit, commits atómicos y Conventional Commits.