“while循环”内容教材修订背后的教学问题思考

2022-07-12 18:09邓亚玲
中国信息技术教育 2022年13期
关键词:教学问题

邓亚玲

摘要:作者在列举“while循环”教学实践中常见的纠结问题的同时,结合后续《物联网》《智能机器人》等教学单元中的程序案例,提出了“while循环”教学问题突围的思路,以及对教科书内容修订的建议。

关键词:Python程序设计;while循环;教材修订;教学问题

中图分类号:G434  文献标识码:A  论文编号:1674-2117(2022)13-0056-03

2020年9月,浙江省初中信息技术启用新版教科书。其中,八年级上册围绕“Python程序设计”进行编写。笔者在2021年9月使用该册新学年教科书时,发现其对2020年9月的教科书进行了修订。其中,“while循环”部分有较大变化。鉴于2020年9月教科书和2021年9月教科书均为新编版本,但内容又有所变化,以下为了叙述方便,笔者用“2020版”代指2020年9月使用的教科书,用“2021版”代指2021年9月使用的教科书。对比2020版和2021版《信息技术》八年级上册教科书可发现,后者对前者的修订内容主要体现在两个方面:一是格式上的规范统一,如流程图中表达式的规范书写、正文程序代码中*号的字体更正等;二是知识内容(包括随堂练习)有删减、增补和表达变化。

● “while循环”内容教材修订中的舍与变

“while循环”是浙江省义务教育教科书《信息技术》2020年新版八年级上册第10、11课的内容。在该版教科书使用一年后,编者对这两课内容进行了修订,具体如下表所示。

除了第10课删除“循环控制语句break/continue”和对随堂练习题目进行替换外,两课中相关的两个程序实例“登录程序”和“猜数游戏”内容都有变化。变化的主要特征就是,不再出现“break/continue”语句,“while True”变成了“while <具体条件>”。

● “while循环”教学难点和教材修订原因探析

“while循环”也称为条件循环、直到型循环。“while循环”可以通俗地解释为,先判断条件,条件满足就执行循环体,否则就不执行循环体或退出循环;也可以解释为,条件满足就执行循环体,直到条件不满足就退出循环。

以“登录程序”为例(如下图),当用户输入的账号或密码不正确时,就要求用户再次输入,直到用户输入正确的账号和密码。其中,执行循环体的条件是用户输入的账号或密码不正确,循环体是用户输入账号和密码。

从“while循环”的一般格式可见,判断循环执行、不执行或退出的条件,一般是跟在“while”之后的。而在具体应用中,“while循环”的判断条件出现的位置却是灵活的,可以在“while”之后,也可以出现在循环体中。当出现在循环体中时,常常是在“while True”的前提之下,通过if分支、continue/break语句来联合控制循环体的执行与否。如果缺少了if分支或continue/break语句控制,“while循环”就会出现“死循环”的结果,即循环体一直执行,永不退出。所以,上述“登录程序”的算法表述看似简明,但在编写代码时却可以有不同的表达方式。

另外,2020版教科书使用了“while True”作为控制循环体执行的判断条件,循环体中使用了if分支、continue/break语句来控制循环,提供了退出循环的事实条件。2021版教科书中则使用了具体的控制循环体执行的判断条件,一般是判断数据之间的大小相等关系等。

二者的区别就在于,前者是先运行一次循环体,控制循环的判断条件位置在循环体内部;后者是按照一般格式运行,满足条件就执行循环体,否则就不执行。在代码上,前者比后者精简,但在教学中,对于作为初学者的学生来说,理解起来却有一点认知上的迷茫和困惑。这正是“while循环”教学中的难点问题。

在笔者进行第一轮“while循环”教学实践时,一部分学生即使在听教师讲解时“感觉听懂了”,但在独立读写程序时仍旧会陷入一种认知漩涡:“while True”与“while循环”的一般格式似是而非,它到底意味着什么?既然是否执行循环体要先判断条件,那为什么条件又直接是真,这里的条件到底要判断什么?既然已经有判断的条件,为何又要使用循环控制语句?条件判断和循环控制语句二者究竟应该如何使用?诸如此类的问题,成为学生在学习“while循环”时逃不开的思维屏障。

从上述角度来说,笔者在进行第二轮教学实践时,明显感觉到学生对理解2021版中的代码要相对容易接受一些。因此,笔者猜测,教科书编者对“while循环”内容的修订,缘由可能与此相关。

● “while循环”教学的纠结与突围

2021版《信息技术》八年级下册教科书与2020版相比,在“while循环”实例的编排上,舍弃了更为精简实用的“while True”和自由灵活的“break/continue循环控制语句”,而选择了学生更易接受的“while循环”的一般格式。

然而,“while True”并没有因此从初中信息技术教科书中消失。八年级下册第二单元“物联网”,在一些物联网应用实例代码中,对“while True”的使用非常普遍。该单元中出现了六个代码实例,其中五个实例中使用了“while True”。在九年級第三单元“智能机器人”中,两个机器人编程案例流程图中使用了“永远循环”的表述,在代码中使用了“while 1”。

在八年级下册教科书的物联网实例中,“while循环”控制循环的条件较为单一,就是“while True”循环体中没有设置退出循环的控制语句,整个循环操作就是所谓的“死循环”。这种设定是符合物联网实例的实际需求的,即物联网智能设备一直处于运行状态。这其中暗含了循环终止或退出的客观条件,如设备出现故障、设备断电等。九年级机器人编程案例,也属同一类情况。

综上所述,初中Python教学要不要讲“while True”和“break/continue循环控制语句”,其问题的症结在于如何向学生解释“while True”。

笔者建议,可再回到“while循环”的一般格式展开讲解。“while <条件>”,先不去管这个“<条件>”是“True”还是具体的数据大小相等关系判断,先来看看条件判断的结果。这个结果很简单,不是真就是假,即不是1就是0,它是一个布尔值。可以把布爾值理解为一个开关,当布尔值为真或1时,开关的状态是开,即工作状态,否则,当布尔值为假或0时,开关的状态就是关,即非工作状态。工作状态和非工作状态也可以理解为按钮按下和松开、线路连接和断开。那么,“while <条件>”中的“<条件>”的值就是一个控制循环的开关。

当“<条件>”不需判断,直接是“True”时,表示循环体会始终处于执行状态,即一直保持在工作状态。如果需要在某种情况下自动强制中断循环或退出循环,可以在循环体内部再设置循环开关,一般使用if分支、break/continue语句。这样的话,就表明了“while循环”的循环控制开关其实不止一个。“while True”是默认无条件执行循环体,真正控制循环体运行的是循环体内部的控制开关。上述通俗化的解释,可以帮助学生很好地理解和接受“while True”,并进一步深入理解“while <条件>”。

● “while循环”内容修订及教学建议

2021版《信息技术》八年级下册教科书修订了2020版中与“while循环”相关的两课教学内容,学习难度和理解难度有所降低。鉴于此次内容修订所折射出的教学问题,以及考虑与后续教科书内容的衔接问题,笔者认为,教科书中的“while循环”仍可分两课。前一课介绍“while循环”的一般格式,在实例选择上,可以偏向与“while <条件>”格式相统一的、使用常见的值比较类的条件作为循环控制的开关。后一课则可以选择使用“while True”类型的实例。此外,教科书中未涉及当循环控制条件不满足时执行else对应语句块的问题,这部分内容可以放在随堂练习的打“*”题目中,为学生提供拓展练习。

● 结语

在开展课堂编程教学时,信息技术教师所关注的除了知识点,还有学生,教师在利用好教科书的同时,还要在发现教学问题时多进行反思和探讨,进而更好地提高专业教学技能和课堂教学效率。

参考文献:

[1]浙江省教育厅教研室.浙江省义务教育教科书 信息技术(八年级上)[M].杭州:浙江教育出版社,2020,7.

[2]浙江省教育厅教研室.浙江省义务教育教科书 信息技术(九年级)[M].杭州:浙江教育出版社,2020,7.

猜你喜欢
教学问题
职业学校教学及学生管理的问题和思考
高职院校工程制图课程现存问题及改革措施探讨
硬笔书法教学问题及解决对策
浅析给排水工程课程教学设计