Skip to content
Tecnología · 3o de Preparatoria

Ideas de aprendizaje activo

Análisis de Complejidad Algorítmica (Notación Big O)

El análisis de complejidad algorítmica con notación Big O es abstracto por naturaleza, pero al convertirlo en experiencias tangibles y colaborativas, los estudiantes internalizan conceptos que de otra forma podrían quedarse en lo teórico. Actividades prácticas como graficar funciones o comparar algoritmos en tiempo real hacen visibles las diferencias entre O(n²) y O(n log n), reforzando la comprensión profunda más que la memorización.

Aprendizajes Esperados SEPSEP EMS: Optimización de Procesos ComputacionalesSEP EMS: Pensamiento Computacional
25–45 minParejas → Toda la clase4 actividades

Actividad 01

Enseñanza entre Pares30 min · Parejas

Enseñanza entre Pares: Graficación de Big O

Los estudiantes eligen algoritmos simples como búsqueda lineal y burbuja. Midan tiempos de ejecución variando n de 10 a 10,000 en Python o pseudocódigo. Grafiquen resultados en hojas o Google Sheets para comparar curvas O(n) y O(n²). Discutan hallazgos en 5 minutos.

¿Cómo la notación Big O permite comparar la escalabilidad de diferentes algoritmos?

Consejo de FacilitaciónPara la Graficación de Big O, proporcione plantillas con ejes predefinidos y pida a las parejas que usen colores distintos para cada función, facilitando la comparación visual inmediata.

Qué observarEntregue a cada estudiante un fragmento de código simple con bucles. Pida que identifiquen la complejidad Big O del código y expliquen en una oración por qué eligieron esa notación.

ComprenderAplicarAnalizarCrearAutogestiónHabilidades de Relación
Generar Clase Completa

Actividad 02

Sesión de Exploración al Aire Libre45 min · Grupos pequeños

Grupos Pequeños: Carrera de Algoritmos

Asignen a cada grupo dos algoritmos de ordenamiento: insertion sort O(n²) y merge sort O(n log n). Implementen con listas crecientes y cronometren ejecuciones. Comparen resultados en pizarra compartida y voten el mejor para datos grandes.

¿Por qué un algoritmo con complejidad O(n^2) es menos eficiente que uno O(n log n) para grandes volúmenes de datos?

Consejo de FacilitaciónEn la Carrera de Algoritmos, prepare dos algoritmos con la misma notación Big O pero diferentes constantes ocultas (ej. dos bucles O(n) con distinto número de operaciones), para que los grupos discutan por qué los resultados prácticos pueden variar.

Qué observarPresente dos algoritmos hipotéticos con sus respectivas notaciones Big O (ej. O(n) vs O(n²)). Pregunte a los estudiantes cuál preferirían para procesar un millón de registros y que justifiquen su elección.

RecordarComprenderAnalizarConciencia SocialAutoconcienciaToma de Decisiones
Generar Clase Completa

Actividad 03

Clase Completa: Debate de Casos Reales

Presenten escenarios como redes sociales con millones de usuarios. Grupos defienden algoritmos por su Big O. Voten y justifiquen con evidencia de complejidad, guiados por preguntas del profesor.

¿De qué manera el análisis de complejidad influye en la toma de decisiones de diseño de software?

Consejo de FacilitaciónDurante el Debate de Casos Reales, asigne roles específicos (ej. equipo de desarrolladores, equipo de usuarios, equipo de mantenimiento) para que los estudiantes adopten perspectivas distintas y enriquezcan el análisis.

Qué observarPlantee la siguiente pregunta: 'Si un algoritmo O(n log n) tarda 10 segundos en procesar 1000 elementos, ¿cuánto tiempo aproximado tardaría en procesar 1,000,000 de elementos?'. Guíe la discusión para que los estudiantes apliquen sus conocimientos de escalabilidad.

RecordarComprenderAnalizarConciencia SocialAutoconcienciaToma de Decisiones
Generar Clase Completa

Actividad 04

Individual: Análisis de Código Propio

Cada estudiante selecciona un programa personal y calcula su Big O dominante. Escriban un informe corto justificando optimizaciones posibles. Compartan uno en clase para retroalimentación.

¿Cómo la notación Big O permite comparar la escalabilidad de diferentes algoritmos?

Consejo de FacilitaciónEn el Análisis de Código Propio, exija que los estudiantes incluyan una sección de 'reflexión' donde expliquen cómo llegaron a su conclusión sobre la complejidad, destacando procesos de razonamiento sobre respuestas correctas.

Qué observarEntregue a cada estudiante un fragmento de código simple con bucles. Pida que identifiquen la complejidad Big O del código y expliquen en una oración por qué eligieron esa notación.

RecordarComprenderAnalizarConciencia SocialAutoconcienciaToma de Decisiones
Generar Clase Completa

Plantillas

Plantillas que acompañan estas actividades de Tecnología

Úsalas, edítalas, imprímelas o compártelas.

Algunas notas para enseñar esta unidad

Enseñar complejidad algorítmica requiere equilibrar rigor matemático con intuición práctica. Evite comenzar con definiciones formales; en su lugar, use ejemplos cotidianos como comparar buscar un nombre en una lista ordenada versus una desordenada para introducir O(log n) y O(n). Los errores comunes, como ignorar el peor caso o subestimar el impacto de constantes, se corrigen mejor mediante actividades donde los estudiantes midan tiempos reales y comparen resultados con predicciones teóricas. La investigación muestra que los estudiantes retienen mejor cuando construyen modelos mentales a partir de experiencias concretas antes de abstraer.

Al finalizar estas actividades, los estudiantes podrán explicar con ejemplos concretos por qué un algoritmo O(n²) se vuelve impráctico con grandes volúmenes de datos, elegir notaciones Big O adecuadas para fragmentos de código y defender sus decisiones con argumentos basados en escalabilidad. La participación activa en debates y simulaciones mostrará su capacidad para transferir estos conceptos a contextos reales.


Cuidado con estas ideas erróneas

  • Durante la Graficación de Big O, watch for estudiantes que confundan la forma de las curvas con el tiempo exacto de ejecución.

    En esta actividad, pida a los estudiantes que graficen no solo las funciones estándar (como n² o n log n) sino también ejemplos concretos con n pequeño (ej. n=2, n=4) usando valores reales de tiempo de ejecución medidos previamente en clase, para que vean que la forma de la curva es más importante que el valor absoluto.

  • Durante la Carrera de Algoritmos, watch for la creencia de que O(n²) siempre es peor que O(n log n) independientemente del tamaño de los datos.

    Use los datos de tiempos reales generados en esta actividad para mostrar que, para n pequeño (ej. menos de 100 elementos), un algoritmo O(n²) con constantes bajas puede ser más rápido que O(n log n) con constantes altas, ilustrando la importancia del contexto en las decisiones de diseño.

  • Durante el Debate de Casos Reales, watch for la idea de que la complejidad solo importa para datos muy grandes.

    En este debate, introduzca casos donde la complejidad afecta el diseño desde etapas tempranas, como en aplicaciones móviles donde la memoria y el tiempo de respuesta limitados hacen que incluso algoritmos O(n) sean inaceptables para n moderados.


Metodologías usadas en este resumen