谭国聚 孟延豹
前言:
在中小学普及编程课程,是教育部“教育信息化2.0行动计划”中的工作要求,对于我国2亿多的中小学生来说,这样的工作目标是非常有挑战性的,这也要求中小学信息技术教师们,在标准、资源、技术都欠缺的状态下必须自觉地去思考如何在自己的工作中践行“行动计划”的要求。北京小学通州分校的信息技术老师们,从社团选修的编程课程的成功案例中寻找灵感,探索出在小学低年龄段,利用Arduino程序设计推广编程课程,这样的探索非常值得大家借鉴,特别是在数字化学习环境下的校本课程的规划、设计与实施。
● 前言
小学信息技术课程中应用软件操作是学生学习的主要内容。在2000年教育部颁布的《中小学信息技术课程指导纲要(试行)》中没有把计算机程序设计列为小学阶段学生必须学习的内容,而是作为选学内容。当代科学技术日新月异,学生在日常生活以及其他学科的学习中,接触到越来越多的应用软件,课堂上很多学生能够比较熟练地完成计算机基本操作,或者通过自己探究能够掌握计算机基本的操作。以计算机基本操作为主的信息技术课程正在逐渐失去作为一门独立课程的意义。可见,小学信息技术课需要发展具有本学科特色的教学内容体系。
Arduino程序设计作为信息技术课程中的一项传统而又充满创新意义的教学内容得到学界的普遍重视。笔者所在学校开设基于Arduino程序设计校本课程,主要是针对一部分具有良好的计算机操作能力,并对计算机编程有浓厚兴趣的学生。那么,能不能把基于Arduino程序设计校本课程,向低年级学生推广,或者把这门校本课程作为小学信息技术课必修内容呢?笔者为此进行了思考,针对将基于Arduino程序设计校本课程作为小学信息技术课必修内容的重要性、必要性和可行性展开了探索。
● 重要性
1.符合世界信息技术教育发展的潮流
(1)百度搜索指数逐步提高
从图1可见,百度搜索指数逐步上漲。到目前为止,达到1215。这个数据说明,关于少儿编程内容的学习,关注的群体越来越多。儿童学习编程的意识逐步深入人心,成为儿童教育的一部分。
(2)IT行业的精英们对编程教育达成共识
扎克伯格6岁开始编程,Bryson Payne教授儿子4岁开始接触编程,乔布斯11岁开始编程,比尔·盖茨13岁开始编程……IT行业的精英们对编程教育有着惊人的共识:抓住少儿的黄金期,向孩子们普及编程教育,这也说明编程教育在少年时期的重要性。
(3)欧美等国家对于编程的认知程度高
美国前总统奥巴马说:“编程应当与ABC字母表和颜色同时得到教学,所有人都应该更早地学习如何编程。”2013年奥巴马开始倡导“编程一小时(The hour of code)”活动,2016年宣布“全民电脑科学教育”计划,政府投入40亿美元,为全美K12阶段的学生提供完整的计算机科学教育;在英国,最新的教育大纲规定编程为5~16岁学生的必修课;在加拿大,许多专家意识到在数字化的今天,编程应该成为一种必备的技能,在中小学里应该与阅读、写作和算术“平起平坐”;新加坡将编程纳入考试科目;日本计划2020年以后,中小学都必须开始编程课程,学生必修此课程;另外十几个欧美国家已经将编程纳入公立学校的日常课程……这些都证明,编程教育在全球范围内得到了重视,将编程学习低龄化,编程不再是成人的专利。在低龄学习编程,成为世界信息技术教育发展的潮流。
2.从小系统学习编程,能让孩子终身受益
计算机程序具有很强的逻辑性。我们目前在手机或者计算机上用的软件,它们或简单或复杂,都是软件工程师编写出来的程序。
所谓编程就是将人们的想法按照一定的编码规则,变成计算机可以识别的代码和语言,让计算机帮助我们实现数学运算、事物处理和信息查询等。编程即通过可见的代码、工具、运行结果,去不断梳理抽象的逻辑思维,再通过动手实践把抽象思维给具象化地表现出来,这就是“编程思维(Computational Thinking)”,是“理解问题—找出路径”的思维过程。它由分解、模式识别、抽象、算法四个步骤组成。通过这四个步骤,一个棘手的复杂问题先被拆解成一系列好解决的小问题;每一个小问题被单独检视、思考,搜索解决方案;然后,聚焦几个重要节点,忽视小细节,形成解决思路;最后,设计步骤,执行,问题解决。
学生完成一个程序就是在完成一个项目,完成这个项目的过程就是不断提高逻辑思维能力的过程,就是不断解决实际问题的过程,也是积极、主动做事能力以及自我认知和自我管理能力的提升过程。
可以想象,在逻辑思维发展的黄金期,让孩子接受编程教育,对他们成长、培养高效的思考模式、做事视角,都有着极大的益处。美国麻省理工学院雷斯尼克(Mitchell Resnick)教授表示:“当你学会了编程,你就会开始思考世界上的所有过程。”
可见,在小学阶段开设编程课程,使之成为小学信息技术课必修内容,教学目的不是要培养程序员,而是让学生更深入地理解计算机的工作原理,掌握程序设计的基本思想,学会科学、严谨、高效且更富创造性地解决生活中实际问题的方法、步骤。
● 必要性
我们为什么选择Arduino?先通过下表比较一下Scratch和Arduino。
1.Scratch程序设计解读
从上表可以看出,图形化编程是Scratch的主要特点,具有很强的直观性,小学生容易理解和操作。在学习程序设计初期,可以作为启发学生思维、激发学生兴趣的工具,这是一个不错的选择。
但编程过程是一个项目完成的过程,这个过程也是学生的思维能力发生变化的过程,更是一名学生综合素养提升的过程。如果总用类似玩具的软件编程,容易给学生造成程序设计这门课程是“玩游戏”的课程的假象,不利于学生深入学习程序设计。
另外,由于Scratch编程没有直接对应硬件设备,写出来的程序只能通过计算机端演示观看。多课时的授课计划,很容易造成学生视觉疲劳,从而使其失去对编程的长久兴趣,也难以形成“科学、严谨、高效且更富创造性地解决生活中实际问题的方法、步骤”的能力。
2.Arduino程序设计解读
硬件是基础,软件是灵魂。Arduino程序设计既有硬件又有自己的编程环境。它是能够用来感应和控制现实物理世界的一套工具。它由一个基于单片机并且开放源码的硬件平台、若干电子元件及基于Arduino开发板的独立的编程环境组成。
从硬件方面说,Arduino可以用来开发交互产品,如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理設备。Arduino项目可以是单独的,也可以在运行时和自己计算机中运行的程序(如Flash、Processing、MaxMSP)进行通信。有了Arduino板,根据自己的创意购买电子元件,进行自由组装,很快就可以做出一些小发明。
从软件方面说,Arduino开发板有自己的编程环境,编程语言是基于C和C++语言,略有简化。简化之后,对于没有编程基础的学生来说,程序设计变得容易理解,而Arduino的程序语言像一个英文文本一样,可以边写程序,边阅读文本,极大地提高了学生对编程的兴趣。
通过以上阐述可以清楚地得出结论,Arduino更专业,更有灵魂。而开设程序设计课程,需要更加系统、专业的编程环境以及硬件的支撑,Arduino符合这样的条件。因此,基于Arduino程序设计成为小学信息技术课必修课内容开发蓝本。
● 可行性
1.硬件准备
笔者所在学校有三个机房,每个机房有50台计算机,给学生开设程序设计课程创造了优越条件,而Arduino的开发板及电子元件物美价廉,在市场上很容易买到。这为开设程序设计课程提供了足够的硬件支持条件。
2.基于Arduino程序设计校本课程的优势
基于Arduino程序设计校本课程经过几年反复修订,在案例选择、硬件设备和程序设计优化方面都积累了丰富的经验。笔者所在学校高年级学生学习这门校本课程之后,启发自己的创意,在程序设计大赛中取得了优异成绩。
(1)既可提高学生动手操作能力,又能培养其积极主动思考的习惯
基于Arduino程序设计校本课程是硬件和软件的综合运用。学生在动手编写程序之前,需要对面包板和Arduino开发板进行动手操作,连接电路。动手连线与搭建积木不一样,它将编程思路融入其中,接线的过程就是梳理编程结构的过程。如果电路连接错误,程序就无法运行。小学生经常参与这样的动手操作活动,不仅能培养他们的耐心、细心和恒心,对提升其积极主动思考的习惯也大有裨益。
(2)完成效率高、成就感强
在学习基于Arduino程序设计校本课程中,学生只要确保电路连接准确,通过几行代码就可以制作出一个小型智能电子作品。这种成就感,能更好地激发他们的学习热情,使其有信心做出更复杂的作品。
(3)易学、易懂
基于Arduino程序设计校本课程的所有课例,由浅入深,由简单到复杂,尽量用最少的文本进行描述,争取让学生一看就明白,如“Hello,world”程序只有几行代码:high就是让小灯亮,low就是让小灯灭,delay就是延时程序(如下页图2)。
(4)搭建了全新的教学模式
基于Arduino程序设计校本课程的课堂教学改变了传统的授课模式。教师在课堂上讲解的同时,还要带着学生一步一步编写程序。另外,每个案例都有录制好的相关视频,特别是程序设计的代码解读,学生在计算机教室里进行编程的过程中,遇到不明白的内容可以反复看视频,直到看会为止。同时,每个案例的程序文本也放到网上,学生可以随时上网查看相关案例的文本,强化自己的学习效果。
(5)案例联系生活,能够启发学生创新思维
基于Arduino程序设计校本课程,选择的案例和生活相关,这样能使学生印象深刻,同时,也能不断启发学生思维,激发创新灵感,学以致用,解决生活中的实际问题。
综上所述,基于Arduino程序设计校本课程成为小学信息技术课必修课内容具有可操作性,但在小学教育阶段如何将程序设计的知识、技能普及,并使之成为独立的、彰显学科特点的课程,还是教育界继续需要探究的一个课题。不过笔者相信,程序设计课程成为小学信息技术课必修课内容是世界信息技术教育发展的必然趋势。因为,谁掌握了程序设计,谁就拿到了一张通向未来的门票。
参考文献:
[1]陈吕洲.Arduino程序设计基础(第2版)[M].北京:北京航空航天大学出版社,2015,3.
[2](美)Brian Evans.Arduino编程从基础到实践[M].杨继志,郭敬,译.北京:电子工业出版社,2015,10.
[3]学习编程真的那么重要吗?[EB/OL].(2017-7-21).https://www.sohu.com/a/158828458_99926812.
后记
信息化的要求越来越高,而信息技术课程的地位反而越来越尴尬,没有了退路,反而更好办了,敢想敢干,就这么简单,特别是对于信息技术教师来说,敢于在数字化学习设计的过程中,除了发挥编程的强项,还敢于面对明显弱势的面包板,这点来说,谭老师还是很让笔者佩服的,剩下的,就是给学生机会,让他们自主地探究练习。我相信,只要敢于去面对,任何一位信息技术教师都可以做得像谭老师一样好。