
Curso de Estructuras de Datos y Algoritmos en Python
Domina Python y Estructuras de Datos y Algoritmos desde cero — sin atajos, sin relleno. Este curso te lleva desde escribir tu primer script de Python hasta resolver problemas complejos de grafos y programación dinámica. Tanto si aspiras a las mejores empresas tecnológicas como si quieres mejorar tus competencias de ingeniería, esta es la base técnica completa que necesitas.
Lo que vas a aprender:
Construirás una base sólida en Python cubriendo sintaxis, colecciones y diseño orientado a objetos antes de pasar a los temas centrales de DSA. Aplicarás arrays, listas enlazadas, pilas, colas, árboles y grafos completamente desde cero. Analizarás la complejidad temporal y espacial utilizando la notación Big-O para cada algoritmo principal. Dominarás la ordenación, la búsqueda, la recursividad y la programación dinámica con código real. También practicarás patrones de programación competitiva y técnicas de entrevistas simuladas diseñadas para prepararte para los procesos de contratación técnica en las principales empresas tecnológicas.
Cómo estudias de forma práctica Curso de Estructuras de Datos y Algoritmos en Python
Cómo practicas Curso de Estructuras de Datos y Algoritmos en Python
Para ti que eres empresa y quieres formar a tu equipo
En Dedika para empresas, el curso incluye ejercicios y ejemplos adaptados a tu propio negocio y a las necesidades de tu empresa.
Contenido del curso
8 Capítulos • 40 LeccionesDuración entre 4 y 360 horas (tú decides)
Capítulo 1OcultarOcultar detallesVer detallesFundamentos de Programación en Python
Fundamentos de Programación en Python
Lección 1 • Funciones y Ámbito
Define funciones reutilizables con parámetros, valores de retorno y reglas de ámbito. Prepara a los estudiantes para encapsular la lógica de estructura de datos en unidades limpias y testeables.
Lección 2 • Control de Flujo e Iteración
Enseña el uso de ramificaciones if/elif/else, bucles for y while, y sentencias de control de bucle. Permite a los estudiantes expresar lógica algorítmica en Python.
Lección 3 • Manejo de Errores y Depuración
Introduce las excepciones, los bloques try/except y las herramientas de depuración. Capacita a los estudiantes para escribir código robusto y diagnosticar fallos en programas complejos.
Lección 4 • Tipos de Datos Básicos y Variables
Cubre los enteros, floats, cadenas, booleanos y la conversión de tipos. Proporciona los datos primitivos utilizados en cada una de las implementaciones de algoritmos posteriores.
Lección 5 • Configuración del Entorno de Python
Instala Python, configura un entorno virtual y elige un IDE. Establece la cadena de herramientas de la que depende cada capítulo posterior.
Capítulo 2OcultarOcultar detallesVer detallesColecciones y Comprensiones en Python
Colecciones y Comprensiones en Python
Lección 1 • Iteradores, Generadores y Evaluación Perezosa
Explica el protocolo iterador, las funciones generadoras y yield. Permite el recorrido eficiente en memoria de grandes conjuntos de datos en problemas de estructura de datos.
Lección 2 • Listas y Tuplas en Profundidad
Explora la indexación, el troceado, la mutación y la inmutabilidad de las tuplas. Estos tipos secuenciales sustentan las estructuras de datos basadas en arrays que se tratan más adelante.
Lección 3 • Diccionarios y Conjuntos
Cubre el almacenamiento basado en hash, las operaciones clave-valor y el álgebra de conjuntos. Apoya directamente las implementaciones de tablas hash y adyacencia de grafos.
Lección 4 • Comprensiones de Listas y Diccionarios
Enseña la sintaxis concisa de comprensión para filtrar y transformar colecciones. Reduce el código repetitivo en las implementaciones de algoritmos a lo largo del curso.
Lección 5 • Ordenación, Búsqueda y Algoritmos Integrados
Utiliza sorted(), min(), max() y funciones clave para procesar colecciones. Conecta las funciones integradas de Python con los algoritmos de ordenación personalizados que se estudian a continuación.
Capítulo 3OcultarOcultar detallesVer detallesAnálisis de Algoritmos y Complejidad
Análisis de Algoritmos y Complejidad
Lección 1 • Introducción al Análisis de Algoritmos
Define la corrección del algoritmo, la eficiencia y la necesidad de un análisis formal. Establece la mentalidad analítica que se aplica a cada estructura de datos y algoritmo posteriores.
Lección 2 • Big-O, Big-Omega y Big-Theta
Formaliza la notación asintótica y las clases de complejidad comunes. Proporciona el vocabulario utilizado para describir cada algoritmo en los capítulos siguientes.
Lección 3 • Análisis de Bucles y Llamadas Recursivas
Enseña el conteo de pasos para bucles y las relaciones de recurrencia para la recursión. Prepara directamente a los estudiantes para analizar algoritmos de ordenación y de árboles.
Lección 4 • Perfilado de Código Python
Utiliza timeit, cProfile y memory_profiler para medir el rendimiento real. Conecta la complejidad teórica con el comportamiento de ejecución medible de Python.
Lección 5 • Complejidad Espacial y Compensaciones
Distingue el espacio auxiliar del espacio total y explora las compensaciones tiempo-espacio. Orienta las decisiones de diseño cuando las limitaciones de memoria son importantes.
Capítulo 4OcultarOcultar detallesVer detallesEstructuras de Datos Lineales
Estructuras de Datos Lineales
Lección 1 • Comparación de Complejidad de Estructuras Lineales
Compara la complejidad temporal y espacial de todas las estructuras lineales estudiadas. Permite la selección informada de la estructura para problemas de diseño de algoritmos.
Lección 2 • Listas Enlazadas Simples y Dobles
Construye clases Node y operaciones de lista incluyendo inserción, eliminación y recorrido. Introduce el pensamiento basado en punteros esencial para árboles y grafos.
Lección 3 • Pilas: Implementación y Aplicaciones
Implementa pilas usando listas y listas enlazadas, y luego las aplica a problemas reales. Demuestra la semántica LIFO utilizada en recursión, análisis sintáctico y backtracking.
Lección 4 • Colas, Deques y Colas de Prioridad
Cubre las colas FIFO, las colas dobles y las colas de prioridad basadas en montículos. Prepara a los estudiantes para problemas de BFS, planificación y algoritmos voraces.
Lección 5 • Arrays y Arrays Dinámicos
Cubre los arrays estáticos, las listas de Python como arrays dinámicos y el redimensionamiento amortizado. Establece la estructura base que todos los demás tipos lineales amplían.
Capítulo 5OcultarOcultar detallesVer detallesRecursión y Algoritmos de Ordenación
Recursión y Algoritmos de Ordenación
Lección 1 • Algoritmos de Ordenación Cuadráticos
Implementa la ordenación por burbuja, selección e inserción con análisis paso a paso. Proporciona la base O(n²) con la que se comparan las ordenaciones más rápidas.
Lección 2 • Algoritmos de Búsqueda
Implementa la búsqueda lineal y la búsqueda binaria con pruebas de complejidad. Conecta la búsqueda con los requisitos de datos ordenados y problemas reales de entrevistas.
Lección 3 • Fundamentos de la Recursión
Define los casos base, los casos recursivos y la pila de llamadas. Construye el modelo mental necesario para el recorrido de árboles y los algoritmos de divide y vencerás.
Lección 4 • Ordenación en Tiempo Lineal e Híbrida
Cubre la ordenación por conteo, la ordenación por base y Timsort, usado en la ordenación integrada de Python. Amplía el conjunto de herramientas de los estudiantes más allá de la ordenación basada en comparaciones.
Lección 5 • Ordenación por Divide y Vencerás
Implementa la ordenación por mezcla y quicksort, derivando su complejidad O(n log n). Demuestra cómo la recursión permite una ordenación eficiente a gran escala.
Capítulo 6OcultarOcultar detallesVer detallesÁrboles y Estructuras de Datos Jerárquicas
Árboles y Estructuras de Datos Jerárquicas
Lección 1 • Árboles Binarios de Búsqueda
Implementa la inserción, búsqueda y eliminación en un BST con análisis promedio O(log n). Demuestra el almacenamiento y la recuperación ordenada de datos utilizando la estructura de árbol.
Lección 2 • Tries y Árboles de Prefijos
Construye un trie para la inserción, búsqueda y coincidencia de prefijos. Permite soluciones eficientes de autocompletado y búsqueda en diccionarios.
Lección 3 • Árboles Binarios y Recorridos
Define la terminología de árboles e implementa los recorridos en orden, preorden y postorden. Establece el patrón de recorrido recursivo utilizado en todos los algoritmos de árboles.
Lección 4 • Montículos y Operaciones con Montículos
Construye un max-heap y un min-heap, implementa heapify y heap sort. Apoya directamente las implementaciones de colas de prioridad y algoritmos voraces.
Lección 5 • Árboles Equilibrados: AVL y Rojo-Negro
Explica el equilibrado basado en rotaciones en árboles AVL y las reglas de color en árboles rojo-negro. Garantiza un rendimiento en el peor caso de O(log n) para conjuntos de datos dinámicos.
Capítulo 7OcultarOcultar detallesVer detallesGrafos y Algoritmos de Grafos
Grafos y Algoritmos de Grafos
Lección 1 • Problemas Avanzados de Grafos
Cubre componentes fuertemente conexos, verificación de grafos bipartitos y fundamentos de flujo de red. Amplía las habilidades de grafos a categorías complejas de problemas del mundo real.
Lección 2 • Representaciones y Terminología de Grafos
Define grafos dirigidos, no dirigidos, ponderados y cíclicos con representaciones de lista de adyacencia y matriz. Establece la base para todas las implementaciones de algoritmos de grafos.
Lección 3 • Algoritmos de Camino Más Corto
Implementa los algoritmos de Dijkstra y Bellman-Ford para grafos ponderados. Capacita a los estudiantes para resolver problemas de enrutamiento y minimización de costes.
Lección 4 • Árboles de Expansión Mínima
Implementa los algoritmos de Kruskal y Prim usando union-find y colas de prioridad. Resuelve problemas de diseño de redes que requieren conectividad de coste mínimo.
Lección 5 • Búsqueda en Anchura y en Profundidad
Implementa BFS con una cola y DFS con recursión y una pila. Cubre componentes conexas, detección de ciclos y ordenación topológica.
Capítulo 8OcultarOcultar detallesVer detallesProgramación Dinámica y Técnicas Avanzadas
Programación Dinámica y Técnicas Avanzadas
Lección 1 • Algoritmos Voraces y Backtracking
Implementa estrategias voraces para la planificación de intervalos y la codificación de Huffman, además de backtracking para N-Reinas y subconjuntos. Completa el conjunto de herramientas básicas de diseño de algoritmos.
Lección 2 • Tabulación y DP Ascendente
Construye tablas DP iterativamente para el cambio de monedas, subir escaleras y caminos en cuadrícula. Elimina la sobrecarga de la recursión y aclara la lógica de transición de estados.
Lección 3 • Introducción a la Programación Dinámica
Define los subproblemas solapados y la subestructura óptima como requisitos previos de la DP. Contrasta la DP con divide y vencerás para aclarar cuándo se aplica cada una.
Lección 4 • Memoización y DP Descendente
Convierte la recursión ingenua en soluciones memoizadas utilizando diccionarios y functools.lru_cache. Demuestra una reducción drástica de la complejidad en Fibonacci y problemas similares.
Lección 5 • Patrones Clásicos de DP
Resuelve el problema de la mochila, la subsecuencia común más larga y la distancia de edición. Enseña plantillas de DP reutilizables aplicables a una amplia gama de preguntas de entrevista.
Tu certificado válido de finalización
Este curso es para ti:
Persona que cambia de carrera: necesita una base técnica estructurada para acceder a puestos de ingeniería de software.
Estudiante de informática: necesita práctica práctica de codificación más allá de lo que ofrecen las clases.
Desarrollador autodidacta: puede crear aplicaciones, pero tiene dificultades con la resolución algorítmica de problemas bajo presión.
Analista de datos: preparado para profundizar en las competencias de programación hacia responsabilidades de nivel de ingeniería.
Titulado reciente: preparación para entrevistas técnicas en empresas tecnológicas competitivas a corto plazo.
Programador aficionado: siente curiosidad por cómo se diseñan internamente en realidad los sistemas de software de nivel profesional.
Lo que dicen nuestros alumnos
Sus clases son perfectas. Adquirí el paquete de un año y, finalmente, tengo la oportunidad de seguir diversos temas de mi interés sin necesidad de cambiar de plataforma... agradezco todo lo que hacéis, ya os he recomendado a otras personas...

Me gusta cómo las lecciones van directas al grano y cómo puedo cambiar de capítulos y saltar contenidos que no necesito.

Me gusta el contenido y la forma de presentación y transcripción de vídeos, ¡lo que acelera el proceso!

La plataforma es rápida, fácil de usar. La diversidad de contenido y los vídeos complementarios ayudan mucho en el aprendizaje.

Principales capacitaciones
Preguntas frecuentes
¿Quién es Dedika?
¿El certificado es válido en España?
¿Los cursos son gratuitos?
¿Cuál es la carga lectiva del curso?
¿Cómo son los cursos?
¿Cómo funcionan los cursos?
¿Cuál es la duración de los cursos?
¿Cuál es el coste o precio de los cursos?
¿Qué es un curso EAD u online y cómo funciona?
Curso en PDF




















