Saltar a contenido

Plan de desarrollo por clases

Clase 1

Introducción a la entrevista técnica y pensamiento algorítmico

Objetivos:

  • Comprender qué buscan los entrevistadores (no solo la solución, sino razonamiento, claridad y comunicación).
  • Introducir el marco de análisis: entender el problema → pensar en casos → elegir la estrategia → implementar → analizar complejidad.

Temas a trabajar:

  • Etapas de una entrevista de programación.
  • Importancia de la comunicación verbal y escrita en entrevistas.
  • Notación de O grande (Big-O notation): recordatorio práctico.
  • Estrategias de abordaje de problemas:
    • Preguntar y clarificar.
    • Resolver ejemplos pequeños.
    • Progresar de la solución naive a la optimizada.

Ejemplos:

  • Problemas introductorios de LeetCode (Suma de dos números, Validación de Paréntesis).

Ejercicio para casa:

Resolver 2 o 3 problemas fáciles de arreglos (arrays) y/o cadenas de caracteres (strings).


Clase 2

Búsqueda, recursión y backtracking

Objetivos:

  • Practicar problemas que requieren explorar múltiples caminos.
  • Identificar cuándo aplicar fuerza bruta y cuándo optimizar.

Temas a trabajar:

  • Recorridos lineales y búsqueda binaria.
  • Recursión: estructura y casos base.
  • Backtracking: definición, ejemplos clásicos.
  • Cortes de control.

Ejemplos a trabajar en clase:

  • Búsqueda binaria.
  • Generar combinaciones/permutaciones.
  • Problema del reloj binario o caminos en un árbol binario.

Ejercicio para casa:

Resolver un problema de backtracking y uno de búsqueda binaria.


Clase 3

Árboles

Objetivos:

  • Aplicar estrategias de resolución en estructuras más avanzadas.

Temas a trabajar:

  • Recorridos en árboles (DFS, BFS, determinar si es binario de búsqueda).
  • Manipulación de árboles (espejar).
  • Simulación de entrevista: 30-40 minutos resolviendo un problema en tiempo real.

Ejemplos en clase:

  • Binary Tree Level Order Traversal.
  • Number of Islands (LeetCode).
  • Shortest Path in Graph (introductorio).

Ejercicio para casa:

Resolver un problema de backtracking y uno de búsqueda binaria.


Clase 4

Programación dinámica

Objetivos:

  • Comprender qué es un subproblema y cómo se reutiliza.
  • Entrenar la detección de problemas que requieren DP.
  • Simular una entrevista real.

Temas a trabajar:

  • Diferencia entre memoización (top-down) y tabulación (bottom-up).
  • Ejemplos de DP lineal: Fibonacci, Climbing Stairs.
  • Ejemplos de DP en tablas: Knapsack, Longest Common Subsequence.
  • Complejidad y optimización en DP.
  • Cómo planificar la práctica después del curso (ej. entrenar por familias de problemas, escalando dificultad).

Ejemplos en clase:

  • Climbing Stairs (LeetCode).
  • Coin Change.
  • Longest Increasing Subsequence (LIS).

Ejercicio para casa:

Un problema de DP sobre strings (edit distance o sub-secuencias).

Cierre:

  • Plan de práctica recomendado (ejercicios diarios/semanales).
  • Recursos gratuitos y estrategias de entrenamiento.