吴雪花
摘 要:“人工智能”“虚拟现实”“互联网+”等高新技术无一不表明编程是时代的需求,人们越来越懂得编程能力的重要性。就初中阶段而言,信息技术学科的核心素养是学生适应终身发展的关键能力,信息技术学科核心素养包括“信息意識”“计算思维”“数字化学习”“信息责任”,说到“计算思维”也必提编程。以苏科版信息技术八年级第四章“程序设计”为例,探索初中信息技术课堂中编程能力素养的培养方法。
关键词:编程能力素养;信息技术;培养方法
初中阶段程序设计要适应基础教育对学生核心素养培养的要求,突破旧规。根据江苏省初中信息技术教材的编写,Visual Basic(以下简称VB)语言作为初中阶段的入门语言。VB是微软公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。作为入门语言,VB简单、直观、易学、易用。本文意在探究初中如何开展编程教学,探索提高学生编程能力素养的一些方法。
一、编程兴趣的建立
爱因斯坦曾经说过“兴趣是最好的老师”,这同样适用于程序设计。然而刚升入初中的孩子,大部分对编程兴趣不大,或者说还没开始接触就有一种恐惧心理,认为编程枯燥、乏味、难度大。因此,教学的首要任务就是激发学生对编程的兴趣,一旦他们对编程有了兴趣,就会自主地去探索、研究。
1.解决“编程恐惧症”
在程序设计教学中,我发现学生对一些编程的原理难以理解。为了让学生直观理解,我借助于他们日常的课程来迁移。比如,在引入“循环”这个概念时,我想到了生物课上细胞的分裂过程,一个细胞分裂一次后变成两个细胞,这样被重复执行的过程,被称为循环。
参考代码:
Private Sub Form_Load()
a = 1 //原始细胞有1个
For i = 1 To 4 Step 1
a = a * 2
Next i
Print a //经过4次分裂后,a的值变成16个
End Sub
2.创设丰富的教学情境
初中生刚接触程序编写,在教学过程中要时刻关注学生对该课程的基本体验,所以创设丰富的教学情境有利于激发学生的学习兴趣。
比如,在第一课讲授“计算机程序并不神秘”时,为了导入程序的概念,我就利用了“狼、羊、白菜过河”游戏。
情境:猎人带着一只狼、一只羊和一些白菜过河,但渡船太小,一次只能带一样。因为狼要吃羊,羊会吃白菜,所以狼和羊、羊和白菜不能在无人监视的情况下相处,此时,你能帮助猎人过河吗?
利用Flash动画,让学生自己动手闯关,总结出具体指令。这样,就可以顺理成章地引出程序的概念,通过执行一些有序的指令完成一项具体工作,这些指令的集合就是程序。通过小游戏,能够迅速调动学生的学习兴趣。
二、准备学案
针对课堂需要,教师适时准备一些学案非常有必要。特别是学习编程初期,要求学案中有明确的任务要求,每个任务之间要分层明确,起到进阶作用。当然,学案的形式可以多种多样,最常见的就是文本类型的,把整堂课的内容、过程展示给学生看,但是未免有些枯燥。初中学生可以直接利用平台,如Moodle平台等,每节课的内容都能保留在平台里,方便后续的学习和查阅。
三、准备微课以供参考
信息技术课上,一位教师要面对整班四五十位学生,每位学生的接受程度又不同,为了让所有学生都能不断提高编程能力,教师授课的进度、广度、深度只能综合考虑大部分学生的能力。45分钟的教学在适当的点拨之后,就需要尝试让学生进行自我探究,这就导致部分基础薄弱的学生在没完全掌握知识点的情况下被“逼迫”自我进行研究,因此微课的准备就变得至关重要。微课需要教师做到精而简,学生可以针对自己的需要来选择观看某节微课,且该微课知识点是在学生探究过程中能起到支撑他们完成任务作用的,切忌把微课做成视频灌输的形式。
在微课的准备中,必须关注培养学生的自主学习意识。微课视频虽短,但可以通过布置问题的方式引导学生主动学习。例如,在编程求两数最大公约数时,我先阐明了求取方法“辗转相除法”。然后给出习题,让学生实践学习。设给定两个正整数a=112和b=64,求最大公约数,并在微课中设置只有答对才能进行一下步学习;如果答错,还可以回到前面的知识讲解,重新学习后进行练习。
通过练习,帮助学生理解算法,也可以更好地为编程做准备。
四、基础任务和拓展任务相结合
VB编程,既要求学生学会理论知识,又要求学生利用知识解决实际操作,因此,“任务驱动”教学法被应用起来。以基础任务为主线,贯穿整节课,再以拓展任务来延伸知识点的运用。
比如,在教授对象的三要素之一——方法时,讲到Circle(画圆)、Line(画线)方法时,首先给出学生的任务一,画出一个圆和一条线。学生根据教师的讲解,很快可以完成该任务。
参考代码:
Private Sub Form_Load()
Circle(2000, 2000),1000 //画一个圆心(2000,2000),半径1000的圆
End Sub
Private Sub Form_Load()
Line(2000,2000)-(3000,2000) //两点之间画一条直线
End Sub
在此基础上,我又给出了任务二,让每个学生都能发挥自己的想象力,利用上述两个知识点,给出他们的创意。例如,有学生编写代码绘制出一辆车。
代码:
Private Sub Form_Load()
Form1.Circle(2000,3000),500
Form1.Circle(4000,3000),500
Form1.Line(1000,2500)-(5000,2500)
Form1.Line(1000,1000)-(5000,1000)
Form1.Line(1000,1000)-(1000,2500)
Form1.Line(5000,1000)-(5000,2500)
End Sub
运行结果:
在整个任务驱动过程中,学生不仅对新接触的知识点三要素有了练习,还对前面学的坐标有了巩固。“任务驱动”教学法让学生带着真实的任务在不断探索中学习,并且一个个任务的攻克会让学生获得前所未有的成就感,进一步刺激他们的求知欲,给足他们学习VB编程的动力。
现代高科技生活中的“人工智能”“虚拟现实”“互联网+”等高新技术都离不开编程。在欧美国家,更是将计算机编程能力与阅读、算术、写作能力一并作为四大基本能力来考核,可以说编程是当今社会的需求,在初中阶段开始培养学生编程能力素养非常必要。然而,这是一个需要慢慢探索的过程,不是一朝一夕能解决的,提高学生的编程能力素养,我们任重而道远。