Here’s why school algebra is important

Usually, when asked "what is the purpose of mathematics?", people respond with something like "it’s a workout for the mind". In my opinion, that explanation falls short. When a person engages in physical exercises, they know the exact names of the muscle groups being developed. However, discussions about mathematics remain too abstract. Which specific "muscles of the mind" are trained by school algebra? It doesn’t resemble true mathematics, where great discoveries are made. What does the ability to find the derivative of complex functions provide?

Teaching programming to weaker students has led me to a more precise answer to the question of "why?" In this article, I will try to convey this to you.

Here’s why school algebra is important
In school, a considerable amount of time is dedicated to transforming and simplifying expressions. For example: 81Ɨ2 + 126xy + 49y2 needs to be rewritten as (9x + 7y)2.

In this example, the student is expected to recall the formula for the square of a sum.

Here’s why school algebra is important

In more complex cases, the obtained expression can be used for further transformations. For example:

Here’s why school algebra is important

it first transforms into

Here’s why school algebra is important

and then, with the clarification that (a + 2b) != 0, it results in

Here’s why school algebra is important

To achieve this result, the student needs to recognize the initial expression and then apply three formulas:

  • The square of a sum
  • Difference of squares
  • Canceling common factors in a fraction

In regular school algebra classes, we spent almost all our time engaging in such expression transformations. At university in higher mathematics, not much changed. We were taught how to find derivatives (integrals, etc.) and given a ton of problems. Was this useful? In my opinion, yes. As a result of these exercises:

  1. The skill of transforming expressions was honed.
  2. Attention to detail developed.
  3. An ideal was formed — a concise expression to strive for.

In my view, having such an ideal, skill, and quality is extremely beneficial in a developer's daily work. Simplifying an expression essentially means altering its structure to enhance understanding without changing its meaning. Does this remind you of anything?

It's practically the definition of refactoring from the book of the same name by Martin Fowler.

In his work, the author formulates them as follows:

Refactoring (noun): a change in the internal structure of software aimed at making its operation easier to understand and simplifying modifications, without affecting observable behavior.

To refactor (verb): to change the structure of software by applying a series of refactorings, without affecting its behavior.

The book provides 'formulas' that need to be recognized in the source code and rules for their transformation.

As a simple example, let's consider the 'introduction of an explanatory variable' from the book:

if ( (platform.toUpperCase().indexOf("MAC") > -1 ) &&
    (browser.toUpperCase().indexOf("IE") > -1 )&&
    wasInitialized() && resize > 0 ) {
    // do something
}

Parts of the expression need to be written into a variable whose name explains its purpose.

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) {
   // do something
}

Imagine a person who cannot simplify algebraic expressions using the square of the sum and difference of squares formula.

Do you think this person can refactor code?

Will he even be able to write code that is understandable to others if he does not have an ideal of conciseness formed? In my opinion — no.

However, everyone learns in school, while only a minority becomes programmers. Is the skill of transforming expressions useful for ordinary people? I think yes. But the skill is applied in a more abstract form: one needs to assess the situation and choose the next action to move closer to the goal. In pedagogy, this phenomenon is called transfer (of skill).

The most vivid examples arise in DIY home repairs using makeshift methods. As a result, those 'tricks' and life hacks appear, one of which is depicted at CDWV. The author of the idea had a piece of wood, a wire, and four screws. Remembering the pattern of a lamp holder, he assembled a homemade socket from them.

Even when driving a vehicle, the driver is constantly recognizing patterns in the surrounding world and performing the corresponding maneuvers to reach the destination.

When you die, you don't know about it; it is only difficult for others. The same is true when you have not mastered mathematics…

What happens if a person fails to master expression transformation? From time to time, I conduct individual sessions with students who struggled with math in school. Usually, they completely get stuck on the topic of loops. So much so that we have to work on "algebra" in a programming language.
This happens because the main technique when writing loops is to transform a group of identical expressions.

Suppose the program's output should look like this:

Introduction
Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 5
Chapter 6
Chapter 7
Conclusion

A trivial program to achieve this result looks like this:

static void Main(string[] args)
{
    Console.WriteLine("Introduction");
    Console.WriteLine("Chapter 1");
    Console.WriteLine("Chapter 2");
    Console.WriteLine("Chapter 3");
    Console.WriteLine("Chapter 4");
    Console.WriteLine("Chapter 5");
    Console.WriteLine("Chapter 6");
    Console.WriteLine("Chapter 7");
    Console.WriteLine("Conclusion");
}

But this solution is far from an elegant ideal. First, one needs to find the repeating group of actions and then transform it. In the end, you'll get a solution like this:

static void Main(string[] args)
{
    Console.WriteLine("Introduction");
    for (int i = 1; i <= 7; i++)
    {
        Console.WriteLine("Chapter " + i);
    }
    Console.WriteLine("Conclusion");
}

If a person did not master mathematics in time, they will also struggle to perform such transformations. They simply will not have the necessary skills. That is why the topic of loops is the first obstacle in training a developer.

Similar problems arise in other areas as well. If a person cannot use available tools, they cannot demonstrate practical ingenuity. Critics may say that their hands do not come from the right place. This manifests on the road as an inability to correctly assess the situation and choose a maneuver, which can sometimes lead to tragic consequences.

Conclusions:

  1. School and university mathematics are necessary so that we can make the world better with the tools we have.
  2. If you are studying and having trouble with learning loops, try going back to the basics — school algebra. Take a 9th-grade problem set and solve examples from it.

Source: habr.com

Buy reliable website hosting with DDoS protection, VPS VDS servers šŸ”„ Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster