开发程序设计课程 培养初中生计算思维
——以python海龟标准库绘图教学为例

2023-09-26 08:20陈建勋
福建教育学院学报 2023年8期
关键词:海龟绘图指令

陈建勋

(福州市鼓山中学 福建 福州 350007)

初中阶段计算思维的能力要求初中学生能用计算思维来界定生活中的实际问题,要求能利用自然语言或流程图来描述算法,要求能掌握程序的三种基本结构,并能使用编程语言来解决生活中的问题。然而,在七年级信息技术课中应用python语言开展编程教学面临诸多困境:如编程课程入门阶段抽象且枯燥的程序代码指令很难引起学生的学习兴趣。编程是黑盒测试,没有过程分,只检测运行结果,不利于编程时计算思维的纠错纠偏。初中信息技术编程教学是体验和解决实际问题的学习,而不是进行专业的编程语言。所以,在编程课程入门阶段应首先注重培养学生分析问题的能力,发展学生的计算思维[1];然后,找到问题的核心并通过编程解决问题,这是很多学生入门时的拦路虎。但是,初中阶段的学生学习编程的目的不是在做系统开发。系统开发、专业编程也不是初中阶段的学生能够掌握和理解的。所以在教学时,不能直接带学生进行代码学习,代码只是一些语法结构,重头戏是要先理清楚程序的逻辑关系。因此,教学重点应放在计算思维能力的提升[2],代码指令次之。下文着重阐述笔者在python海龟标准库教学过程中,破解上述困境所设计并实践的具体的教学策略:

一、通过观察训练,牵引出学生的计算思维

计算思维不是一种具体的技能操作,它不是“教”出来的。在信息技术学科学习过程中,解决问题一样需要通过本质去认识现象,也是需要学生在学习程序设计知识的过程中,能够抓住事物的本质,并找到其中的内在联系。笔者从高斯解决数学累加的故事中得到启发:在课堂教学中,适当地进行观察训练,能够有效地开展学生的计算思维活动。

数学王子高斯在十岁的时候就展现出超乎寻常人的计算能力,他能快速解决100!的问题,一个最主要的原因是在于他能够敏锐的观察出问题本质:1+100=101、2+99=101,……,1累加到100一共有50组和为101的组合[3],进而展开计算思维,快速获得问题的答案。

在教学实践中要想有效利用学生的观察能力进而牵引出计算思维,即要求教师能引导学生,一步步探究课堂所提问题的本质。例如,笔者在教授《for循环结构程序绘图》的教学内容“引入新课”环节中,先展示一学生作品(此作品是上节课点评学生作品时出现的一个创作(图1),要求全体同学对此作品中的指令进行观察,并回答:哪些指令在重复执行?执行几次?

图1 for循环结构程序学生作品图

在之前的教学内容中,笔者已经教授学生海龟标准库中forward(前进)、left(左转)、right(右转)、circle(画圆)等绘图基本的指令,并且在课堂练习中也让学生利用了这些指令进行绘图创作。新课的引入首先从创设情境出发,让学生在问题引领下,对展示的指令进行观察,发现例图作品的本质:重复执行的指令为:circle(100)、left(90)、forward(200),重复执行了3次,这也为接下来的学习奠定良好的开端。笔者小结:简单的指令进行重复执行后,就会有非凡的图形产生,此时可以感受到学生情绪高涨。

本环节的教学是延续前面课程教学内容进行课堂设计:教学策略的设计意图在于营造探究的学习氛围,引导学生能够有意识地对问题进行探究。学生利用自己的观察能力解决问题后,教师应适时地鼓励学生,引燃学生的计算思维:笔者展示出一个新的图形,教师引导、师生共同探究如何对绘制一个正方形的指令进行修改,修改哪些指令参数,让新代码能够绘制出如下图(图2)。

图2 修改正方形指令得到的新图形

图4 递进式图形第二组练习图示

图5 递进式图形第三组练习图示

让学生一边观察一边讨论,启发学生归纳并抽象问题,同时进行简单的汇总。最后得出结果:把绘制正方形中的4条left(90)指令统一进行修改,即修改其中的参数90度为更大的度数,例如left(100),然后重复执行多次即可得到与例图类似的图形。

上述的教学内容是让学生带着问题对具体例图进行观察、探究,去抓住事物的本质。之后在教师的引导下,让学生对自己观察得到的规律进行完善,进而全面启发学生的计算思维,使之解决实际问题。

二、借助“填空程序形式”,促进学生计算思维培养

“填空程序形式”即用填空的形式让学生把程序关键的部分补充完整。以皮亚杰为代表的心理学家认为:思维是不可直接教的,而是需要在生活中领悟和积累。[4]笔者在实际教学中感受到:中小学生在掌握相应的编程语言时对其包含的复杂语法规则和抽象符号形式存在认知门槛问题,因此在编程教学活动设计中,教师课堂的教学设计,可能会侧重关注学生对程序符号和语法规则的学习,而忽视计算思维的发展。笔者通过自身的教学实践发现,以“填空程序形式”引导学生面对问题、解决问题,此教学策略能帮助初中学生摆脱程序符号和语法规则的困境,先把注意力集中在解决教师提问上,能跟着教师进行课堂内容连贯性的学习,而不是卡壳在键盘打字、函数指令漏输、输错等细节上。笔者的“填空程序形式”的教学策略,建立在层层递进的填空过程中,帮助学生梳理思维脉络、建构思维体系,进而培养学生的计算思维。

三、利用递进式综合性课堂练习,提升计算思维

“递进式综合性课堂练习”就是在上机实践时,采用由简单到复杂的方式设计练习,对照三组递进式图形,都是要求学生从左边的简单图形绘制,然后过渡到右边复杂的图形。让学生经历编程构思和程序实现的过程,从而引导学生研究其中的规律,形成计算思维,掌握制作综合任务的方法,也就是掌握利用计算思维编程构思和程序实现的步骤和方法。

随着课程的进展,通过前面论述的“观察能力牵引”教学策略的开展,学生具有了从分析简单问题到能够用计算思维界定问题的能力;利用“填空程序形式”的教学策略,帮助学生学会了大部分编程指令的知识,让他们了解了具体的编程语法结构,对程序的三种基本结构(顺序、分支、循环)从初步认识达到了基本掌握。此时学生的知识储备使得他们的能力处在能够读懂已有的完整程序,但是却不会综合性使用:即培养了学生学会了分析问题的计算思维,但在编程构思和程序实现上面,还需要进一步提升他们的计算思维。因此笔者的教学策略设计以递进式综合性课堂练习进一步培养学生的计算思维,如以下三组递进式图形的绘制练习。

“递进式综合性课堂练习”的教学策略事实上是培养学生举一反三的能力,进而达到形成计算思维的目的,在这个过程中,更希望学生从完成教师的课堂练习到进行自我创作提升,借此进一步培养学生的计算思维。

知识、能力和思维是创新的基础,在程序设计课程的学习中,对于指令知识,学生随着反复学习能够较好地掌握,但在计算思维方面仍较为不足。在以往的教学中,比较注重知识和能力的培养,而只有把知识、能力与思维三者紧密结合起来,并贯穿在整个教育过程中,才能培养出高质量的人才[5]。因此,教师要在程序设计课程中主动地、有意识地将计算思维融入其中,这不仅有利于学生提高程序设计能力,更有利于学生用信息技术学科的思维方式来解决现实问题。从实践结果来看,学生对于课程学习的积极性有了明显提高,自主学习能力、学习效率和学习效果得到了明显改善。

如上所述,是笔者在python海龟绘图教学中对如何培养学生的计算思维的教学策略所作的一些探究。笔者在python海龟绘图教学过程中,感受到相比较C语言,海龟标准库适合初中编程课教学使用,尤其是海龟绘图趣味项目可以在python海龟绘图趣味编程教学的过程中把数学、英语、美术等多学科知识融为一体,学生用程序绘制图案时收获颇丰。如某一同学自述“我这个学期学会了如何利用海龟前进、转向、设置坐标等指令,以前画图形都是在纸上一笔笔面出来的,没有想过它的步骤是什么,可是学习了海龟绘图以后,我觉得思考问题我会分步骤,就比如我画一个正方形,调出海龟函数是我的第一步,然后用forward前进指令让海龟进行直线绘制,再用转弯指令等操作,我觉得很好地提高了我的计算思维,让我学会分析事情知道用什么样的步骤去完成,这个应该就是老师常说的‘算法’吧”。

通过学习python海龟绘图的课程,学生学会了使用程序指令创作图案,奠定了今后能积极地利用程序性语言来解决实际问题的基础。更重要的是,学生学会了分步骤思考问题,经历了感知、分解、形成、提升计算思维的过程[6],提高了计算思维能力。学习程序设计是信息技术学科培养计算思维的途径之一[7]。教师要注意总结过往的教学经验,注重创新python 的教学方法,并将其付诸实践,从而促进学生编程能力的提升。

猜你喜欢
海龟绘图指令
听我指令:大催眠术
来自河流的你
“禾下乘凉图”绘图人
海龟
可怕:一块塑料便可“杀死”一只海龟
ARINC661显控指令快速验证方法
LED照明产品欧盟ErP指令要求解读
基于HTML5 Canvas绘图技术应用
海龟
海龟