我正在当地图书馆连续第二年使用 Raspberry Pi 400 计算机教授 Python。 今年的一些学生在学校的数学方面没有取得成功。 有一位问我是否需要代数才能参加我们的课程。 我告诉她我代数、几何和三角学都挂科了。 她松了一口气。 另一位学生迟到了一会儿,因为她在暑期学校学习几何,此前她在学年期间未能通过该课程。 我分享了我自己关于习得性无助的故事,以及我对数学考试的痛苦。 我糟糕的经历影响了我的高中和大学早期。
我喜欢 Python,特别是 turtle
模块,因为 1990 年代早期在研究生院的一次经历。 这个练习使用 Apple 的徽标来教学生几何,从而带来了一种顿悟,彻底改变了我对数学的态度。 本周的班级有四名八年级学生。 两个有数学背景,两个有数学恐惧症。 在奥林公共图书馆上课的第一天,我们首先简要介绍了 RaspberryPi 400,以及如何将每台计算机连接到从存储中取出的旧 VGA 监视器。 我向学生简要概述和参观了端口、外围鼠标和我们将使用的 microHDMI 电缆。 我们逐步组装 Raspberry Pi 400 单元的各个部分,并将它们连接到监视器。 我们启动了这些单元,并协助学生正确地将其计算机配置为美国和东部时区。 我们连接到图书馆的无线网络,准备开始了。
我向学生简要概述了他们计算机上的所有软件。 然后我向他们介绍了 Mu-Editor,它预装在他们的计算机上。 我们回顾了 Read-Evaluate-Print-Loop (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 循环来绘制一个正方形,以及如何通过将“turtle”分配给特定字母来清理代码。 然后我运行了代码。
#For Loop
import turtle as t
for x in range(4):
t.forward(200)
t.right(91)
过去在数学方面遇到问题的学生之一说:“那个正方形看起来是歪的。”
我说:“你说得对。 它有什么问题?”
她告诉我我的 t.right
应该是 90
而不是 91
。 我纠正了这个错误并重新运行了代码。 它看起来很完美,她很自豪能在数学方面取得一些成功。
我们更改了我们的代码,并且我向他们介绍了 turtle 模块中的新可能性,包括速度、笔颜色和背景颜色。 当我演示如何使用以下代码轻松创建正方形螺旋时,他们很喜欢
# 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)
我们再次更改了我们的代码以制作圆形螺旋。 学生们正在积极学习,而我们九十分钟的课程也结束了。 其中一名学生正在上暑期学校重修她在学年期间不及格的几何学,并且她每天跑一个半街区才能赶到我们的课堂,在那里她擅长构建几何形状。 她对细节有敏锐的眼光,并且经常帮助其他学生识别他们代码中的错误。 她专注的目光启发我与小组讨论了开源软件的价值以及多人监督代码的力量。

(Don Watkins, CC BY-SA 4.0)
# 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)

(Don Watkins, CC BY-SA 4.0)
使用 Python 和开源硬件和软件来促进数学教学让我感到惊讶。 只要稍加创意,就有可能重新构想数学教育。 参加我们课程的每位学生都将收到他们使用的 Raspberry Pi 400,带回家使用。 他们将需要找到一个显示器来连接,但是对于每个单元略高于一百美元的价格,我们正在投资于他们的未来。 如果您愿意捐出您的时间,您可以在您的社区中产生同样的效果。 公共图书馆是课外活动的好地方,我用作课程基础的一些资源来自图书馆的书籍。 其中一本书是 教你的孩子编程。 另一本是 Python for Kids,而 Al Sweigart 的 简单的 Turtle 教程 在线可用。 我们使用了带有 VGA 监视器和 microHDMI 到 VGA 适配器的 Raspberry PI 400 套件。 您可以使用翻新的 Linux 笔记本电脑、Windows 和/或 macOS 笔记本电脑轻松地调整此指令。
5 条评论