毛华均
创意编程是用编程实现自己创意的过程。在2017年的信息技术新课程标准中,计算思维是信息技术的核心素养。计算思维是指利用計算机科学领域的思想方法,在形成问题解决方案的过程中产生的一系列思维活动。在创意编程中,需要把问题转化为适合计算机表达和处理的形式,并选择适合计算机处理的方法,利用计算作为工具实现自己的创意。创意编程的目标是编程实现自己的创意,其核心也是计算思维。同时创意编程更看重可视化和趣味性,让编程更有趣,学生更有成就感。
turtle简介
Python语言自带的turtle绘图包,情景来源是小海龟在海滩上爬行,尾巴在沙滩上拖出线条。利用turtle画图具有logo语言的特征,很适合创意编程。这是因为它有以下特点。
首先是实现简单。只需要少量函数就可以完整实现平面上绘图的功能,学习的门槛低。
其次是环境依赖小。只要安装了Python语言,就自带了turtle库,而且不用设置,默认就可以用。这样学生就不会在环境搭建等方面耗费精力,把注意力都放在创意编程上。
第三是学生的发挥空间大。turtle库只提供了少量的基本绘图函数,一些高级的功能和函数则没有涉及。这在思维和创意上给学生发挥的空间,有利于他们创造性地解决问题。虽然turtle基本功能简单,但和Python语言结合紧密。二者结合表达能力很强,可以实现很好的效果。
第四是可视化好、趣味性好。turtle在屏幕上面运动,虽然可以通过指定坐标绘图,但也可以直观地用左转、右转、前进、后退完成。另外,turtle本身就可以表现出绘画的过程,从而在某种程序上实现动画效果。
turtle创意编程教学模式
基于实现信息技术核心素养的课程,需要把课程重点放在创作作品、实践创意编程上。创意编程实践是重点,知识细节讲解不应成为课堂重点。
用turtle创意编程的课程基本模式为:
·以创作难度递进的项目为教学主线,整体设计课程
·根据教学目标,设计贴近学生的教学情境
·根据教学内容特点,选择恰当的教学方法
·提供有针对性的学习资源和样例
·给出有针对性的技术支持
·布置难易适中的创意实践内容
·学生展示作品
教师的主要工作是根据教学内容创设情景,有针对性地设计课堂引入,精讲典型案例,提供教学资源,解答学生疑问,组织作品展示等。表1中的教学案例更多是课堂组织和教学过程的示例。
turtle创意编程学生作品展示
北大附中的Python教学中,有一部分内容涉及turtle绘图和刨意编程实践。从实际情况看,创意编程能调动学生的学习热情,学生们的作品很有创意。大家编写了各种创意程序作品,有静态的、动态的。静态创意图形由点和线构成,如果设置好颜色和笔画粗细,也可以有很好的效果。
创意编程作品1:卡通小人
创意编程作品常常来源于学生生活中喜欢的事物,如饰品。这个绘制卡通的程序只用了简单的圆和线,但大小比例和形态都是学生喜欢的样子。程序只用到了顺序结构和循环,但作品透出浓浓的学生风,很有创意。
创意编程作品2:机器人园丁
机器人也是学生喜欢的主题,如下面的正在给草地上的花精心浇水的盒子机器人。这个程序的童趣很浓,一是作品本身的内容和风格,二是代码很有初学者特点,如:在画机器人的头啊时,用的都是顺序结构,一点一点通过绝对坐标值确定位置,导致程序代码有200多行。作为一个初学者,为了画出浇水的效果,试了很多方法,最后模索出了用描点画函数曲线的方法。
创意编程作品3:坦克
军事元素也是学生喜欢的主题。虽然只会画简单的几何图形,但也能静下心来一点一点调试,画出了下面的坦克作品。虽然作品的编程风格很初级,基本只使用顺序结构,但学生小心地不厌其烦地调整各个画图语句的数值,拼出坦克酌效果,从中可以看到学生的兴趣、专注和精益求精的精神。
创意编程作品4:超级马里奥
这个学生明显是《超级马里奥》的玩家,蘑菇、马里奥都是由一个一个像素点构成,但还原度很高。编写这个程序,学生需要投入大量的热情,因为这个程序有700多行。程序中用到了很多自定义函数,所以主程序很短,结构清晰,代码中用到了太多的坐标数值,有些影响可读性。但代码的注释较多,又改善了代码的可读性。
创意编程作品5:乌龟画图板
这是一个绘图应用程序。绘图方式很有特点,先利用键盘上的方向键移动乌龟标志。再按P键,用前景色绘制1个边长25×25的正方形色块。如果按e键则会用白色绘制1个边长25×25的白色正方形色块(擦除)。按y/h、u/j、i/k分别增加和减少前景色的红色分量、绿色分量、蓝色分量,用RGB函数合成颜色合为前景色,并把前景色效果显示在绘图板的右下方。
如果学生学会用递归解决问题,则他们还可以利用递归创作一些有趣的作品。这种作品明显地具有自相似的特点。
创意编程作品6:小虫子
这个同学画的小虫子主要由若干个不同大小和位置的圆构成。
创意编程作品7:树
递归加上创意,可以画出各种风格和形态的树。
下面这棵爱心树引入了随机,每次运行的爱心分布是不一样的。
表1
教学课题
PytHon中的自定义函数
函数是程序语言教学中的一个难点。除了语法规范外,更难的是学会把大问题分解为小问题的解决问题的思路。学生前面已经学习过程序的3种控制结构和常见绘图语句。本课引入函数的定义和使用。借助PytHon的turtle绘图库,可以让学生在有趣的创意编程实践中学习函数的定义和使用,经历利用函数解决问题的过程。这是函数的第1节课,所以变量的定义域等其他细节可以在下节课讲或学生遇到时告诉他。
教学目标
(1)了解函数的定义和调用。
(2)在创意编程实践中,体会函数的定义和调用方法。
(3)通过创意编程实践,了解利用自定义函数解决问题的一般过程和方法。
(4)通过创意编程实践,增强利用函数优势分解和解决问题的意识。
教学准备
准备Python自定义函数的相关资料,重新组织成学生容易看懂、重点突出的学习材料。放在学生容易获取的地方。
教学引入的案例(学生前几次课的作品)和一些优秀的turtle绘图案例。
教学过程