从程序教学的复兴看信息技术学科的核心育人价值
李卓
在人人编程成为全球化趋势的今天,我们如何理解编程?作为在1979年就开设了编程课程的景山学校,四十年来一直在开设程序设计课程,即使在最困难的时候也没有放弃。现在看来,这种坚持正是一种对学科核心素养的坚持,是热爱学科、热爱事业的热的综合表现。
从2011年开始,程序教学慢慢成为各级各类信息技术公开课、竞赛课的热门选题。落实信息技术学科的核心育人价值,程序教学担当着关键的角色。景山学校拥有全学段的教学体系,这为信息技术教学的连贯性提供了有利条件,下面,笔者结合景山学校的全学段信息技术教育谈谈程序教学在信息技术学科的育人过程中的核心地位。
● 小学、初中、高中程序教学的教学内容
在小学阶段,我们发现Scratch作为一款图形化编程工具,通过按照一定逻辑拼接程序模块搭建程序结构,通过设置项参数完成游戏、动画效果,让学生玩中学、学中玩,使其乐在其中、兴趣无穷。最重要的是通过这样的程序设计课程的学习,学生对编程世界充满了学习欲望,产生了各种新奇的想法,制作了很多有创意、有想法的好作品,为中学的程序设计学习创造了非常好的学习条件,同时为思维发展打下了非常好的基础。
初中阶段我们选择了VB程序设计语言作为学习平台,VB拥有可视化窗口,学生可以轻松完成一些具有Windows视窗的程序,极大地增强了学生的学习兴趣。同时,VB是通过编写程序代码来实现程序功能的,程序语法简单,适合作为初中学生代码学习的入门级语言,成功率高,使学生能够比较容易完成程序编写任务,获得成就感。学生在VB程序设计学习中体验到从功能设计、界面制作到代码编写、调试运行等工程设计实施的完整过程,提高了分析问题、解决问题的能力。
高中阶段我们根据教育部制定的课标要求,根据北京市东城区统一选择的教材安排学习Python语言程序设计,除了国家、北京市、东城区的统一要求内容外,北京景山学校根据学生能力情况为学生补充了Python游戏编程、开源硬件构建信息系统的课程,与程序设计课相呼应。
● 程序教学的典型案例
下面用三个典型的课例来简要谈一谈如何通过程序教学的案例设计来落实信息技术学科的核心育人价值。
1.小学Scratch教学典型案例:弹球游戏
小学流程图拼接程序设计课,训练学生逻辑思维、计算思维,培养学生爱思考、勤动手的习惯。例如,我们设计的《制作弹球游戏》一课(如下页图1),很多人都玩过弹球游戏,那是一款手眼协调训练的小游戏。学生拿到这个任务时兴趣非常高,跃跃欲试想要自己亲自设计并制作完成一个属于自己的弹球游戏。任务布置之后需要分析并设计制作游戏:第一项——界面设计,学生绘制舞台背景,铺好地面,当球落到地面时可以判断游戏失败;第二项——绘制游戏角色(圆球和挡板)之后,还需要设计游戏的基本功能。
功能一:鼠标移动挡板。
挡板需要时刻移到鼠标的水平位置,而挡板的竖直位置始终不变。这需要学生掌握平面位置的相关知识,也就是对象的横坐标x与纵坐标y,并且挡板需要不断追随鼠标的横坐标,这需要用到循环(如图2)。
功能二:圆球的反弹与落地。
当圆球碰到挡板时需要反弹出去,也就是圆球的运动方向需要改变,圆球以一个角度冲向挡板,碰到挡板后圆球需要以180度减去上次的角度的方向继续运动。当圆球碰到地面则终止游戏,宣告失败。在问题的分析与解决中学生体会了分支结构也就是选择结构的流程,当然,在整个过程中游戏需要往复循环地进行判断,程序模块拼接如图3所示。
基本功能完成后,我们鼓励学生思考,为自己的弹球游戏添加创意功能,有些学生绘制了漂亮的游戏场景,有些学生添加了砖块增加游戏难度,有些学生添加圆球的数目……
2.初中VB教学典型案例:幸运抽奖
初中学生要制作一些具有一定功能和一定应用价值的小程序,考虑到很多教师上课时会使用点名器随机点名回答问题,联欢会、班会会使用随机抽奖、参加活动,于是我们带着学生设计并制作了幸运抽奖小程序(如图4)。
学生需要掌握在VB中生成随机数的方法,RND可以生成[0,1)区间的一个随机数,为了能够生成一个随机学号,也就是一个随机整数,需要对RND进行处理,使用截尾取整函数Fix(RND*b+a)获得一个[a,b]区间的任意整数。在分析程序功能、学习准备知识之后就开始编写程序了。
(1)界面设计。
窗体上需添加一个图相框用于显示照片,一个标签用于显示学号,一个命令按钮用于操控程序。
(2)代码编写。
本程序需要在命令按钮的鼠标单击事件中编写代码(如下页图5),实现产生随机数并显示响应学号数字和照片的功能。
完成基本功能之后鼓励学生完善程序,添加创意功能,有些学生利用前面学习过的计时器控件每隔一段时间重复做某事的功能,增加了滚动显示全班学生照片的效果。
3.高中Python教学典型案例:五子棋
北京景山学校高中学生的学习能力在全区处于中等偏上水平,在完成国家要求的必修内容以外,我们设计了补充课程。例如,在Python程序设计的部分我设计增加了用Python编写鼠标、键盘控制小游戏的内容,本节课通过学习创建画布窗口、绘制线条、填充颜色、识别鼠标点击事件,从而制作五子棋程序,具体步骤如下:
①创建窗口。②绘制圆形。要想能够在棋盘上下棋,需要掌握绘制圆形的方法。③鼠标识别。当鼠标单击时,在鼠标位置绘制圆形,程序需要能够识别鼠标单击事件。④轮流下黑、白棋。⑤绘制棋盘。棋盘绘制的方法比较简单,只需有规律地绘制水平和竖直方向的线即可。
本节课程序代码如图6所示。
通过本案例的学习,学生能够在Python中绘制线条、圆形等基本图形,能够识别鼠标事件,学生兴致勃勃地在自己绘制的棋盘上下棋。最后我启发学生编写人与电脑下棋的程序,这需要给电脑写出下棋策略,给予计算机一定的智能,为学生课后拓展提供了思路和方向。
信息技术学科的核心育人价值在于通过培养创新能力来让下一代人创造未来的世界,课程与教材改革是教学改革工作的重要内容,为了能够培养适应未来社会的人才,教研组在完成好国家要求的基本课程之外,从小学、初中、高中一體化培养人才的角度,结合创客教育的思想精髓,建设了一系列景山学校校本程序教学创新课程。