Elegir entre lista, diccionario y conjunto según el coste de búsqueda, inserción y borrado.
Implementar pila y cola sobre listas y sobre collections.deque, comparando su comportamiento real.
Construir listas enlazadas simples y dobles con inserción y borrado en posición arbitraria.
Recorrer árboles binarios de búsqueda en inorden, preorden y posorden de forma recursiva e iterativa.
Representar grafos con listas de adyacencia y recorrerlos en anchura y en profundidad.
Explicar la notación O grande y contrastarla con tiempos medidos con timeit en el cuaderno.
Contenido del curso
7 módulos · 37 clases en vídeo · práctica guiada en cada módulo
Módulo 1 · Punto de partida5 clases
Por qué la estructura de datos decide el rendimiento
El cuaderno de trabajo y cómo medir con timeit
Repaso de listas, diccionarios y conjuntos de Python
Coste de las operaciones nativas que ya usas
Cómo se leerá el código a lo largo del curso
Módulo 2 · Estructuras lineales6 clases
Arrays dinámicos: qué ocurre al crecer una lista
Pilas: implementación y usos reales
Colas con deque frente a colas con lista
Listas enlazadas simples: inserción y borrado
Listas doblemente enlazadas y centinelas
Ejercicio: historial de deshacer y rehacer
Módulo 3 · Tablas hash5 clases
Función hash, cubetas y factor de carga
Colisiones: encadenamiento y direccionamiento abierto
Implementar un diccionario propio y compararlo con dict
Conjuntos como caso particular de tabla hash
Cuándo una tabla hash deja de ser rápida
Módulo 4 · Árboles6 clases
Terminología: raíz, altura, hojas y grado
Árbol binario de búsqueda: inserción y búsqueda
Recorridos inorden, preorden y posorden
Borrado de un nodo con dos hijos
Degeneración del árbol y noción de equilibrio
Montículos y colas de prioridad con heapq
Módulo 5 · Grafos5 clases
Matriz de adyacencia frente a lista de adyacencia
Recorrido en anchura y camino más corto sin pesos
Recorrido en profundidad y detección de ciclos
Orden topológico sobre dependencias
Componentes conexas en un grafo no dirigido
Módulo 6 · Ordenación y búsqueda5 clases
Búsqueda lineal frente a búsqueda binaria
Ordenaciones cuadráticas y por qué se estudian
Mergesort y quicksort explicados con trazas
Estabilidad de una ordenación y cuándo importa
Qué hace realmente sorted en Python
Módulo 7 · Proyecto de cierre5 clases
Enunciado: buscador sobre un catálogo de datos
Elegir estructuras y justificar la decisión
Implementar la solución por partes
Medir el coste y comparar dos alternativas
Preparar la explicación para una entrevista técnica
Requisitos
Programación en Python a nivel de funciones, bucles, listas y diccionarios.
Haber escrito algún programa completo, aunque sea pequeño.
Basta con un navegador: todas las prácticas se hacen en cuadernos de JupyterLab.
Descripción
Un programa que funciona con cien registros puede volverse inservible con cien mil. La causa casi nunca es el lenguaje, sino la estructura de datos elegida para guardar la información y el algoritmo que la recorre. Quien no distingue una búsqueda lineal de una búsqueda en tabla hash acaba escribiendo código correcto pero lento, y sin herramientas para explicar por qué.
El curso alterna implementación y medición. Cada estructura se construye desde cero en un cuaderno de JupyterLab, se prueba con casos límite y después se compara con la versión de la biblioteca estándar midiendo tiempos. Los algoritmos de ordenación y búsqueda se analizan con la misma disciplina: primero el razonamiento sobre el coste, después la comprobación empírica sobre volúmenes crecientes.
Lo que queda es criterio para leer código ajeno, justificar una decisión de diseño y responder con soltura en una entrevista técnica. También es la base directa para el curso de algoritmos avanzados y complejidad, donde entran programación dinámica, algoritmos voraces y grafos ponderados, y para cualquier trabajo posterior de optimización sobre bases de código reales.
¿Para quién es este curso?
Personas que programan a diario y quieren dejar de elegir estructuras por costumbre.
Alumnado de ciclos de Desarrollo de Aplicaciones que prepara pruebas técnicas de acceso al empleo.
Profesorado de FP de Informática que necesita ejemplos ejecutables y medibles para el aula.
Bajo demanda
Curso diseñado con la ficha cerrada. Se produce al confirmarse un grupo o un contrato.
Este sitio web utiliza cookies propias y de terceros para recopilar información con finalidad técnica. No se recaban ni ceden datos de carácter personal sin tu consentimiento. Más información en la política de cookies.