Un estudiante lee un problema de matemáticas y sabe perfectamente qué hacer.
Hay que calcular un porcentaje.
O encontrar una media.
O comparar dos resultados.
O aplicar una fórmula que ya conoce.
En papel, la solución aparece casi de inmediato.
Pero después llega una segunda instrucción:
Resuelve el mismo problema con Python.
Y algo cambia.
El estudiante mira la pantalla y ya no sabe por dónde empezar.
¿Qué variable debe crear primero?
¿Qué cálculo debe realizar antes?
¿Dónde necesita una condición?
¿Qué resultado intermedio debe guardar?
¿Cómo se convierte una idea matemática que parece evidente en una serie de instrucciones?
Es fácil concluir:
“Le falta Python”.
A veces es cierto.
Pero muchas veces el problema está en otro lugar.
El estudiante entiende la operación matemática, pero todavía no sabe expresarla con el nivel de precisión que necesita una máquina.
Las personas completamos lo que no está escrito
Supongamos que queremos calcular la media de tres valores:
15, 21 y 30.
Un estudiante puede escribir directamente:
[
(15 + 21 + 30) / 3 = 22
]
Para una persona que conoce el concepto de media, prácticamente no hace falta explicar nada más.
Entendemos qué representan los números.
Entendemos por qué se suman.
Entendemos por qué el resultado se divide entre tres.
Y entendemos qué significa el número final.
Python no comparte ese contexto.
Tenemos que construirlo.
a = 15
b = 21
c = 30
total = a + b + c
media = total / 3
print(media)La matemática no se ha vuelto más difícil.
Lo que ha cambiado es el grado de explicitud.
El programa necesita que hagamos visible una parte del razonamiento que una persona puede dejar implícita.
Saber qué hacer no es lo mismo que poder explicarlo sin ambigüedad
Esta diferencia aparece incluso en problemas muy sencillos.
Imaginemos un producto que cuesta 200 euros y tiene un descuento del 15%.
Una persona puede pensar:
“Calculo el 15% y se lo resto al precio”.
La instrucción parece completamente clara.
Para convertirla en código, sin embargo, necesitamos definir exactamente qué significa cada paso:
precio = 200
descuento_porcentaje = 15
descuento = precio * descuento_porcentaje / 100
precio_final = precio - descuento
print(precio_final)Ahora distinguimos entre:
- el precio inicial;
- el porcentaje;
- el valor real del descuento;
- el precio final.
En la mente humana, varios de estos elementos pueden estar comprimidos dentro de una sola idea.
El código obliga a separarlos.
Y precisamente ahí aparece una habilidad que no pertenece exclusivamente ni a las matemáticas ni a Python:
formalizar un razonamiento.
Python no ejecuta lo que queríamos decir
Observemos este ejemplo:
x = 10
y = 20
print(x + y / 2)El estudiante quería calcular la media.
Su intención era:
sumar los dos números y dividir el resultado entre dos.
Pero eso no es lo que escribió.
Python ejecutará:
[
10 + (20 / 2)
]
y no:
[
(10 + 20) / 2
]
La versión correcta sería:
media = (x + y) / 2
print(media)Podemos corregir el ejercicio diciendo simplemente:
“Faltan los paréntesis”.
Pero eso resuelve el error visible.
No necesariamente explica su origen.
La pregunta pedagógica más interesante es:
¿por qué una idea matemática correcta terminó convertida en una instrucción diferente?
Una máquina no interpreta nuestra intención
Cuando dos personas hablan, utilizan mucho más que las palabras explícitas.
Usan contexto.
Conocimiento compartido.
Expectativas.
Experiencia previa.
Si alguien dice:
“Primero calcula el descuento y después quítalo”,
normalmente podemos reconstruir qué significa.
Un programa no reconstruye intenciones.
No piensa:
“Seguramente el estudiante quería hacer otra cosa”.
Ejecuta las instrucciones que recibe.
Por eso programar obliga a desarrollar una forma particular de precisión.
No basta con tener una idea aproximadamente correcta.
Hay que decidir:
qué información existe;
cómo se representa;
qué operación ocurre primero;
qué resultado produce;
qué depende de ese resultado;
qué debe suceder después.
Entre el problema y Python existe una capa intermedia
A veces enseñamos como si el proceso fuera:
problema → código
Pero normalmente existe una cadena más larga:
problema → interpretación → modelo matemático → pasos lógicos → algoritmo → código → comprobación
Cada transición puede fallar de una manera diferente.
Un estudiante puede interpretar correctamente el problema, pero elegir un modelo matemático incorrecto.
Puede tener el modelo correcto, pero no saber dividirlo en pasos.
Puede construir un algoritmo razonable y cometer un error de sintaxis.
O puede escribir un programa que funciona técnicamente, pero que responde a una pregunta diferente de la original.
Por eso ver un código incorrecto no nos dice todavía qué conocimiento falta.
Aprender más comandos de Python no siempre resuelve el problema
Un estudiante puede conocer:
- variables;
input();print();- condiciones con
if; - bucles;
- funciones.
Y aun así quedarse bloqueado ante un problema matemático nuevo.
¿Por qué?
Porque saber utilizar una construcción cuando el ejercicio dice exactamente cuál utilizar no es lo mismo que reconocer por cuenta propia qué estructura necesita un problema.
En una tarea real nadie suele indicar:
“Aquí debes crear dos variables, después utilizar un
ify finalmente escribir un bucle”.
El estudiante tiene que descubrir esa estructura.
Tiene que preguntarse:
- ¿Cuáles son los datos de entrada?
- ¿Cuál es el resultado que buscamos?
- ¿Necesitamos resultados intermedios?
- ¿Existen diferentes casos?
- ¿Hay alguna operación que se repita?
- ¿En qué orden deben ejecutarse los pasos?
Eso ya es pensamiento algorítmico.
Python es la herramienta con la que finalmente lo expresamos.
Un programa correcto tampoco demuestra automáticamente comprensión
Hoy es muy fácil obtener código.
Se puede copiar un ejemplo parecido.
Se puede modificar una solución encontrada en internet.
También se puede pedir a una herramienta de inteligencia artificial que genere el programa completo.
Todo eso puede ser útil.
Pero aparece una diferencia fundamental:
tener código y entender código no son la misma cosa.
Una buena prueba consiste en cambiar el problema.
¿Qué ocurre si ahora:
- tenemos veinte valores en lugar de tres;
- el descuento depende del precio;
- algunos datos deben excluirse;
- hay que comprobar una condición antes de calcular;
- el programa debe funcionar con valores introducidos por el usuario?
Si el estudiante solamente recuerda la forma del ejemplo, el nuevo problema puede bloquearlo.
Si entiende la lógica, puede reconstruir la solución.
GeoGebra, Excel y Python no representan el pensamiento de la misma manera
Las herramientas digitales pueden trabajar con el mismo contenido matemático y, sin embargo, exigir habilidades distintas.
GeoGebra permite visualizar relaciones, funciones y objetos matemáticos.
Excel es especialmente natural para tablas, series de datos, porcentajes y cálculos repetidos.
Python hace muy visible la secuencia de operaciones, las condiciones y la lógica de un procedimiento.
Por eso un estudiante puede manejar GeoGebra con seguridad y tener dificultades con Python.
También puede utilizar fórmulas de Excel correctamente sin saber construir un algoritmo desde cero.
No significa necesariamente que haya olvidado las matemáticas.
Significa que está intentando representar el conocimiento de otra manera.
Cuando además hay que entender el problema en otra lengua
Para muchos estudiantes de programas internacionales existe una dificultad adicional.
Imaginemos que un alumno estudia matemáticas en inglés o alemán y después tiene que resolver la tarea utilizando Python.
La cadena real puede ser:
lengua del problema → interpretación → matemáticas → lógica → algoritmo → Python
Entonces un error que aparece finalmente en el código puede haber comenzado mucho antes.
Quizá el estudiante no interpretó con precisión un término.
Quizá no reconoció una condición expresada en el texto.
Quizá entendió la operación matemática, pero respondió a una pregunta ligeramente distinta.
En estas situaciones, separar completamente “idioma”, “matemáticas” y “programación” puede ocultar el problema en lugar de aclararlo.
Antes de corregir el código, conviene reconstruir el razonamiento
Un profesor puede escribir la solución correcta en pocos segundos.
Pero si el objetivo es que el estudiante pueda resolver el siguiente problema solo, hay preguntas más importantes:
- ¿Qué información tenemos?
- ¿Qué debemos obtener?
- ¿Cuál es el primer resultado que necesitamos?
- ¿Qué depende de ese resultado?
- ¿Existe alguna condición?
- ¿Qué parte del proceso se repite?
- ¿Cómo comprobaríamos que el resultado tiene sentido?
- ¿Podrías explicar la solución sin utilizar todavía Python?
Esta última pregunta es especialmente útil.
Si el estudiante no puede explicar el procedimiento sin código, probablemente escribir más código todavía no resolverá la dificultad principal.
Diagnosticar antes de decidir qué necesita el estudiante
En Levitin Language School, una dificultad de este tipo no se interpreta automáticamente como:
“Necesita más clases de Python”.
Primero hay que localizar el punto exacto donde se rompe el proceso.
Puede faltar:
- comprensión matemática;
- capacidad para dividir el problema en partes;
- pensamiento lógico;
- construcción de algoritmos;
- conocimiento de Python;
- comprensión de la lengua en la que se estudia la asignatura.
Esta distinción permite trabajar con la causa y no solamente con el síntoma.
En Language Learnings, el mismo principio adquiere especial importancia cuando una lengua se convierte en el medio para aprender matemáticas, programación u otra disciplina. El idioma deja entonces de ser una asignatura aislada y pasa a formar parte del razonamiento.
Y en el enfoque de Tymur Levitin, la pregunta central no es únicamente si una respuesta es correcta o incorrecta, sino qué mecanismo produjo esa respuesta.
Así funcionan juntas las tres dimensiones:
Tymur Levitin — análisis del mecanismo de aprendizaje y diagnóstico del punto real de dificultad;
Levitin Language School — trabajo individual con idiomas, matemáticas, programación y otras disciplinas académicas;
Language Learnings — contexto internacional y conexión entre el idioma y el uso real del conocimiento.
Matemáticas + programación + idioma
Un estudiante puede necesitar mejorar Python.
Otro puede necesitar reforzar matemáticas.
Otro sabe ambas cosas por separado, pero todavía no puede construir el puente entre ellas.
Y para un alumno que estudia una asignatura en una lengua extranjera puede existir una cuarta necesidad: aprender a pensar dentro de la asignatura utilizando esa lengua.
Por eso no siempre tiene sentido buscar una única etiqueta:
“clases de matemáticas”,
“clases de Python”,
o
“clases de inglés”.
A veces la necesidad real aparece precisamente en la intersección.
Más información
Si un estudiante resuelve correctamente problemas matemáticos en papel pero se bloquea al programarlos, conviene identificar primero dónde está la dificultad: matemáticas, lógica, algoritmo, Python o lengua de aprendizaje.
En Levitin Language School, el trabajo puede organizarse alrededor de la combinación concreta que necesita el estudiante, incluyendo matemáticas, programación y apoyo lingüístico cuando la asignatura se estudia en otra lengua.
El enfoque Language + Subject permite trabajar también allí donde una lengua deja de ser únicamente un objeto de estudio y se convierte en una herramienta para aprender matemáticas, informática u otra disciplina.
Levitin Language School
https://levitintymur.com/
Language Learnings
https://languagelearnings.com/
Tymur Levitin
Fundador y director
Levitin Language School / Language Learnings
Aprendizaje global. Enfoque individual.
© Tymur Levitin. Todos los derechos reservados.
