Normalmente, cuando se hace la pregunta "¿para qué sirve la matemática?" se responde algo como "gimnasia para la mente". En mi opinión, esta explicación es insuficiente. Cuando una persona realiza ejercicios físicos, sabe el nombre exacto de los grupos musculares que se están desarrollando. Pero las conversaciones sobre matemáticas siguen siendo demasiado abstractas. ¿Qué "músculos de la mente" se ejercitan con el álgebra escolar? No se parece en nada a la verdadera matemática, donde se hacen grandes descubrimientos. ¿Qué utilidad tiene saber buscar la derivada de funciones complicadas?
La enseñanza de la programación a estudiantes débiles me llevó a una respuesta más precisa a la pregunta "¿por qué?". En este artículo intentaré transmitirla.

En la escuela, se dedica mucho tiempo a transformar y simplificar expresiones. Por ejemplo: 81×2+126xy+49y2 debe transformarse como (9x+7y)2.
En este ejemplo, se espera que el estudiante recuerde la fórmula del cuadrado de la suma.

En casos más complejos, la expresión obtenida puede ser utilizada para otras transformaciones. Por ejemplo:

se transforma primero en

y luego, con la aclaración (a + 2b) != 0, se obtiene

Para lograr este resultado, el alumno necesita reconocer en la expresión original y luego aplicar tres fórmulas:
- El cuadrado de la suma
- La diferencia de cuadrados
- La simplificación de factores de una fracción ordinaria
En una escuela común, casi todo el tiempo en álgebra nos dedicamos a este tipo de transformación de expresiones. En la universidad, en matemáticas avanzadas, no cambió mucho. Nos enseñaron cómo derivar (integrales, etc.) y nos dieron una tonelada de problemas. ¿Fue útil? En mi opinión, sí. Como resultado de hacer dichos ejercicios:
- Se perfeccionó la habilidad de transformar expresiones.
- Se desarrolló la atención a los detalles.
- Se formó un ideal: una expresión concisa a la que se puede aspirar.
En mi opinión, tener ese ideal, esa calidad y esa habilidad es muy útil en el trabajo diario del desarrollador. Después de todo, simplificar una expresión significa, en esencia, cambiar su estructura con el fin de facilitar la comprensión sin alterar el significado. ¿No te recuerda a algo?
Es prácticamente la definición de refactorización del libro homónimo de Martin Fowler.
En su obra, el autor las formula de la siguiente manera:
Refactorización (Refactoring) (sust.): cambio en la estructura interna del software con el objetivo de facilitar la comprensión de su funcionamiento y simplificar su modificación, sin afectar el comportamiento observable.
Realizar refactorización (Refactor) (verbo): modificar la estructura del software aplicando una serie de refactorizaciones, sin alterar su comportamiento.
El libro presenta "fórmulas" que deben ser reconocidas en el código fuente y reglas para su transformación.
Como ejemplo más simple, citaré la "introducción de una variable explicativa" del libro:
if ( (platform.toUpperCase().indexOf("MAC") > -1 ) &&
(browser.toUpperCase().indexOf("IE") > -1 )&&
wasInitialized() && resize > 0 ) {
// hacer algo
}Las partes de la expresión deben ser almacenadas en una variable, cuyo nombre explique su propósito.
final boolean isMacOS = platform.toUpperCase().indexOf("MAC") > -1;
final boolean isIEBrowser = browser.toUpperCase().indexOf("IE") > -1;
final boolean isResized = resize > 0;
if(isMacOS && isIEBrowser && wasInitialized() && isResized) {
// hacer algo
}
Imagina a una persona que no puede simplificar expresiones algebraicas usando la fórmula del cuadrado de la suma y la diferencia de cuadrados.
¿Crees que esta persona podrá refactorizar el código?
¿Podrá realmente escribir código que otros puedan entender, si no tiene formado el ideal de esa misma concisión? En mi opinión, no.
Sin embargo, en la escuela estudian todos, y solo una minoría se convierte en programadores. ¿Es útil la habilidad de transformar expresiones para personas comunes? Creo que sí. Solo que la habilidad se aplica de manera más abstracta: necesitas evaluar la situación y elegir la acción a seguir para acercarte a la meta. En pedagogía este fenómeno se llama .
Los ejemplos más destacados surgen en reparaciones básicas con medios improvisados, de manera "casera". Como resultado, aparecen esas "trucos" y consejos prácticos, uno de los cuales está ilustrado en la ITV. El autor de la idea tenía un trozo de madera, un cable y cuatro tornillos. Recordando el patrón de un portalámparas, los ensambló para crear un portalámparas casero.
Incluso al viajar en un vehículo, el conductor está constantemente reconociendo patrones en el mundo que lo rodea y realizando maniobras correspondientes para llegar a su destino.
Cuando mueres, no lo sabes, solo es difícil para los demás. Lo mismo ocurre cuando no has dominado las matemáticas…
¿Qué sucede si una persona no logra dominar la transformación de expresiones? De vez en cuando, doy clases particulares a estudiantes que tuvieron dificultades con las matemáticas en la escuela. Por lo general, se atoran completamente en el tema de los bucles. Tanto, que hay que trabajar con ellos en "álgebra", pero en lenguaje de programación.
Esto ocurre porque al escribir bucles, el truco principal consiste en transformar un grupo de expresiones idénticas.
Supongamos que el resultado del programa debe verse así:
Introducción
Capítulo 1
Capítulo 2
Capítulo 3
Capítulo 4
Capítulo 5
Capítulo 6
Capítulo 7
Conclusión
Un programa trivial para alcanzar este resultado se ve así:
static void Main(string[] args)
{
Console.WriteLine("Introducción");
Console.WriteLine("Capítulo 1");
Console.WriteLine("Capítulo 2");
Console.WriteLine("Capítulo 3");
Console.WriteLine("Capítulo 4");
Console.WriteLine("Capítulo 5");
Console.WriteLine("Capítulo 6");
Console.WriteLine("Capítulo 7");
Console.WriteLine("Conclusión");
}Pero esta solución está lejos de ser el ideal de concisión. Primero hay que identificar el grupo repetitivo de acciones y después transformarlo. Al final se obtiene la siguiente solución:
static void Main(string[] args)
{
Console.WriteLine("Introducción");
for (int i = 1; i <= 7; i++)
{
Console.WriteLine("Capítulo " + i);
}
Console.WriteLine("Conclusión");
}Si una persona no dominó las matemáticas en su momento, no podrá realizar estas transformaciones. Simplemente le faltará la habilidad correspondiente. Por esta razón, el tema de los bucles es el primer obstáculo en la formación de un desarrollador.
Problemas similares surgen en otras áreas. Si una persona no sabe usar una herramienta a mano, no podrá mostrar ingenio en situaciones cotidianas. Algunos dirán que sus manos no están en el lugar correcto. En la carretera, esto se refleja en la incapacidad para evaluar correctamente una situación y elegir una maniobra, lo que a veces puede tener consecuencias trágicas.
Conclusiones:
- La matemática escolar y universitaria nos es necesaria para que podamos mejorar el mundo con lo que tenemos.
- Si estás estudiando y tienes problemas para aprender sobre bucles, intenta volver a los fundamentos: el álgebra escolar. Toma un libro de ejercicios de noveno grado y resuelve ejemplos de él.
Fuente: habr.com
