数学教育计算机科学的根源
最近呼吁扩大美国学校的计算机科学教育机会。随着教育界关注这一挑战,数学教育与计算机科学之间的关系无疑正在引起人们的关注。这种关系可能是一个有争议的话题。
这场辩论的一部分源于对什么构成“强大的数学背景”的不同看法。对于某些人来说,它获得了数学博士学位。对于其他人来说,它能够从心理上解决多步方程。
数学对计算机科学至关重要的4个原因
但是,还有另一种方法可以确定强大的数学背景:具有抽象推理,批判性思维和逻辑推理的能力-一种数学思维方式。在这方面,数学的强大背景对于计算机科学的成功至关重要。
1.数学通过抽象语言教授理解和交流。
计算机编程具有其自己的语言,这些语言非常抽象。使用语法,必须通过标点符号,符号和单个单词表示特定的过程,命令和视觉效果。对于没有经验用抽象语言进行思考或交流的人来说,学习编程语言可能会很恐怖。
但是,抽象编程语言与学生在数学课上学习的数学语言非常相似。从简单的等式到复杂的数学表示,学习数学都可以教会学生阅读,理解,表达思想以及与抽象语言进行交流的艺术。
当然,数学语言和计算机编程语言并不完全相同。但是,使用任何抽象语言的经验都会给新手计算机科学家带来优势。
2.数学教授如何使用算法。
算法是技术领域中最受关注的术语之一。简而言之,算法是将某种过程抽象为某种形式,该过程可以重复,以不同方式实现并应用于新问题。
这个词在计算机科学中可能会更频繁地使用,但是大多数学生首先在数学中使用算法。例如,考虑一个像5 + x = 7的方程。学生学会通过从和中减去已知的求和来找到未知的求和。这是一种算法-学生可以快速学习如何应用新问题并以不同方式实施。
3.数学教学生如何分析他们的工作。
在一天的编程过程中,任何计算机科学家都可以保证会犯一个错误。因此,程序员必须知道如何评估问题,分析其工作并修复错误。
数学是学生以这种方式分析自己的作品的少数学科之一。一个学生可能会回答一个数学问题(小狗和小猫在一起的重量是多少?),意识到他们的答案是不合理的(231磅),并分析自己的过程以理解错误以及如何纠正错误(也许他们忘记了从盎司转换为磅)。简而言之,数学为学生修复错误做好了准备。
4.除了一般技能,计算机科学仍然涉及很多数学。
除了对计算机科学重要的通用技能外,事实和数学指标也很重要。随着计算机编程与我们的世界互动越来越多,通过数学对世界进行精确建模的重要性日益增长。
例如,要制造自动驾驶汽车,必须对用于编程其转弯,加速度以及与其他汽车的可接受距离的方程进行编程。
成为计算机科学家需要大量的数学知识和技能。更重要的是,计算机科学的成功需要具有数学思维能力。那么,为什么有必要谈论数学如何帮助新兴的计算机科学家为他们的学术职业做好准备呢?
一种更有效的数学教育方法
扎实的数学背景可以培养上述所有技能。不幸的是,正如美国目前所教的那样,数学教育并不总是能为其学生培养强大的数学背景。许多数学课程都专注于公式的死记硬背。这些课程忽略了构建批判性思维和逻辑推理的能力,这些知识和逻辑推理可以帮助学生将来的数学课程和计算机科学职业发展。
数学教育已开始在培养学生的思维能力(而不是背诵)方面出现一些有希望的运动。例如,Reasoning Mind创建了数学教育软件,该软件可以引导学生学习全面的数学课程,并根据个人的长处和短处进行调整。它的课程可帮助他们发展必要的思维能力,以解决简单的问题,然后再挑战他们应对更棘手的问题,建立批判性思维和解决问题的能力。
另一个很好的例子是Oracle Academy,这是一个免费程序,使学生可以通过参与学习机会(包括黑客马拉松,学生研讨会甚至是全球气象站项目)来建立基本的计算机科学技能。使用基于项目的学习方法,Oracle Academy的课程使学生摆脱了死记硬背,并使他们成为批判性思考者和问题解决者。
Eureka Math是另一套有用的资源,其中包含一整套综合的数学课程。它的任务是通过将数学与现实世界联系起来,从而建立学生的信心,从而确保学生接受内容丰富的教育。
此外,教育性非营利性“ 目的地想象力”课程提供了STEM(科学,技术,工程和数学)领域的课程,以教给学生创新的过程,并赋予他们在学校,事业和其他方面取得成功所需的技能。
很多时候,学生被允许在不理解数学为什么重要的情况下放弃数学。我们希望我们的学生成长为一般的计算机科学和STEM职业的下一个领导者。但是,我们需要认识到,只要我们在对学生进行数学教育方面有所作为,就会丢失方程式的重要组成部分。