指向初中生计算思维发展的可视化支持策略实践
2024-08-29王娟娟
摘要:本文以Python学习为例,尝试用直观形象的可视化支持策略破解初中生计算思维培养过程中的难题,即通过可视化算法演示、可视化调试、可视化数据呈现、可视化概念理解等策略辅助学生分析问题、解决问题,培养其计算思维能力。
关键词:初中生;计算思维;Python程序设计;可视化支持策略
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2024)16-0036-03
初中生计算思维培养之困境
程序设计是实现计算思维的一种实践方式,它通过编写代码可以将计算机思维应用于实际问题的解决中。Python语言因其简洁、易读、高效的特点而受到广泛欢迎,它是培养学生计算思维的良好着力点,但在实际的学习过程中,学生遇到了较多的困难:①资源匮乏,兴趣不持续;②概念抽象,理解有困难;③实践不足,成果难显现;④学习被动,意识未转变。
可视化支持策略的实践应用
心理学家赤瑞特拉通过大量的实验证实人类获取的信息有83%来自视觉。这一研究结果强调了视觉在人类感知和信息获取中的主导地位。皮亚杰认知发展阶段理论表明,初中学生的思维发展处于从形象思维迈入抽象思维的阶段,他们可以进行假设性思考,解决复杂的问题,并处理抽象的概念,但是抽象思维的能力还不强。因此,教师在培养学生计算思维的过程中可适当应用一些可视化支持策略,以辅助学生学习。
1.可视化算法演示
“算法”是信息科技课程中最基础的逻辑主线之一,对学生来说,分析问题、生成算法是学习的难点。教师可采用流程图、表格、动画视频等方式引导学生进行探究。实践证明,这些可视化工具可以有效帮助学生理解程序的三大结构,并辅助其分析复杂的算法问题。
流程图对描述算法有着重要的作用。例如,分支结构的变换多样,它可以分为单分支结构、双分支结构、多分支结构、嵌套分支结构,难度也依次递增。在遇到复杂问题时如果不借助流程图,很容易出现条件遗漏、逻辑不符等问题。例如,输入一个正整数n(n<10000),输出时该数是几位数?在学生认知范围内分析该问题是一个多条件的判断,所以可以用分支结构解决,先绘制算法流程图,再编写代码,最后调试运行。
表格列举变量的值有助于学生理解程序的运行过程。例如,计算1到100的和,教师将循环变量i及累加器S的值通过表格列举出来。可以清楚地看到,循环变量的取值为1、2、3……100,累加器的值相应地为1、3、6……5050。对刚接触循环语句的初中生来说,表格比较清楚地展示了程序执行过程中变量的变化,有助于其理解循环语句。
图形和坐标结合可以有效解决图形打印的难点。例如,经典的图形打印*号三角形问题。在学生的认知范围内,解决这一图形打印需用到二重循环,内、外循环变量的取值是解决问题的关键。在实践过程中,教师发现用讲解法和流程图的方式进行引导,效果不佳。于是,将图形放到表格中,给行和列标上序号,循环变量的取值规律就容易被发现了。
如图1所示为要打印的5行*号图形,用rows表示总行数,用循环变量i表示行数,用循环变量j表示列数。通过观察不难发现,i的取值为1~5,j的取值为1~i。当找到循环变量的变化规律后,程序的难点也就突破了。值得注意的是,range函数在取值时,终值是取不到的,因此range函数的终值可以写到rows+1。
动画和视频模拟算法执行的过程有助于学生理解比较抽象的复杂算法,如排序问题等。排序的方法有很多种,如冒泡排序、选择排序、插入排序、桶排序等。这些算法实现排序的过程是不同的。以冒泡排序为例,教师可以用实物演示或视频展示的方式,让n个不同身高的学生随意排成一排,从第一个学生开始两两比较,如果前一个学生比后面一个高,则两者交换位置,第一轮结束后最高的学生就被排到了最后。接着重复之前的操作,把第二高的学生排到倒数第二个,依此类推。通过模拟过程,学生可以直观地理解冒泡排序是从第1个数开始往后两两比较,较大的数往后排,这样经过n-1轮冒泡后,实现身高从小到大的排序。
再如,桶排序的原理和其他几种排序有较大不同,要对A数组排序,先将A数组的每个元素作为B数组的下标,进行标记,凡是标记过的,则B数组该下标值元素的值+1,最后输出B数组中标记过的下标值即可,如被标记过2次,则输出2次。如果这样描述,学生无法理解,教师用动画来呈现A和B两个数组的值以及如何通过A数组的值来对B数组对应的下标元素进行标记。如图2所示,对数组A中的7个元素进行从小到大排序。B数组作为标记的数组,先把所有元素置零。桶排序开始,A数组第一个元素是1,将B数组中下标为1的元素加1,即B[1]+1,则B[1]变为1,A数组第二个元素也是1,则B[1]+1,此时B[1]为2,依此类推,将A数组的元素到B数组中进行标记。最后,只要根据B数组元素的值,输出对应的下标即可,如B[1]为2,则输出2个1,B[2]为0,则不用输出,B[3]为1,则输出1个3,最后实现1、1、3、5、5、6、6、7从小到大排序。
2.可视化数据呈现
Python有着丰富的可视化库,如Matplotlib、Seaborn、Turtl等。其中Turtle库的设计初衷是为了方便学生编程和图形设计,因此其语法和接口简单易懂,适合初中生学习。Turtle库是Python的标准库,使用它不需要额外安装库,只需要在Python环境中引入Turtle模块就可以开始绘制图形。它提供了一种简单、直观的方法来实现图形化的绘制,通过控制海龟的移动和旋转来绘制各种形状和图案。使用Turtle库可以将抽象的编程概念与具体的图形操作相结合,帮助学生更好地理解和掌握编程的基本原理和方法。例如,教师引导学生用Turtle库绘制图形,从简单正方形到稍复杂的五角星,再通过循环生成动态图形的创作过程。由于图形生成的过程直观可见,学生对变量、函数、循环这些概念的理解便迎刃而解了。如下页图3所示为绘制正方形的过程,“向前移动100像素和右转90度”的代码重复执行四次,就绘制了正方形的四条边。通过绘制过程,学生能直观地理解代码的含义。
3.可视化调试工具
在程序设计过程中,一般的语法错误编译器会进行报错,学生只需根据错误提示查找错误,进行修改即可。有时会遇到语法正确但是程序的执行结果不正确的情况,这样的错误比较隐蔽,很难发现。此时可以用可视化的调试工具对程序设置断点,单步执行代码,观察变量的取值,从而精准发现错误的代码。Python IDLE自带的Debuger、PyCharm集成开发环境等都可以进行单步调试。通过单步调试的方法可以直观地逐步执行程序,找到循环语句中的逻辑错误。
4.可视化概念理解
随着学习的深入,复杂概念也随之而来,如数组、链表、栈、队列、树、图等各种数据结构,它们有着不同的特点和适用场景。对于初中生来说这些抽象的概念很难理解,而可视化数据结构展示可以将抽象的数据结构转化为图形化的形式,使学生更好地理解数据结构的组织和操作。
可视化支持策略应用的实践反思
1.防止依赖过度
在教学实践中,教师往往倾向于通过各种可视化工具来呈现知识,以帮助学生理解和记忆。然而,如果过度依赖可视化工具,可能会导致学生对抽象概念的理解能力下降,甚至丧失独立思考和解决问题的能力。因此,在应用可视化支持策略时,教师需要合理控制使用频率和方式,引导学生从多维度思考问题,培养其独立思考能力。
2.注重实践应用
在计算思维培养中,理论知识的传授固然重要,但更重要的是让学生通过实际操作,将理论知识应用到实践中,培养解决问题的能力。因此,教师在设计可视化支持策略时,可以结合实际案例,引导学生动手实践,加深对知识的理解,提高计算思维水平。
3.优化资源呈现
初中学生已具备一定的抽象思维能力,教师应选择适合的教学内容,设计合理的可视化支持工具,采用合理的可视化支持策略,避免信息的冗余。
结束语
实践证明,可视化支持策略应用可以让学生更好地理解和掌握抽象概念和复杂问题,并在一定程度上激发了学生的学习兴趣,提高了学生的参与度和积极性。但是,教师在应用可视化支持策略时一定要适宜,这样才能更好地培养学生的计算思维能力。
参考文献:
[1]中华人民共和国教育部.义务教育信息科技课程标准(2022年版)[S].北京:北京师范大学出版社,2022.
[2]任友群,隋丰蔚,李锋.数字土著何以可能?——也谈计算思维进入中小学信息技术教育的必要性和可能性[J].中国电化教育,2016(01):2-8.
[3]王佑镁,宛平,南希烜,等.实体编程促进计算思维发展:工具与策略[J].中国电化教育,2021(08):92-98.
[4]林椿,顾喆纯.指向计算思维发展的Python语言学习任务群的构建与实施——以“一带一路”主题学习任务群为例[J].小学教学研究,2024(15):27-28+31.
本文系江苏省中小学教学研究课题“指向计算思维发展的Python语言学习支持策略的研究”(课题编号:2021JY14-L32)的阶段性研究成果。