- 收藏
- 加入书签
基于计算思维培养的初中Python编程项目式教学初探
——以“猜数游戏”教学为例
摘要:本文依据义务教育信息科技新课程标准,在研究计算思维的基础上,试图通过具体的教学实践,探究在python程序设计的教学中培养计算思维的策略。结合初中信息科技学科特点和初中学段特征,以“python猜数字游戏”教学为例,阐述如何在课堂上利用该策略培养学生的计算思维,提高学生分析问题,解决问题的能力。旨在为其他信息技术教师提供一些借鉴。
关键词:计算思维;Python编程;项目式学习;教学设计
计算思维是中小学信息科技课程四大学科核心素养之一,是计算机科学领域的思想方法。培养学生的计算思维,有助于学生对问题进行抽象、分解、建模、设计与解决,从而借助信息技术的优势,让问题得到高效执行。但是现在中小学信息科技课堂,我们未能及时更新课程知识、落实新课程理念,忽视了对学生计算思维的培养,学生的计算思维培养迫在眉睫。鉴于此,对 Python 编程在初中信息科技课程中的教学流程新模式有必要进行积极的探索。
本文提出基于计算思维培养的 Python 编程教学流程,把计算思维解决问题的过程融入到创设情境、分析问题、设计算法并解决问题、实施反馈、项目迁移和分享总结六个教学流程中,以提高学生的理论理解和实际编程能力,提高学生的学习兴趣,培养和发挥学生的创造性思维和解决实际问题的能力。并从计算思维的问题界定、问题分解、模式匹配、数据表达与抽象、算法设计、评估反思几个方面进行深入分析,帮助学生逐步掌握用 Python解决问题的方法,培养学生的计算思维能力。其具体流程如下图:
为此,本案例将结合Python编程项目式学习主题:猜数字游戏进行教学实践。对于初级问题,学生可能会使用顺序结构算法来解决问题。对于复杂问题,则需要使用循环结构来设计算法。在这个过程中会体现出顺序结构算法的短板,需要对该算法进行改进。学生会产生使用新算法的迫切需要,计数循环算法应势而出,可以提高学生的逻辑推理能力、数据处理能力和分析能力。
一、创设情境 ,发现问题
项目式学习是需要创设情境的。可以有针对性地设置情境,让学生自己去思考、去探究。在正式的学习活动开始之前,老师要创造项目的情境、提出项目需要解决的问题,激发学生产生探究的欲望。
教与学是课堂教学必不可少的组成部分。培养学生计算思维重要前提是让学生在“真实复杂情境”中“广泛参与和深度思考”。因此教师需要结合学生生活实际,设计具体的挑战性学习主题,以真实的问题情境引发学生兴趣,结合实际生活创设相关问题,激发学生的学习兴趣,有效地提高学生的思维能力。
在导入环节设计猜数字游戏,教师在屏幕上展示游戏规则:甲随机记下一个在1到100之间的自然数,让乙猜,乙用一种固定的整数来猜数。乙每猜一个数, 甲就会告诉乙这个数是不是甲记下的数,如果不是,则告诉乙他的猜测是偏大还是偏小,那么乙如何选择整数,可以最快地猜出甲记下的数字?如果乙一次猜对,教师就展示数字牌,学生乙胜利,游戏结束,提示猜数成功且一共猜了1次。否则,学生甲要提示学生B猜的数是大了还是小了,然后学生乙继续猜数直到猜对为止。其他学生负责记录猜了几次才猜对,直到学生乙猜到学生甲看到的数字,全班学生说出学生乙猜数成功所用的次数。学生了解规则后,教师邀请两位学生到教室中间按照游戏规则玩这个游戏,体验生活中猜数字游戏的实现过程。
然后,让学生使用海龟编辑器平台进入Python编辑环境运行程序,体验这个猜数游戏。游戏结束后,对比生活游戏与体验程序,引出本节课主题:用Python程序实现这个猜数字游戏。
二、头脑风暴,分解问题
当学生明确问题之后,第二个环节就是组织学生讨论问题。请结合生活中猜数字游戏的过程,简要描述本游戏设计过程,并尝试用流程图表示该问题的解决过程。学生经过讨论、交流后得到问题初步解决方案,首先设定好一个你要猜的数字;第二步提示输入你要猜的数字;第三步比较大小,如果猜的数字与设定的数字相同,就输出“猜对了!”如果猜的数字不对,就输出“猜错了!”然后让学生尝试画出该程序流程图。(教师出示不完全程序流程图,让学生补充完整)
三、抽象建模,程序设计
清华前校长陈吉宁曾说过这样一段话:“未来社会需要的,是那种逻辑思维缜密,能够应对变化,提出独特想法的创造性人才。”具有创造力的人,有创新意识,他能够把学到的知识灵活运用,创造和发展出新的东西。任何一门学科每年都会有新的内容产生,对一个人而言,知识层面的内容永远也学不完,而更重要的却是一个人的思维方式中体现出的想象力和创造力。信息科技新课标也明确指出具备计算思维的学生,能对问题进行抽象、分解、建模,通过设计算法形成问题的解决方案,并能通过尝试模拟、仿真、验证解决问题,反思、优化解决问题的方案,最后将其迁移运用于解决其他问题。
在学生理解问题解决的过程之后,学生头脑中对猜数字游戏程序算法有了初步的框架。此时,向学生提问“那我们刚才所得到程序流程图,怎样才能变成像老师手里这样一个实际的python程序呢?”(出示已利用海龟编辑器制作好的程序)。通过程序与流程图的对比,让学生明白二者的区别。如果想要将程序流程图变成程序,需要通过计算机完成建模,并通过运行程序进行调试。在构建与编程的过程中,培养学生发现问题与解决问题的能力。
教师带领学生分析问题,设计算法,用代码实现猜数字游戏。使用海龟编辑器编辑工具,让学生编写自己的第一个小程序。
算法思路:
1. 使用random库的randint函数生成一个100以内的随机数。
2. 使用 for 循环进行循环10次,每次提示输入要猜测的数字,猜大或猜小都做下相应的提示,并输出还剩下几次机会。
3. 当在10次机会内猜对数字,提示猜对了,你真棒,只用了几次机会。
4. 10次机会用完还没猜对,提示游戏结束,猜不出来吧。
在本环节中,最主要的目的在于让学生明白可以通过问题分解、抽象建模的方式将实际生活中猜数字的问题转化成计算机可以解决的步骤来完成,即在教学过程中渗透数学建模、算法思维意识。
四、优化评估,完善作品
通过小组合作完成作品后,接下来就是组织学生对作品进行展评。通过游戏教学的实施和教学反思,对教学效果进行评估,并对教学过程和游戏设计进行合理的调整。提问:在上一环节我们得到的程序流程图其实是该程序最重要的一段算法,但是还有漏洞,谁能找出来并进行修改。经过学生思考、交流、教师启发,指出:上面的程序流程中对输入的数字只进行一次判断,如果输入的数字不是正确的数字,则程序提示“猜错了”且程序运行结束,所以需要补一个循环结构(while),当输入的值不等于要猜的数字,则先进行判断“所猜的数字是大了还是小了”,然后“继续显示输入你猜的数字”,同时将计数count变量值加1,这个过程重复执行,直到所猜的数字与随机出示要猜的数字相等,退出循环,最后输出“你猜对了,一共猜了n次”。
五、项目迁移,举一反三
在本环节中,教师为学生下发内容相似或难度更大的任务,学生分组合作探究完成任务。学生在熟练本节课知识点和思维方法的基础上举一反三,利用该项目中获得的经验,去解决其他类似的问题。找出任务之间的关联,设计算法并编程实现。这是对模式匹配这一计算思维的强化训练,也是对新课内容的加深巩固。
六、分享汇报,总结交流
分组任务完成后,各小组代表在课堂上展示本小组的作品或运行结果,并讲解本小组算法设计的思路、代码实现过程中遇到的阻碍和解决办法,取长补短促进共同进步。教师对各小组的成果横向比较,进行过程性和总结性评价,并组织学生之间的互评和学生的自评。通过总结和评价,评估反思学生利用计算思维解决问题的闪光点和不足之处,从而进行改进,强化思维。
计算思维的形成需要学生不断思考和实践。由于初中生认识问题的水平还不够充分,学生容易形成定势思维,因此,教师要加强这一环节中学生之间的互动,促进学生自评、互评以及他评,使学生在交流的过程中找到更多解决问题的方法,促进学生归纳能力、分析能力的培养,从而使学生的学习从“注重知识、技能习得”向“培养计算思维、数字化学习与创新能力”转变。
例如,在“python猜数字”教学最后这一环节,我让学生说一说作品在制作的过程中是不是完全按照一开始的规划来实施的?如果不是,是哪一个步骤出现了问题,让学生各抒己见。在这个过程中,学生之间通过讨论,自然而然地产生了很多的思维碰撞火花。最后,我让学生用自己的作品来“说话”,向他人展示自己的观点。
七、教学反思
本节课教学是一个在初中信息技术课程教学中培养学生计算思维的案例。我们尝试将计算思维培养要素与python猜数字游戏项目相整合,让学生在完成python猜数字游戏项目制作的过程中,历经分解、抽象、建模、评估、概括几个环节。让学生明白计算思维在问题解决的过程中起到的作用,运用计算思维可以使问题解决更有效。结合本案例的设计与实践,有以下体会:
(一)以学生计算思维培养为核心开展教学活动的设计
学生计算思维能力的培养离不开教学活动的精细化设计,尤其是探究性学习活动的设计。教师提前将计算思维能力要素分解到教学任务中,而学生则可以根据教师设计的任务活动展开任务分解、抽象建模、算法设计、评估迭代、小组合作、问题解决等,循序渐进地提高计算思维能力。
(二)以学生计算思维培养为抓手及时调整教学方法与教学策略
教师依据课程标准、教学内容确定好教学目标后,需要以学生计算思维培养为抓手选择教学方法,并根据教学的具体内容动态地调整教学方法。例如,在问题提出后可以进行头脑风暴,通过引导学生将未知的问题进行分解与转化,把未知的问题转化为已知的小问题并逐一解决。在问题的分解与建模中,让学生尝试通过制作思维导图、画流程图、写步骤、编写程序代码等描述问题解决过程,最终形成个人或小组问题解决方案。
参考文献:
[1]中华人民共和国教育部.义务教育信息科技课程标准(2022年版).[M].人民教育出版社,2022.
[2]傅骞,王钰茹.面向计算思维培养的编程教学研究——以高中生Python编程教学为例[J].创新人才教育,2019(3):47-54.
[3]张菊芳,王海燕.初中生计算思维能力的现状调查及对策研究[J].数字教育,2018,4(6):46-50.
[4]马兴莹:基于计算思维的初中python课程教学模式设计与应用研究[D].山东师范大学,2021.



京公网安备 11011302003690号