APP下载

游戏化项目在高中信息技术课程中的运用

2021-06-21彭仁杰

教育界·中旬 2021年4期
关键词:剪刀程序设计语句

彭仁杰

【摘要】高中新课程中程序设计占很大一部分,教学难度大、学生兴趣不高是老师普遍的感受。本文嘗试在教学过程中引入游戏化项目,把教学内容揉到游戏的迭代中去。通过一段时间的教学,发现教学效果良好,对学生思维的提升也起到很好的作用。

【关键字】游戏化;迭代思维;抽象思维

【基金项目】本文为苏州市教育科学“十三五”规划课题(课题编号:192010350)研究成果。

从2020年9月开始,大部分省份的高中信息技术课程开始采用新教材,几个出版社的教材中都涉及了程序设计,所用语言都是python。笔者和所在区域的老师也积极进行了备课、上课并反思。通过几个月的教学,结合学生的兴趣,发现利用游戏化项目教学能很好地调动学生的学习积极性,教学效果良好。下面,主要以游戏“石头剪刀布”为项目,谈谈如何在高中信息技术课中利用游戏化项目进行教学。

一、第一阶段:输出电脑手势1.0,抽象游戏

在学习程序设计之前,学生接触的软件、游戏都是比较具体的界面。学生学习程序设计,尤其是自己试着编写游戏,遇到的第一个困难就是无法把具体的问题抽象,比如:无法表示“石头、剪刀、布”三种状态。教师可以和学生一起探究如何把三种状态数字化(用0,1,2表示“石头、剪刀、布”),锻炼学生的抽象思维,使学生初步形成把实际问题转换成计算机解决问题的认识。

本阶段也可以分几步进行:1.给电脑和用户都直接赋值。2.由于电脑的输入是不确定的,引入随机函数。3.由于用户的输入需要通过键盘输入,引入input函数。通过这几个环节,学生可以初步了解程序设计的一些简单概念。

代表性代码:电脑手势随机产生,用户手势键盘输入。

import random

computer1=random.randint(0,2)

man=int(input("你要出什么?0表示石头,1表示剪刀,2表示布"))

print("computer1=",computer1,";man=",man)

二、第二阶段:输出电脑手势2.0,分支语句初步

当会用数字表达三种状态后,学生通过测试游戏会提出一些疑问,如:目前用户输入任何数字都可以,能否对输入数据进行有效性判断?教师顺势引入分支语句的概念。当学生有了分支的概念后,游戏就可以进一步补充更多的功能,如:能否根据用户输入的数字,输出对应的“石头、剪刀、布”?这涉及单分子、双分支以及分支语句的嵌套。教师可以先通过流程图的形式,和学生一起理清思路,然后再介绍python语法,最后让学生编写游戏。

代表性代码:电脑手势判断部分代码。

computer=random.randint(0,2)

man=int(input("你要出什么?0表示石头,1表示剪刀,2表示布"))

if (0<=man<=2) :

print("电脑输入的是:",computer)

print("你输入的是:",man)

else:

print("输入数据错误")

三、第三阶段:让表达更简单,认识列表

第二阶段的判断,涉及多次的嵌套,学生的感受是很复杂。教师可以和学生一起思考:能否有更简单的方法来表示?教师可以顺势引入列表的概念。

代表性代码:

a=["石头","剪刀","布"]

computer=random.randint(0,2)

man=int(input("你要出什么?0表示石头,1表示剪刀,2表示布"))

print("电脑输入的是:",a[computer])

print("你输入的是:",a[man])

四、第四阶段:人机对战,分支语句的应用

当学会了分支语句、列表以后,学生就可以试着完成人机对战了。如果让学生单独编写代码,由于每个人的思维方式不同,代码会有很多种。教师可以展示学生的代码,很多同学的代码会写很多行,很复杂的嵌套。教师可以通过提问来引导学生梳理逻辑思路。比如:判断“赢、输、平局”哪个更容易比较?如何表达?有的学生可能表示为((computer==0 and man==0)or (computer==1 and man==1) or (computer==2 and man==2),其实这些只要man==computer就可以表示了。

代表性代码:判断输赢部分

if (man==computer):

print("平局!")

elif( (computer==0 and man==2)or (computer==1 and man==0) or (computer==2 and man==1)):

print("恭喜你,赢了!")

else:

print("抱歉!你输了!")

五、第五阶段:游戏三局两胜,循环语句应用

完成上面的游戏后,有学生会提出:本游戏只能判断一次是否正确,正式的游戏一般是三局两胜,从而引进循环语句的概念。由于不知道多少次比赛能决定输赢,所以这次涉及的是while循环,同时需要引导学生理解有计数的概念。通过这个游戏学生对for循环和while循环的适用场合就有了深刻的理解。

代表性代码:循环统计输赢部分

while (manwin<2 and computerwin<2):

man=int(input("你要出什么?0表示石头,1表示剪刀,2表示布"))

computer=random.randint(0,2)

if (computer==0 and man==1) or (computer==1 and man==2) or (computer==2 and man==0):

print ("本局电脑赢了")

computerwin=computerwin+1

if (computer==1 and man==0) or (computer==2 and man==1) or (computer==0 and man==2):

print("本局你赢了")

manwin=manwin+1

if (computer==man):

print("平局")

print("现在比分为 你:电脑",manwin,":",computerwin)

六、游戏化项目在课程教学中的意义

新版的《普通高中信息技术课程标准修订稿》明确指出,计算思维是信息技术学科核心素養之一。迭代思维、抽象化思维都是计算思维的重要组成部分,通过游戏化项目能很好地锻炼学生这方面的思维能力。

(一)锻炼学生的迭代思维

在程序设计中,教师经常会利用“出租车车费”等问题进行教学,但是学生学习积极性不高。让学生编写游戏,有一定难度。对于这个矛盾,教师可以引入游戏化项目来构建整体教学结构,把游戏设计成几个阶段:初步解决小问题—不断优化—不断提出新的问题—学习新的知识解决问题。不断迭代,每个阶段都可以创新,不同学生在不同阶段获得成功体验。让学生体验程序设计的乐趣,提升迭代思维的能力。高中信息技术课程旨在全面提升学生的信息素养,迭代思维能够促使学生根据解决问题的需要,自觉、主动地不断寻求更为恰当的方式来获取与处理信息[1]。

(二)锻炼学生的抽象思维

在科学方法论中,抽象思维是对同类事物去除其现象的次要方面,抽取其共同的主要方面,从个别中把握一般,从现象中把握本质的认知过程和思维方法[2]。程序设计的目的就是利用计算机解决实际生活问题,首先要做的就是将实际问题抽象为计算机可以识别和解决的问题,需要学生有较强的抽象思维能力。通过游戏化项目,可以引导学生把具体问题抽象化。教师可以和学生一起讨论并明确游戏的需求,提取问题的主要特征,忽略没有帮助和影响的细节,然后再抽象成适合在计算机中表示的数据结构和形式化的数学模型,最后把问题的数学模型或处理需求转化为有效的算法,并编码实现。

总之,新课程要求我们进一步关注学生思维能力的提高,信息技术教师必须更新教学思路,多思考,多实践,才能把信息技术核心素养落到实处。

【参考文献】

[1] 陈军辉.迭代思维引导探究走向深入[J].中国教育报,2018.

[2] 钟柏昌,李艺. 计算思维的科学涵义与社会价值解析[J]. 江汉学术,2016(02).

猜你喜欢

剪刀程序设计语句
钝剪刀
重点:语句衔接
基于Visual Studio Code的C语言程序设计实践教学探索
风有一把剪刀
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
小小金剪刀
PLC梯形图程序设计技巧及应用
如何搞定语句衔接题
作文语句实录