APP下载

小学生图形化编程与C++衔接的教学实践路径探微

2021-05-30朱海涛

中国信息技术教育 2021年26期
关键词:信息学实践路径

朱海涛

摘要:当前,教育信息化正在全面推广,在小学生中普及编程教育已经是大势所趋。对一线信息技术教师来说,如何在小学生喜闻乐见的图形化编程与晦涩难懂的C++之间架起一座桥梁,引导学生从图形化编程顺利过渡到代码编程,进入更加广阔的信息技术世界,是急需解决的现实问题。为此,本文针对4~6年级学生的编程教学实践展开局部探究,希望能够探索出一条可行的编程教学实践路径。

关键词:图形化编程;C++;信息学;实践路径

中图分类号:G434  文献标识码:A  论文编号:1674-2117(2021)S2-0048-03

近几年,随着机器人、人工智能等课程的兴起,小学生编程教育已是大势所趋。

由于受知识水平的限制,小学生所接触的编程软件主要以图形化编程为主。对小学信息技术教师来说,如何在教学实践中架起一座稳固、便捷的桥梁,引导学生从图形化编程顺利过渡到代码编程,进入更广阔的信息技术世界,是急需解决的现实问题。

搭建桥梁,借助趣味绘图激发学生兴趣

借助有趣的图形绘制来引领学生进入神奇的编程世界,使其在不知不觉中掌握编程知识和技能,可以从内心深处激发学生的兴趣,让学生自觉生发出编程学习的“生长力”,让教学产生事半功倍的效应。

青岛版小学信息技术教材引入了国产图形化编程软件Mind+,本节内容是综合运用Mind+知识绘制蜘蛛网,该内容是在学生掌握了较为复杂的图形绘制的基础上进行的综合运用,与学生以往学习的绘制正多边形及有规律的旋转复制正多边形有很大不同,难度系数大大增加。

针对小学生的心理特点和知识水平,教师可以创设情境化的教学流程来引导学生循序渐进地学习、实践。利用项目式学习将任务分解,加以引导,适时引入编程思维。

在具体教学实践中,教师首先以学生喜闻乐见的小说“夏洛特的网”创设情境,提出绘制蜘蛛网的任务,并告诉学生,一般绘制蜘蛛网只需要绘制多个同心的正六边形(也可以是正八边形)加上棱线即可。

学生在任务的驱动下,通过上网查找资料,请教数学老师,分组研讨来解决问题。在此过程中涉及到对圆内接正多边形边长与半径关系的分析,以及角度换算、方向控制等数学知识,极大地拓展了学生思维,使学生初步体验到了项目式学习的乐趣,激发了编程学习的内驱力。在学生全面掌握的基础上,教师可以进一步抛出问题:怎么把积木“翻译”成代码?图1所示是Mind+积木式脚本和goC部分代码对比。

学生带着极具挑战性的问题利用goC(一款基于C++的绘图软件,类似于Python的turtle,与C++有着天然紧密的联系)解决问题,在这种富有趣味的转换中,学生自然而然地实现了从积木式脚本到代码的过渡,得到了算法的启蒙和编程思维的集中训练。

抓住本质,借助数学迷题渗透算法思想

大家都知道,编程与数学是密不可分的。如果学生对数学不感兴趣,就很难体验到编程的乐趣,而且大部分算法需要数学来证明可行性,所以学习编程必须要有良好的数学基础,而解决数学题也是编程学习重要的一环。

在学生的学习中,处在第一位的不是记住别人的思想,而是学会思考,学以致用。C++代码讲究逻辑、算法和规则,可读性强,学会C++可以为学生以后学习Python等其他编程语言奠定坚实的基础。所以当学生具备了较高的图形化编程水平与初步的代码编程基础之后,教师就可以借助一些经典的数学题如“鸡兔同笼”“数字黑洞”“逆序输出一个四位整数”“斐波那契数列”“冰雹猜想”等来加深算法的概念,推动学生的代码编程能力和编程思维深入拓展。

小学生在解决问题的同时,掌握最基本的算法,体验到了编程的乐趣,从而对编程产生浓厚的兴趣,为C++的学习做良好的铺垫。

以冰雹猜想为例如下頁图2,这个有许多“绰号”的数学游戏具有无穷的魅力,几十年来一直吸引着全世界的数学爱好者,人们用各种方法和途径去探究它的规律。

对任意一个自然数n,通过下公式的辗转变换,都无法逃出落入4-2-1循环的宿命。

根据这个规则,我们既可以采用循环,又可以运用“递归”思想,在图形化编程软件中利用自定义模块可以很方便地搭建“递归”脚本。由程序的运行结果可以看出,输入自然数27后,经过112步,最终得到了1,这也是数字掉入“黑洞”的过程。

我们还可以利用x坐标和y坐标的变化,使结果可视化,增加趣味性和直观性。看到自己亲手制作的程序如此有趣,简单的脚本就能解决流传了几十年的数学游戏,学生自然全身心地体会到了编程之美。

而且图3中的脚本与C++代码已经相差无几了,我们只要引导学生稍加改造,就可以转换为C++代码。这样一来,学生对抽象难懂的递归就有了初步的理解,为代码编程的深入学习打下坚实的基础。

求同存异,借助“伪代码”厘清基本结构

伪代码是介于自然语言与编程语言之间的一种算法描述语言,是用类似自然语言的文字和符号来描述算法。使用伪代码的目的是使被描述的算法可以容易地以任何一种编程语言(Python、C++等)实现。因此,伪代码必须结构清晰、代码简单、可读性好。

在伪代码中,赋值语句用“←”表示,“x←y”表示将y的值赋给x。伪代码与图形化编程软件积木式的脚本语言高度相似,与C++代码也有很大的相似性,所以把伪代码作为图形化编程与C++代码编程之间的桥梁,是十分恰当的,学生也是非常容易接受的。

教师在授课时,先让学生用自己的话来说一说编程的思路,然后引导学生用“伪代码”来描述程序。通过写脚本、说思路、写伪代码的路径,让学生写出C++代码,借此让学生体验到代码编程的简洁高效,充分理解算法及编程思想,使知识得到进一步理解、发展和深化,为进一步脱离脚本和伪代码的“双拐”而独立行走打下基础。

寻找抓手,借助“流程图”规范编程路径

算法流程图是专门来表示算法的图。其特定的图形符号加上文字说明非常直观形象,易于学生理解。

对于初学者来说,看完题目马上写代码的习惯是非常不好的。随着编程学习的深入,算法也越来越难以理解,直接写代码很容易掉进一个个“陷阱”。最好的方法是在编写程序之前画一个流程图来理清思路,也能够发现更好的算法。

算法流程图不仅用来指导编写程序,还可以用来在调试程序中检查程序的正确性。如果框图是正确的而结果不对,按照框图逐步检查程序很容易发现错误。

所以说,除了扎实的语法知识外,流程图的绘制也是每个初学者的基本功。画程序流程图不仅可以训练学生的编程思维,还有助于培养学生良好的思维习惯,形成规范的编程思想。

图形化编程软件的脚本与流程图存在非常大的相似性,参照图形化编程软件的脚本可以很快画出流程图,借助流程图又可以较容易地写出伪代码,从而进一步写出代码。通过这一系列的交互,可以帮助学生更好地理解算法的思路和结构。

我们可以借助一些专门的流程图绘制软件,来引导学生边学习代码和算法边绘制流程图,也可以以图形化编程软件的积木式脚本为参考,互相印证。

参考文献:

[1]郭小拓.伪代码在课程讲授与上机操作中的作用[D].浙江:浙江工业大学,2009.

[2]秦毅,李法平.高职院校数据结构课堂教学探讨[J].北京电力高等专科学校学报:自然科学版,2010,6:155-155.

[3]陈芳.伪代码在课程讲授与上机操作中的作用[J].教育教学论坛,2018(26):268-269.

[4]高霞,马美红.通信与计算机领域伪代码一致性审查研究[J].数字通信,2012(05):43-46.

[5]李东.基于J2EE的客户关系管理信息系统的设计和实现[D].上海:华东师范大学,2010.

猜你喜欢

信息学实践路径
鸡NRF1基因启动子区生物信息学分析
初论博物馆信息学的形成
人A1AT蛋白的生物信息学分析
少数民族文化遗产品牌化开发路径研究
以“大扶贫”理念开辟精准扶贫新路径
新型混合式生物信息学教学模式研究
党的作风建设科学化的实践路径和保障机制研究
浅析高校党建践行社会主义核心价值观的实践路径
miRNA-148a在膀胱癌组织中的表达及生物信息学分析
2014年信息学与计算国际会议