从这本书里看到,要从运动的观点看待几何图形。
logo语言
教学经验超过10年的小学信息技术老师对于logo一定不陌生,以前小学教材中就有logo,或者他们小学时候学过logo。
logo语言是西蒙·帕佩特发明的。在《因计算而强大》一书中,对logo语言的来龙去脉,设计初衷有详细的介绍。logo是学生进行探索的一个安全的环境。
潮流总在变,现在python火了,python中有个经典的内置模块turtle
,是logo语言的python简易实现。所以,在教python的时候,是可以继承当年logo语言的案例、教学方法的。虽然语言变了,但是编程的基本概念没有变化。
logo语言远不是教学的玩具这么简单,实际上logo语言作为lisp的方言很强大,甚至不弱于python。netlogo和starlogo是重要的科研工具,可以模拟对病毒传染等建模。
Processing
Processing是一门强大的面向艺术的编程语言。自从2001年诞生后,对软件编程在视觉艺术领域的应用和技术的艺术表达能力。许多学生、艺术家、设计师、研究人员和爱好者基于学习Processing并用Processing搭建原型。
Processing的绘图能力很强大,可以做出各种酷炫的粒子系统、视觉特效。提供了简单易用的API,可以方便的设计图像。抽象程度比turtle高,衍生出了processing.py、p5.js、pgzero、Arduino等项目。
提供了易用的脚手架:
void setup(){
// 程序初始化的代码
}
void loop(){
// 游戏循环
}
这个结构在很多开源项目中都看得到,大大简化制作动画代码的理解难度。
画正方形
turtle画正方形可以是:
for i in range(4):
fd(100)
rt(90)
而用processing更简单:
void setup(){
rect(0, 0, 100, 100) // 左上角(0,0),宽100
}
两种方法都可以绘制正方形,但是背后的思想不同。turtle是基于运动的思想看待集合图形,而processing则是静态的观点。小朋友可以轻松的把自己想象成小乌龟,绘制出正方形,但是如果没有学过正方形的概念,直接用rect就难的多。
Processing提供了丰富的函数,turtle可以清晰的观察图形形成的过程。如果我们按照过程来看待图形的绘制,对于基本几何概念可能会有更好的领悟。
但是,Processing在绘制动画方面更有优势,所以更方便编写动画演示程序。turtle自身虽然绘制过程可见,但是绘制复杂的图形比较难;而且processing对交互的支持远不是turtle能比的。
这个动画效果用processing实现就比较容易,turtle实现的话就很难。
从这个角度,就很容易理解,等底同高的长方形和平行四边面积相等。
turtle画正方形,基本上每次如果回到最初的状态,还原,可以方便进行下一步,Processing中,初级程序不存在这个问题。
画一个图形,并不是为了画图形而画图形,背后要传达的东西也很重要,当然小朋友自己创作又是另外一回事。
当然,小学数学思维中的运动思想我也是一知半解,欢迎大家留言讨论。