如何用Python和Raspberry Pi让学生对数学感到兴奋

110 阅读5分钟

我连续第二年在当地图书馆使用Raspberry Pi 400电脑教授Python。今年的几个学生在学校的数学课上没有成功经验。一位问我她是否需要代数来参加我们的课程。我告诉她,我在学校的代数、几何和三角学都没有通过。她松了一口气。另一个学生冲进门时有点晚,因为她在上学期间没能通过几何课程,所以在暑期学校上几何课。我分享了我自己的习得性无助的故事,以及我一想到数学考试的苦恼。我自己的糟糕经历影响了我的高中和大学早期的学习。

我喜欢Python,特别是turtle 模块,是因为90年代初在研究生院的一次经历。这个练习用苹果的标志来教学生几何学,导致了我的顿悟,完全改变了我对数学的态度。这周的班级有四个八年级的学生。两个有数学背景,两个有数学恐惧症。在奥林公共图书馆上课的第一天,我们先简单讲解了RaspberryPi 400,以及如何将这些电脑分别连接到从仓库里拿来的旧VGA显示器上。我向学生们简要介绍并参观了我们将使用的端口、外围鼠标和微型HDMI线。我们一步一步地组装Raspberry Pi 400单元的部件,并将它们连接到显示器上。我们给设备通电,我协助学生们正确配置他们的计算机,使其适用于美国和东部时区。我们连接到图书馆的无线网络,准备开始。

我向学生们简要介绍了他们电脑上的所有软件。然后我向他们介绍了预装在他们电脑上的Mu-Editor。我们回顾了 "读取-评估-打印-循环"(REPL)。我解释说,虽然我们可以在REPL中执行代码,但他们会发现在Mu-Editor中写代码更容易,然后用.py 扩展来保存他们的代码,以确保系统能够正确执行。我解释了我们的代码如何需要注释,以及如何正确地添加和保存它们。

# first program
print("Hello World")

然后我向他们介绍了turtle 模块。我们谈到了正方形的元素;正方形是由四条相等的边组成的,包含90度角。我们一起写了以下代码,保存了我们的工作,并执行了它。

# First Turtle Square
import turtle
turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)

我解释了如何修改代码并添加不同的笔色和不同的背景颜色等功能。

# First Turtle Square
import turtle
turtle.pencolor("blue")
turtle.bgcolor("yellow")
turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)

我向他们介绍了turtle.shape ,以改变默认的外观,使之更像一只乌龟。我鼓励他们每次都要保存,并进行迭代。他们在分享他们的成果时很开心。

在第二节课上,我演示了如何使用for循环来画一个正方形,以及如何通过将 "乌龟 "分配给一个特定的字母来清理代码。然后我运行了这段代码。

#For Loop
import turtle as t
for x in range(4):
           t.forward(200)
           t.right(91)

一个过去曾遇到过数学问题的学生说:"这个正方形看起来是歪的"。

我说,"你是对的。它有什么问题?"

她让我知道,我的t.right 应该是90 ,而不是91 。我改正了错误并重新运行了代码。它看起来很完美,她为在数学方面取得的一些成功感到自豪。

我们修改了代码,我向他们介绍了乌龟模块的新可能性,包括速度、笔的颜色和背景颜色。当我演示如何用下面的代码轻松创建一个正方形的螺旋时,他们很喜欢。

# square spiral
import turtle as t
t.speed(0)
t.bgcolor("blue")
t.pencolor("yellow")
for x in range(200):
           t.forward(x)
           t.right(91)

我们又改变了代码来制作圆形的螺旋线。学生们都在精益求精地学习,我们九十分钟的课程也就结束了。其中一个学生在暑期学校重修她在学年中没有通过的几何学课程,每天她都要跑一个半街区才能到我们的课堂,她在构建几何图形方面表现出色。她有一双善于观察细节的眼睛,经常帮助其他学生找出他们代码中的错误。她那双警惕的眼睛启发了我,让我和大家一起讨论开放源码软件的价值和许多人盯着代码的力量。

circle spirals rendered by python code

# circle spiral
import turtle as t
t.speed(0)
t.bgcolor("blue")
t.pencolor("yellow")
for x in range(100):
           t.circle(x*2)
           t.right(91)
t.setpos(60,75)
 
for x in range(100):
           t.circle(x)
           t.right(91)

blue spiral of squares rendered from Python code

使用Python与开源硬件和软件来促进数学教学使我感到惊讶。只要有一点独创性,就有可能重新想象数学教育。每个参加我们班的学生都会收到他们制作的Raspberry Pi 400,可以带回家使用。他们必须找到一个显示器来连接,但每台设备只需一百多美元,我们就为他们的未来投资了。如果你愿意捐出你的时间,你可以在你的社区产生同样的效果。公共图书馆是开展课外活动的绝佳空间,我用作课堂基础的一些资源来自图书馆的书籍。其中一本是《教你的孩子学编程》。另一本是Python for Kids和Al Sweigart的A Simple Turtle Tutorial,可以在网上找到。我们使用了带有VGA显示器和microHDMI转VGA适配器的Raspberry PI 400套件。你可以使用翻新的Linux笔记本电脑、Windows和/或macOS笔记本电脑轻松地改编这个教学。