通过康拉德·沃尔夫拉姆 (Conrad Wolfram) 的 TED 演讲“停止教授计算,开始教授数学”的视频 (https://blog.wolfram.com/2010/11/23/conrad-wolframs-ted-talk-stop-teaching-calculating-start-teaching-math/) ,我想聊聊在谈论数学教育中使用计算机时听到的最大的恐惧。
使用计算机将“弱化”教育,持反对意见的伴随着以下这些想法“学生必须学会用手去做,否则他们怎么知道他们得到了正确的答案”,“他们不会理解正在发生的事情,除非他们自己做”,等等。
好吧,让我们通过看一个典型的数学问题来检验这个问题,我知道在我们教育的某个阶段必须解决这个问题。
“第二次世界大战古斯塔夫枪的初速为 820m/s(全程使用 SI 单位)。假设没有空气阻力,它在 45° 射击时的射程是多少?”
如果我使用Mathematica,那么我几乎可以输入系统的微分方程组和系统方程组并得到答案。
“啊哈!” 批评者说。“证明计算机已经弱化了这个主题:这根本不需要任何思考。你从来没有解决过 ODE;你从来没有解过方程;电脑为你做了这一切。”
好吧,我同意这个例子非常愚蠢,尽管不是因为计算机做了计算工作。这个例子很愚蠢,因为答案完全错误。
问题中的枪的射程为 48 公里,而不是我们刚刚计算的 68 公里。这不是Mathematica的错,手工操作也无济于事——方程式是错误的。就目前的教育体系而言,这些方程式并没有错;它们会在我以前的学校获得高分。它们是错误的,因为它们没有反映现实。
问题本身进行了简化,明确排除大气,隐含排除任何其他影响力或复杂因素。很难想象什么情况能满足以上条件。
这个典型问题之所以如此愚蠢,是因为如果没有计算机,它很快就变得很难手动解决。在一个面向简洁的手工可解决问题的教育系统中,唯一的解决方案是查看问题的玩具版本。
这里展示的一个关键概念问题是,在教育中,假设通常是指令。相反,我们应该教学生假设(甚至是隐含的)是选择。应该考虑每一个假设可能对解决方案有效性产生的影响。
为了说明这一点,让我们看一下同一问题的一个不那么简单的版本。最大的缺失因素是空气阻力。
拖拽效果
阻力由这个公式给出:
其中pb是基础空气密度,A是有效面积,Cd是阻力系数(衡量形状流线型程度的指标)。但是当阻力作用于运动方向时,我们需要根据x和y速度将其分解为x和y分量。
现在让我们把它放到我们的系统中。这已经成为一个很难以封闭形式计算的棘手问题(学生应该理解的另一个现实问题)。所以我会用数字来解决(手工基本上不可能):
我们遗漏了一些信息,所以我去维基百科收集一些关于空气和古斯塔夫枪的数据。
阻力系数取决于外壳的形状:流线型可低至 0.04,立方体为 1.05,球体为 0.47。我要在这里作弊,声称它是 0.28,没有任何分析或引用。你应该为此扣除一些分数!
高度影响
我们可以添加多种高度影响。如果我们正在打网球,我们可能会忽略这些影响,但是这个外壳会上升 15 公里,并且在那个高度空气密度显著下降。这是我们的Drag函数的一个版本,它将密度作为参数:
现在我需要一个关于空气密度如何变化的模型。这本身就是一个棘手的问题。我们不希望学生永远陷入从基本原理求解初步步骤的困境,因此他们需要能够使用现有模型。
这是空气密度模型和一些关键值,有效至大约 11000m(我假设这足够接近)。
期望学生学习所有这些公式是不合理的——我包括简单的公式,例如 sin(2 θ )=2sin( θ )cos( θ ) 以及我被迫记住的十几个被遗忘已久的变体。所以这意味着一种“打开书本”的方法,可以根据需要查找它们。但在把正确的公式灌输给学生之前,请记住,识别哪种模型适合他们拥有和需要的信息,并弄清楚如何填写模型中缺失的部分,这是学生应该为现实世界掌握的另一项重要技能。
重力也随着高度的增加而降低,当我在查找时,这里有一个更好的地表g值:
事实证明,这种影响在弧顶只有 0.3% 左右。但是很容易添加,所以我会使用它。
现在,我将把这些添加到方程组中,并且我还将在其中添加一个风速参数(假设在飞行期间所有高度的风速都恒定)。
现在我们的射程为 48 公里。很明显,模型很重要:
我们还有什么办法可以不那么愚蠢?
我离“真相”还有很长的路要走。我忽略了地球的曲率、快速的高空急流和低空阵风、科里奥利效应、大气压力、降雨和湿度,我只在 2D 中工作。我还忽略了一个事实,即由于非球形地球和自转效应,赤道和两极之间的重力会发生变化。当金属通过地球磁场和来自月球、太阳和其他行星产生引力效应时,它甚至会在金属中产生小的涡流效应。一个“完美”的模型将是一项重大任务,也许值得写一篇博士论文,但在实践中可能毫无用处。
我必须做出选择,将其简化以适应博客文章的大小,并且有直觉知道付出努力后,哪些效果会相应得到最好的改善。我们还应该考虑参数的可测量性。这些都是我们在真实世界的建模中所做的选择,而我们却没有教会人们如何去做。
更重要的是,我没有在这里花时间进行验证测试。我的模型可信吗?我对哪些影响微不足道的直觉是否正确?我是否正确输入了方程式?对于学生或老师来说,检查我没有做错什么不再是一项微不足道的任务。我非常希望有人指出我在这篇文章的某个地方犯的错误,同样大多数读者不会注意到它。验证是我们必须教授的技能。我的模型是否适合低海拔的简单模型?如果直接向上或直接发射,或以零速度或其他已知值发射,它的行为是否正确?
仅仅手工检查我们的工作是不够的。现在这是一个真正的问题,就像大多数真正的问题一样,它既棘手又混乱,需要深思熟虑。
一旦我们对我们的模型感到满意,我们就可以提出比范围更有趣的问题,例如“±5m/s 的风速会带来多大差异?”
一眼看过去,我们可以看到它有300多米。
“如果风速变化为 2mph,并且初速和发射角度的标准偏差为 1%,那么我们击中直径为 1 公里的目标的概率是多少?” (根据维基百科,更高速度的巴黎炮的射程为 130 公里,但在第一次世界大战中,它有一半的子弹没有击中整个巴黎 )。
接受计算机作为工具的教师面临的挑战是教学生明智地权衡复杂性与正确性,识别他们需要知道、找出、计算的东西以及如何验证。简而言之,教他们思考而不是执行计算程序。
也许更重要的是,通过有趣和具有挑战性的任务,我们必须让学生有信心去处理那些没有简洁、简短、假装答案,但很凌乱,有替代方法,而且可能还没有人知道答案的问题——就像他们在现实世界中会面临的问题一样。