APP下载

编程全民化,福兮祸兮?

2019-01-28林晖等

中国信息技术教育 2019年2期
关键词:编程程序教师

林晖等

编程真是社会“团宠”,适合所有学生吗?美国麻省理工学院的教授米切尔·雷斯尼克(Mitchel Resnick)这样说:“当你学会编程,你会开始思考世界上的一切过程。”我曾教过高中、初中、小学学生学习编程,在长期的教学过程中,我发现好的编程学习因人而异,也有着相当大的年龄差距。

对于小学生来说,内容主要侧重于不同年龄层次的体验。8岁以上的孩子学习编程具有明显的具象性,他们要通过形象的模块进行编程,完成互动故事。当模块“咬合”到一起后,人物可以移动、跳跃、舞蹈、唱歌等,简洁的过程渗透入最初的程序概念。对于初中生而言,让学生在写代码中学习思考世界。在具备了一定的数理知识后,初中生已经具备一定的逻辑思维能力,此时应该注重代码和算法的学习,而不仅仅是去体验实物的运动过程。对于高中生而言,我会更侧重于让其了解程序的源代码,通过对计算机的核心过程进行解析,使其了解计算机,如何去精准地编写适宜的生活化的程序。

纵观时下的宣传,有机构鼓吹幼儿园不学编程,孩子就输在了起跑线上;有人认为编程的益处可以无敌化,甚至代替数学、科学等学科;有的机构混淆编程、机器人、人工智能的概念,让家长无所适从。而笔者据自己的教学经验认为,远非如此。

编程低龄化是否可行?编程吸引人之处在于,它需要具有分析能力、解决问题的能力和创造力,这些是基本的能力要求,所以学习者必须具备一定的基础知识,而过于低龄化的编程学习,混淆了程序和一般结构语言的概念,误导了部分学生。所以,低龄化的编程教学需要三思而后行。按个按键,小车就跑两步的操作,绝不是真正意义上的编程。

编程全民化是否能行?编程教学是需要基础门槛的,也并非所有的学生都可以成为程序员,或在编程竞赛中获奖。部分逻辑思维能力超强的学生,可以依据自身的能力进行有目的的深入学习,而那些相对不擅长此类思维的学生,可以选择适宜难度的语言进行学习。如果非要让文科生去找程序的Bug,无异于画虎不成反类犬。

编程综合化是否该推行?编程是训练孩子解决问题的方式之一,但绝非全部。条条大路通罗马,解决问题的策略是多层次、多角度的,不能给学生灌输编程唯一论,从而神化了编程的初衷。编程无法承载我们对人工智能新世界的所有希望。无论是创客教育、STEM教育,还是编程教育,都与语文、数学、外语等学科的学习是一样的。说到创造力和逻辑思维的培养,写作文、绘画、谱曲、解数学题一样能培养创造力和逻辑思维能力,并不单单只有编程能实现。所以,应该给编程学习降降温,只有有了一定的各学科知识后,才能学好编程。

目前比较流行的编程语言有Scratch、Python、VB、C++、Java等,笔者依据多年的编程教学经验,提出一些适宜的编程语言供大家参考:

Scratch是一款适合8~14周岁的孩子的编程工具。它无需使用键盘,用鼠标拖动指令模块到脚本区就能编程。程序模块化,命令和参数通过积木形状的模块来实现。Scratch让编程和说母语一样简单,它是目前最佳编程入门语言。

10岁以上的孩子,如具备较好的数学基础,可以尝试学习Python。它的语言简洁易懂,适合初学者使用。目前用Python的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。

对于12岁上的学生来说,Visual Basic是常见的语言。VB可以轻易地使用DAO、RDO、ADO连接数据库,轻松地创建Active X控件,用于高效生成类型安全和面向对象的应用程序。

对于擅长逻辑思维的学生而言,C++是良好的选择。它是C语言的继承,是许多程序员必备的编程工具,也是NOIP、IOI竞赛使用的语言。C++是信息学奥赛的竞赛语言,对升学有一定的益处。

对于编程发烧友来说,Java是一门面向对象编程语言,它具有C++语言的优点,同时摒弃了C++里难以理解的多继承、指针等概念,是程序员比较喜爱的编程语言。

作为一名信息技术学科的程序教学教师,我一方面感慨于时下的编程教学受到前所未有的重视,另一方面也為规范程序教学而步步小心。希望我们钟爱的程序教学,能够以适宜的方式,造福莘莘学子。

七嘴八舌热议进行时:

鱼和熊掌可否兼得?

王双双

博主的担心不无道理,如今编程风再次升温,程序设计竞赛、机器人竞赛等在功利的驱使下受到家长、孩子们的追捧,而且呈现低龄化趋势,这对信息技术教师来说当然是一件利好的事情,但我们在兴奋的同时,也要冷静下来认真思考,编程教学应该以怎样的方式开展,才是最适合学生的?正如博主所说,让程序教学能够以适宜的方式造福学生。

作为一名从事信息技术教学二十多年的信息技术教师,我经历了编程教学的种种变化的过程,VB、Pascal、C语言,都进入过信息技术教材,这些程序语言对大多数学生来说入门就很困难,仅仅是语法,就会让很多学生绊倒在编程的门槛上,随着难度的加深,大多数学生渐渐对编程失去兴趣。

经过实践,我认为编程教学可以分为两个层面:一是精英化,针对数学基础好、擅长逻辑思维的学生,对编程有浓厚兴趣的学生,可以成立兴趣小组或社团对这些学生开展编程教学,走所谓的“精英路线”,组织他们参加信息学竞赛;二是普适化,针对全体学生进行普适性编程教学,以点辐面,以兴趣代替专业。

精英化,比如现在初中教材常采用的Python语言。Python写出来的程序看上去简单易懂,学生入门容易,而且对于部分编程“精英”来说,将来深入学下去,编写更加复杂的程序也不在话下。尤其是Python编写程序语法简洁,没有很多条条框框的限制,初学的学生不用在语法上花费大量的精力,这对没有任何编程基础的学生来说,可谓一大福音。

普适化,比如“编程猫”。“编程猫”起点低,界面简单,在编程教学中,我借助编程猫平台上的“海龟编辑器”进行程序设计教学,海龟编辑器可以让学生在代码编程模式与积木编程模式之间自由切换,在教学时教师能照顾到不同层面的学生,对理解能力强的学生,直接使用代码,对学有困难的学生,可以借助积木让其学习代码。

鱼和熊掌可否兼得,需要在实践中摸索探寻。编程教学要能够同时照顾到普适性教学和精英教学这两个层面,这应该是学校、家长、学生共同希望的。

教亦有道 无间之道

韦国

博主关注的编程热,是时下的社会现象,值得一线信息技术教师反思。作为一名小学教师,我认为全民编程,有违教育规律。在我身边有一股“信奥热”,为走捷径进入名校,大批家长不管自己孩子的基础和兴趣爱好,花费大量时间和精力要求孩子超前学习编程,盲目跟进的结果是不容乐观的。尤其是低龄编程,如同拔苗助长。在我从事小学编程教学的前十年,从三年级起选拔编程学生,要求数学基础良好。教学语言跟随比赛指挥棒进行,从Basic、Pascal走到C++,目标就是让学生参加信息学竞赛,走的是精英路线。

在中国文化背景下成长起来的学生,由于英文等知识储备不足、抽象思维能力缺乏等问题,通过几周或者几个月的学习,相当一部分会兴趣索然,丧失学习信心,因而也就不可能取得编程学习的成功,因此,能获得优异成绩的只是极少数学生。小学生年龄尚小,身心发展还不成熟,高级程序编程所必需的知识还不具备,自我控制能力也差,我们虽然从中培养了一些精英,但却挫伤了更多学生的学习积极性,他们从此不再愿意接触编程,所以这样做得不偿失,无异于拔苗助长。由此可见,编程教学不是学习者年龄越小越好。

适度编程,应遵循学生特点。近几年图形化编程软件的兴起,对于小学生学习编程来说确实是一件幸事,他们无需背记繁琐的命令。学生设计好流程、选定背景、添加角色,再把需要的语句块拖到脚本区,设定参数,整个程序就可以运行,直观检查运行的结果与设想是否一致。即使有了图形化编程工具,也不是越早学编程越好。学生需要有相关的知识储备,有一定的思维能力,才可能完成编程。编程重在厘清问题内容,再求解。现在有些机构针对幼儿开设的所谓的编程课,其实从来没有完整的程序结构,而是像玩游戏一样操作,这不是真正意义上的编程学习。

图形化编程教学可以与开源硬件结合,让学生得到更为直观的体验。江苏省中小学信息技术教材已经把开源机器人和物联网的内容编入其中。在教学中,学生设计方案,结合工程学知识进行外观和机械搭建、选用模块、编写程序,调试修改。学习过程充满了挑战,学生也感受了智能技術,提升了学习力。

所以,编程教学应因人而异,切莫穿越认知层、思维层,只有这样才能使其为学生的终身发展服务。

编程攻略如“意”传

秦晶

博主的文章具有很强的现实感,作为一名基层的中小学信息技术教研员,我对“编程热”的感受是喜忧参半的:喜的是中小学普遍开启了编程教学模式;忧的是“攻略”不足难以如“意”。

在深入学校指导教师上课时发现,有些教师注重编程教学,自认紧跟时代的步伐,但听课效果确实不尽如人意。究其原因是教师对编程教学的理解有偏差。在视导中,听到的声音往往是学生如何难教、教材如何落后、生源如何不济……作为教研员,我更希望教师能从学生难教的埋怨中解脱出来,成为内容的开发者和设计者,根据学情,自编适合教学的内容。

例如,一位教师给小学低年级学生上编程课,起初按部就班,教学生“通关”,虽然学生们非常感兴趣,可教学缺少学生认知迁移建构的过程。改进后的教学设计中,从语文课上的《江南》古诗导入,通过模仿小鱼游动,体会古诗中的“东西南北”四个方向,随即自然过渡到编程软件中的四个方向模块,再与学生一起分析第一关的步骤分解,从动作分解到对应模块,再到上机调试运行,学生们从中体会到了最初的算法和计算思维的养成,后面的几个关卡自然也就迎刃而解了。如此攻略尽如人意。

再如,八年级的一节信息技术课上,教师以“元旦装扮我设计”为活动主题,教学生学会利用编程来实现LED灯的各种闪烁效果。经过大家的指导,教师改为采取小组合作的形式,让学生们先商量好最终需要小灯或灯带达成的造型和效果,再逆推出程序流程图以及程序指令,这样学生的思路就非常清晰,做出来的效果也是异彩纷呈。

因此,编程全民化显然是不妥的,教师务必要因“人”制“疑”,学生的基础怎么样?学生对什么感兴趣?学生需要从编程学到什么?而对于不同年级、不同班级甚至每一位学生来说,教师应该做到心中有数,要有通盘的考虑和整体的课程架构,并在具体实施过程中不断迭代优化,以达到最务实最有效的教学目标。

总而言之,“与其坐而论道,不如起而行之”,如意之攻略,不在于需不需要教“编程”,而在于如何制订“攻略”,让编程更加如“意”,方能成就彼此。

猜你喜欢

编程程序教师
玩游戏学编程,Blockly Games上手玩
给Windows添加程序快速切换栏
纺织机上诞生的编程
未来教师的当下使命
简化化学平衡移动教学程序探索
编程屋完成数百元万天使轮融资
学编程,先画画
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
秋天在哪里