HACK A BOSS
FormaciónEvaluacionesPerfil
Volver
  • En directo

Algoritmos y estructuras de datos intermedio

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • Algoritmos y estructuras de datos

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Este curso capacita a desarrolladores con base de programación para resolver problemas algorítmicos de dificultad intermedia mediante comparación de alternativas, selección de estructuras de datos, uso de mapas, conjuntos, árboles binarios y recursión, y validación de complejidad. Dirigido a participantes que ya manejan estructuras lineales, recorridos, búsquedas y ordenamientos básicos, y necesitan avanzar hacia decisiones técnicas justificadas. Al finalizar, el participante será capaz de diseñar, depurar y defender soluciones algorítmicas con pruebas, análisis de coste y elección razonada de estructuras.

Al finalizar el curso, el participante será capaz de:

  • Comparar soluciones algorítmicas alternativas para un mismo problema, justificando la elección según complejidad temporal, complejidad espacial y legibilidad
  • Diseñar una solución que use mapas o conjuntos para reducir búsquedas repetidas en colecciones de datos
  • Integrar árboles binarios básicos para representar y recorrer datos jerárquicos mediante recorridos preorden, inorden o postorden
  • Adaptar algoritmos de ordenamiento o búsqueda a criterios personalizados, manteniendo corrección y explicando sus límites
  • Depurar errores lógicos en algoritmos iterativos o recursivos, identificando casos límite y condiciones de parada incorrectas
  • Diseñar soluciones recursivas para problemas descomponibles, comparándolas con una alternativa iterativa cuando exista
  • Justificar la elección entre listas, pilas, colas, mapas, conjuntos y árboles básicos según operaciones dominantes del problema
  • Integrar análisis de complejidad en la validación de una solución, detectando cuellos de botella evidentes antes de escalar el tamaño de entrada
  1. Comparación de alternativas algorítmicas Criterios de decisión entre soluciones correctas, complejidad temporal, complejidad espacial, legibilidad, restricciones de entrada, trade-offs entre tiempo y memoria
  2. Mapas, conjuntos y operaciones dominantes Uso de diccionarios, tablas hash y conjuntos para reducir búsquedas repetidas; detección de duplicados, frecuencias, pertenencia, agrupación de datos y justificación de estructura según operaciones frecuentes
  3. Árboles binarios y recorridos Representación de datos jerárquicos, nodos raíz e hijos, recorridos preorden, inorden y postorden, relación entre árbol binario de búsqueda y orden de los datos
  4. Búsqueda, ordenamiento y recursión con criterios personalizados Adaptación de criterios de ordenación, búsqueda binaria bajo condiciones de orden, casos base, casos recursivos, comparación entre soluciones recursivas e iterativas
  5. Depuración, casos límite y validación de complejidad Identificación de errores de frontera, condiciones de parada, invariantes de búsqueda, pruebas con tamaños crecientes, detección de cuellos de botella y mejora de soluciones mediante cambio de estructura
  • Python 3.11 o superior para implementar ejemplos, estructuras y ejercicios algorítmicos
  • Entorno de desarrollo con soporte para ejecución de scripts y depuración paso a paso, como VS Code o PyCharm
  • pytest 8.x o superior para validar funciones con casos de prueba automatizados
  • Git para versionar las soluciones y comparar iteraciones de código
  • Acceso a documentación de referencia sobre estructuras de datos, complejidad y ordenación

→ AED01 — Algoritmos y estructuras de datos iniciación (Iniciación, 6h)

  • Reconocer y utilizar arrays, listas, pilas y colas
  • Recorrer estructuras lineales y operar sobre sus elementos
  • Interpretar la complejidad temporal y espacial de algoritmos básicos
  • Aplicar búsqueda lineal, búsqueda binaria y ordenamiento simple en casos prácticos
  • Seleccionar y justificar una estructura de datos sencilla según el problema
  • Resolver problemas sencillos descomponiéndolos en pasos algorítmicos