el editor
con la línea activa resaltada
curso completo · python · youtube
Curso en YouTube · 15 videos · una idea por lección · todo en Python, todo animado, sin cámara

esc. 01 — descripción
«Algoritmos Fundamentales» es un curso en video, completamente animado, para entender cómo funcionan los algoritmos de verdad: no memorizando definiciones, sino viéndolos ejecutarse paso a paso.
Cada lección parte de un problema concreto (encontrar el mayor de una lista, buscar un nombre en una agenda, ordenar mil números, deshacer la última acción, encontrar el camino más corto en un mapa) y lo resuelve en Python, con el código a la vista. A la izquierda, el editor y las variables. A la derecha, lo que hace el algoritmo: cada comparación, cada intercambio, cada llamada. Una sola línea resaltada a la vez. Nada de magia: cada decisión, a la vista.
El curso son 15 videos: una presentación y 14 lecciones, agrupadas en cuatro ideas que se construyen una sobre otra. Medir y buscar (qué es un algoritmo y cómo se mide su coste). Ordenar (cuatro formas de poner datos en orden, de la burbuja a quick sort). Guardar datos (pilas, colas, listas enlazadas, tablas hash y árboles). Recorrer mapas (grafos, colas de prioridad y el algoritmo de Dijkstra).
Cada lección dura lo que la idea necesita, y ni un segundo más. Y cada una es también un tutorial de Python: además del concepto, se enseña cómo se escribe cada construcción (sintaxis) y por qué funciona, con la sangría visible, la anatomía de cada línea y una comprobación final en la computadora del espectador.
esc. 02 — contenidos
Qué es un algoritmo y por qué «pasos exactos» no es lo mismo que «más o menos así».
Medir el coste de un algoritmo sin cronómetro: contar pasos, no segundos, y entender qué significa que algo crezca de forma lineal, constante o cuadrática (Big O).
Buscar en datos desordenados y ordenados: la diferencia entre mil pasos y diez pasos con mil elementos.
Ordenar con cuatro estrategias distintas (burbuja, selección, merge sort y quick sort), y por qué las dos últimas cambian el orden de magnitud.
Pensar de forma recursiva: caso base, caso recursivo y la pila de llamadas.
Guardar datos según lo que vayas a hacer con ellos: pilas y colas, listas enlazadas, tablas hash y árboles de búsqueda.
Recorrer un grafo con BFS y DFS, y entender por qué una de las dos garantiza el camino más corto en número de aristas.
Usar una cola de prioridad (heap) y el algoritmo de Dijkstra para encontrar el camino más corto en un mapa con pesos.
Escribir todo eso en Python: def, for, while, listas, diccionarios, conjuntos, tuplas, clases, recursión, cortes de lista, heapq y deque, y los errores típicos (IndexError, AttributeError, RecursionError) con su causa.
esc. 03 — método
Cada lección sigue la misma estructura, para que siempre sepas dónde estás:
ocho momentos · siempre en el mismo orden
Gancho
El problema, en pocos segundos, con elementos visibles desde el primer fotograma.
Intuición
Una analogía de la vida real, sin código: un torneo, una fiesta, una pila de platos, una búsqueda del tesoro.
Código paso a paso
El código aparece por partes y se ejecuta con un ejemplo pequeño. Cada construcción nueva de Python se explica y se ve funcionar.
Predicción
Antes de revelar un resultado, una pregunta para que intentes adivinar.
Caso difícil
El peor caso, la lista desordenada, los pesos negativos: donde el algoritmo se rompe o se queda corto.
Insight
Una frase central y, si aplica, el coste.
Cierre
El resumen en una sola idea.
Tarjeta final
La lección, el nombre del curso y el logo de animare.dev.
escenas de código
En las escenas de código hay tres contenedores siempre en el mismo sitio:
con la línea activa resaltada
con los valores que cambian en cada paso
el algoritmo dibujado: tarjetas, marcadores, nodos, la pila de llamadas
La misma línea de tiempo mueve el código, la animación y los efectos de sonido.
esc. 04 — temario
Un millón de nombres. Tienes que encontrar uno. Puedes revisarlos de uno en uno y tardar un millón de pasos. O hacerlo en veinte. La diferencia no es la computadora: es el algoritmo. En este video se presenta el curso: qué es un algoritmo, cómo se ve cada lección y cuáles son las cuatro ideas que se van a recorrer.
Tres lecciones para entender qué es un algoritmo, cómo se mide su coste y cómo se busca en una lista.
¿Cuál es el mayor de estos números? Lo ves en un segundo. Pero una computadora no ve la lista completa: hay que explicarle, paso a paso, cómo encontrarlo. Con la analogía de un torneo, esta lección escribe el primer algoritmo en Python y muestra qué pasa cuando la lista está vacía.
aprenderás
def, un bucle for y una comparación if.Dos programas resuelven el mismo problema. Con diez datos, los dos terminan al instante. ¿Y con un millón? Para responder, no se miden segundos: se cuentan pasos. Con la analogía de una fiesta, esta lección introduce Big O y muestra las tres formas básicas de crecer: constante, lineal y cuadrática.
aprenderás
Buscas un nombre en una agenda de papel. Puedes empezar en la primera página y avanzar de una en una. O abrir por la mitad y decidir hacia dónde seguir. Los dos encuentran el nombre, pero no tardan lo mismo. Con mil elementos, la búsqueda lineal hace hasta mil pasos; la binaria, como máximo diez. Y con un millón: un millón contra veinte.
aprenderás
len, range(len(nums)), nums[i] y == frente a =.low, high, mid, while, //, elif y else.-1 aunque el valor esté.Cuatro lecciones para poner datos en orden, de la burbuja a quick sort, pasando por la recursión y merge sort.
Con cinco números, ordenarlos es inmediato. Pero una computadora solo puede comparar dos valores a la vez. Esta lección enseña dos formas de ordenar con esa herramienta: burbuja (comparar vecinos e intercambiarlos) y selección (buscar el menor y llevarlo a su lugar). Con [5, 2, 9, 1, 7], las dos hacen diez comparaciones, pero burbuja hace cinco intercambios y selección solo tres.
aprenderás
copy, dos bucles for anidados y el intercambio en una línea a, b = b, a.hubo_cambio y break: si una pasada no cambia nada, la lista ya está ordenada.menor y un solo intercambio por vuelta.Una caja. Dentro, otra caja. Y dentro de esa, otra más. En algún lugar del fondo hay una llave. ¿Cómo la encuentras si no sabes cuántas cajas hay? Abres una caja. Si dentro hay una llave, terminaste. Si dentro hay otra caja, haces exactamente lo mismo con ella. Eso es recursión: resolver un problema aplicando la misma regla a una versión más pequeña del mismo problema.
aprenderás
factorial(4) = 4 × factorial(3).factorial(4), cada una con su propio n.RecursionError (el límite por defecto de Python es de mil llamadas en espera).Ordenar mil números con burbuja, en el peor caso, toma casi quinientas mil comparaciones. Hay una forma de hacerlo con menos de nueve mil. Y la idea cabe en una frase: juntar dos montones que ya están ordenados es fácil. Merge sort parte la lista a la mitad, ordena cada mitad con la misma función y las mezcla de vuelta.
aprenderás
while y and, .append() y cortes de lista (izq[i:], nums[:mitad], nums[mitad:]).Merge sort parte la lista por la mitad sin mirar los datos. ¿Y si primero los miráramos? Con una sola pasada, un elemento puede quedar en su lugar definitivo, para siempre. Quick sort elige un pivote, manda los menores a un lado y los mayores al otro, y repite en cada lado. La diferencia con merge sort: quick sort hace su trabajo al partir; merge sort, al volver.
aprenderás
izq, der = partir(...)).[pivote] como lista de un solo elemento.RecursionError.Cuatro lecciones para elegir la estructura correcta según lo que vayas a hacer con los datos: pilas, colas, listas enlazadas, tablas hash y árboles.
Pulsas deshacer, y desaparece lo último que hiciste, no lo primero. ¿Cómo recuerda tu computadora todo lo que hiciste, para deshacerlo en orden inverso? Con una pila: el último en entrar es el primero en salir. Con una cola, en cambio, el primero en entrar es el primero en salir, como en la fila del supermercado.
aprenderás
append para meter y pop para sacar por arriba.deque como cola, con append para meter por el final y popleft para sacar por el inicio.IndexError con su mensaje exacto.En una lista de Python, los elementos viven pegados, uno al lado del otro. Si quieres agregar uno al principio, todos los demás tienen que correrse un lugar. ¿Y si cada elemento supiera dónde está el siguiente, y no necesitara estar pegado a nadie? Eso es una lista enlazada: nodos unidos por referencias.
aprenderás
class, __init__(self, valor) y dos atributos: el valor y la pista al siguiente (None si no hay).while actual is not None.nums[999] da el último directamente, pero insert(0, 5) corre a todos.Para buscar en una lista, la recorres uno por uno, o la ordenas primero para usar búsqueda binaria. ¿Y si pudieras calcular en qué lugar está lo que buscas, sin buscarlo? Eso es una tabla hash: una función convierte la clave en un casillero, y guardar y buscar van directo a él.
aprenderás
ord() para el número de cada letra y % para el resto.guardar y buscar.{"ana": 25}) es una tabla hash lista para usar.En la búsqueda binaria descartábamos la mitad de los datos en cada paso, pero necesitábamos una lista ordenada. ¿Y si los datos se guardaran ya organizados para eso, y agregar uno nuevo no moviera nada? Eso es un árbol de búsqueda: cada nodo tiene dos hijos, todo lo de la izquierda es menor, todo lo de la derecha es mayor o igual.
aprenderás
izq y der).RecursionError.Tres lecciones para recorrer grafos y encontrar el camino más corto en un mapa con pesos.
Un mapa con ciudades y rutas. Quieres visitar todas las ciudades a las que puedes llegar, sin repetir ninguna. Una estrategia visita primero las más cercanas (BFS, nivel por nivel, con una cola). Otra se adentra lo más posible (DFS, hasta el fondo, con una pila o con recursión). Las dos llegan a todas, pero una es la base de los GPS.
aprenderás
deque, popleft y un conjunto visitados. Orden desde A: A, B, C, D, E, F.visitados. Orden desde A: A, B, D, E, F, C.RecursionError en DFS.Llegan tres personas a urgencias. La primera, con un corte leve. La segunda, con fiebre. La tercera, con un infarto. Si las atiendes por orden de llegada, la del infarto espera. La cola de prioridad no atiende por orden de llegada: atiende primero al más grave. Para que sea rápida, se guarda en un heap: un árbol binario donde el menor está siempre en la raíz.
aprenderás
heapq con heappush, heappop y heapify.(prioridad, tarea) en una tupla, para que Python los compare por prioridad.[1, 2, 8, 5] es un heap válido, pero no está ordenado.heappop sí da ordenado, pero la ventaja del heap es no ordenar de golpe: solo pagas por lo que usas.Un GPS no elige el camino con menos calles. Elige el más rápido. Y las calles no son iguales: unas son cortas, otras largas, otras están atascadas. Para eso, cada arista tiene un peso. Dijkstra expande siempre el nodo más cercano que aún no ha confirmado, y con un heap sacar el más cercano es rápido.
aprenderás
(vecino, peso).(distancia, nodo) y un conjunto de visitados.B 4→3, D 6→4, E 10→7; la distancia más corta a E es 7 (A→C→B→D→E).tu ruta
5 paradas: la presentación y los cuatro bloques, en orden. Marca cada una al terminar el video para saber dónde te quedaste.
Sigue marcando: la ruta son los 15 videos del curso.
esc. 05 — audiencia
Para quienes ya conocen lo básico de Python (variables y listas) y quieren entender cómo funcionan los algoritmos de verdad, viéndolos ejecutarse.
Para quienes estudiaron algoritmos con definiciones y fórmulas y quieren verlos, paso a paso, con el código a la vista.
Para quienes preparan una entrevista técnica o una materia de estructuras de datos y necesitan una intuición sólida antes de la teoría.
Para quienes aprenden mejor viendo que leyendo: cada línea resaltada antes de ocurrir, cada variable cambiando, cada decisión a la vista.
lo que no necesitasNo necesitas: cámara, instalaciones complicadas ni un entorno de desarrollo. Todo el código se ejecuta en la pantalla, y al final de cada lección se muestra cómo comprobarlo en tu propia computadora.
esc. 06 — preguntas
En Python. Cada construcción nueva se explica al introducirla: desde def y for hasta clases, recursión, deque y heapq.
Lo que la idea necesita, y ni un segundo más. Las hay de menos de cuatro minutos (Lección 5, Recursión) y de alrededor de seis (Lección 6, Merge sort; Lección 11, Árboles).
Se asume lo básico: variables y listas. Cada construcción nueva se explica al introducirla.
No. La voz no se transcribe en pantalla: el texto que aparece son solo palabras clave o frases cortas, nunca la transcripción de la voz.
En YouTube, en el canal de animare.dev. La página enlaza a la lista de reproducción completa.
No. animare.dev es una marca de educación: el curso es gratuito y no promociona nada.
esc. 07 — cierre
El curso es gratuito y no promociona nada: solo algoritmos, paso a paso, con el código a la vista. En YouTube, en el canal de animare.dev.
algoritmos fundamentales · animare.dev · Curso en YouTube · 15 videos · una idea por lección · todo en Python, todo animado, sin cámara