这就是为什么需要高中代数

通常的问题是“为什么我们需要数学?” 他们的回答类似于“心灵体操”。 在我看来,这个解释还不够。 当一个人进行体育锻炼时,他知道所发育的肌肉群的确切名称。 但有关数学的对话仍然过于抽象。 学校代数训练了哪些具体的“心理肌肉”? 它与真正的数学完全不同,在数学中做出了伟大的发现。 寻找某些复杂函数的导数的能力会带来什么?

向弱学生教授编程使我对“为什么?”这个问题有了更准确的答案。 在这篇文章中我将尝试向您传达这一点。

这就是为什么需要高中代数
在学校里,相当多的时间都花在了表达式的转换和简化上。 例如:81×2+126xy+49y2需要转换为(9x+7y)2。

在此示例中,学生需要记住总和平方的公式

这就是为什么需要高中代数

在更复杂的情况下,生成的表达式可用于其他转换。 例如:

这就是为什么需要高中代数

首先被转换为

这就是为什么需要高中代数

然后,经过澄清 (a + 2b) != 0,结果是这样的

这就是为什么需要高中代数

为了达到这个结果,学生需要识别原始表达式,然后应用三个公式:

  • 总和的平方
  • 平方差
  • 约简公分数的因数

在代数学校里,我们几乎所有的时间都花在这样的变换表达式上。 大学的高等数学没有发生任何重大变化。 我们被告知如何求导数(积分等)并给出了很多问题。 有帮助吗? 我认为 - 是的。 执行这些练习的结果是:

  1. 变换表情的技巧得到了磨练。
  2. 对细节的关注得到了发展。
  3. 一种理想形成了——一种人们可以为之奋斗的简洁表达。

在我看来,拥有这样的精神、品质和技能对于开发者的日常工作是非常有用的。 毕竟,简化表达式本质上就是改变其结构,以便于理解而不影响其含义。 这让你想起什么了吗?

这实际上是 Martin Fowler 的同名书中对重构的定义。

在他的著作中,作者将它们表述如下:

重构 (n):对软件内部结构的更改,旨在使其更易于理解和修改,而不影响可观察的行为。

重构(动词):通过应用一系列重构来改变软件的结构,而不影响其行为。

书中给出了源代码中需要识别的“公式”以及转换它们的规则。

举个简单的例子,我举一下书中的“解释变量的介绍”:

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

表达式的某些部分必须写入一个变量,该变量的名称解释了其用途。

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
}

想象一下一个人无法使用平方和和平方差公式简化代数表达式。

你认为这个人可以重构代码吗?

如果他没有形成这种简洁的理想,他还能写出别人能理解的代码吗? 我认为,不。

然而,每个人都上学,只有少数人成为程序员。 表情转换技巧对于普通人有用吗? 我想是的。 只是技能以更抽象的形式应用:你需要评估情况并选择进一步的行动,以便更接近目标。 在教育学中,这种现象被称为 转移(技能).

最引人注目的例子出现在使用临时手段“集体农场”方法进行家庭维修时。 结果,同样的“技巧”和生活窍门出现了,其中之一在 KPDV 上有所描述。 这个想法的作者有一块木头、一根电线和四个螺丝。 记住了灯座模板,他用它们组装了一个自制的灯座。

即使在驾驶车辆时,驾驶员也会不断地识别周围世界的模式并执行适当的操作以到达目的地。

当你死的时候,你不知道,只是对其他人来说很难。 当你没有掌握数学的时候也是一样的...

如果一个人不能掌握表情的变换会怎样? 我时不时地给学校里数学不好的学生单独上课。 一般来说,他们完全陷入了周期的话题。 如此之多以至于你必须用它们来做“代数”,但是用编程语言。
发生这种情况是因为在编写循环时,主要技术是转换一组相同的表达式。

假设程序的结果应如下所示:

介绍
第1章
第2章
第3章
第4章
第5章
第6章
第7章
结论

实现此结果的简单程序如下所示:

static void Main(string[] args)
{
    Console.WriteLine("Введение");
    Console.WriteLine("Глава 1");
    Console.WriteLine("Глава 2");
    Console.WriteLine("Глава 3");
    Console.WriteLine("Глава 4");
    Console.WriteLine("Глава 5");
    Console.WriteLine("Глава 6");
    Console.WriteLine("Глава 7");
    Console.WriteLine("Заключение");
}

但这个解决方案远非简洁理想。 首先,您需要在其中找到一组重复的操作,然后将其转换。 最终的解决方案将如下所示:

static void Main(string[] args)
{
    Console.WriteLine("Введение");
    for (int i = 1; i <= 7; i++)
    {
        Console.WriteLine("Глава " + i);
    }
    Console.WriteLine("Заключение");
}

如果一个人没有一次掌握数学,那么他就无法进行这样的转变。 他根本不具备适当的技能。 这就是为什么循环主题是开发人员培训中的第一个障碍。

类似的问题也出现在其他领域。 如果一个人不知道如何使用手头的工具,那么他就无法表现出日常的聪明才智。 邪恶的舌头会说手是从错误的地方长出来的。 在路上,这表现为无法正确评估情况并选择策略。 这有时会导致悲惨的后果。

结论:

  1. 我们需要学校和大学数学,以便我们能够利用我们拥有的手段让世界变得更美好。
  2. 如果您是一名学生并且在学习周期上遇到困难,请尝试回到基础知识 - 学校代数。 拿一本 9 年级的习题册并解决其中的示例。

来源: habr.com

添加评论