Elige tu idioma
Curso de Estructuras de Datos y Algoritmos en Python
Más de 2 millones de estudiantes en todo el mundo

Curso de Estructuras de Datos y Algoritmos en Python

4,5

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.

Dedika para empresas

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.

Haz clic aquí

Contenido del curso

8 Capítulos • 40 LeccionesDuración entre 4 y 360 horas (tú decides)

Capítulo 1Ver detalles

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 2Ver detalles

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 3Ver detalles

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 4Ver detalles

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 5Ver detalles

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 6Ver detalles

Á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 7Ver detalles

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 8Ver detalles

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.

Certificación

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...
Giulio Carlo
Giulio CarloAlumno de Marketing Digital
Me gusta cómo las lecciones van directas al grano y cómo puedo cambiar de capítulos y saltar contenidos que no necesito.
Mariana Ferres
Mariana FerresAlumna de Fotografía
Me gusta el contenido y la forma de presentación y transcripción de vídeos, ¡lo que acelera el proceso!
Luciana Alvarenga
Luciana AlvarengaAlumna de Diseño de Uñas
La plataforma es rápida, fácil de usar. La diversidad de contenido y los vídeos complementarios ayudan mucho en el aprendizaje.
André Felipe
André FelipeAlumno de Ingeniería de Prompts

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