陈旭佳
一、正确理解信息技术课程中计算思维的本质
计算思维是利用计算机科学的思想方式,在形成问题解决方法的过程中产生的思维活动。它强调的是具备利用计算机可解决、可界定问题、可抽象建模、可组织数据、可合理形成有效方案等综合性、项目性的能力。在课堂中教师对问题的处理都是按照“问题—编程—测试—结果”流程,基本上都把计算思维归类于算法,更有甚者把数学中的“算术思维”当成了计算思维。针对这类情况,笔者从三个方面探究信息技术课程中计算思维的内在本质。
1.正确深入剖析问题是计算思维的前提
在课堂上,教师经常用“提问”作为教学手段。因此教学的重点落在问题解决,而忽略引导学生把问题进行分解和剖析。例如,利用python设计出一个具备输入内容并把内容输出的功能界面。教师对这个问题的处理是先列出相应的程序语句(input和print),然后设计算法,最后是编程。这种处理方式抑制着学生对问题作深入性剖析和思维探究的发展。笔者认为,正确理解并剖析问题比把问题解决更加重要。
教师在课堂上引导学生对问题的剖析,可依据以下表中的四个步骤依次进行。
2.准确建立问题的“模型”是计算思维的基础
模型是问题的抽象化体现。问题解决的条件、方法、手段都要根据这个模型去进行。这个过程我们称为“建模”。在课堂中,学生经常把“怎样做”摆在首位,而忽略了“做什么”。计算思维中强调“建模”的作用,就是针对学生缺乏“做什么”的思维过程。笔者认为,计算思维强调了“建模”过程的三个方面,即模型的组织结构、模型元素的相互关系和模型的具体抽象化。本文以利用python 3制作一个简单的点菜系统为例子进行阐述。
(1)模型的组织结构(如图1所示)
(2)模型元素的相互关系(如图2所示)
(3)模型的具体抽象化(如图3所示)
3.寻求问题最佳“算法”是计算思维的灵魂
计算思维离不开算法,但算法并不等同计算思维。利用计算思维处理问题是一个综合性的过程,它涵盖了计算机科学理念、数学理念和工程理念,而算法或编程只是把整个过程进行描述或具体化而已。在计算思维过程中,应借助“算法”将问题“化繁为简”,以清晰的思路、具有可操作性的方法、有效率的途径将问题解决。教师可从三个思维角度去引导学生寻求解决问题的最佳算法:一是顺序性的功能实现(多次代码实现);二是循环性的功能实现(代码一次实现);三是结构性的功能实现(函数封装)。通过这三个角度能让学生在探索问题过程中向项目化、系统化的计算思维角度去靠拢。
二、python教学中计算思维的合理体现
1.利用python中条件循环结构体现逻辑思维
在计算思维中强调正确陈述、剖析问题,将复杂的关系转成清晰的逻辑结构助力于问题的解决。问题的逻辑结构不外乎就是条件判断和循环两者的有机结合。例如上文的点菜系统,看似内容复杂繁多,但基本上可分类于以下几种逻辑结构:(1)整个系统是否有条件循環?(while语法结构)(2)点菜过程是否有条件选择?用户输入格式是否有条件限制?(if语法结构)(3)用餐费用结算是否有条件选择?(if语法结构)
2.利用python中的函数结构体现抽象思维
python函数中具备将功能操作进行封装的特点。在将问题进行剖析之后,应对问题解决的步骤进行分块,这个过程应引导学生合理地进行函数功能设计,但不必要去思考函数的具体实现。进行函数设计之后,再去思考这些函数之间的数据传递关系,从而将函数间的关系进一步明确。
3.利用python中turtle模块体现建模思维
Turtle模块能让学生感受到问题解决的过程及结果的体现。教师可以借助Turtle引导学生对问题进行建模。例如,制作一个立体的动态星空。这个问题教师可以引导学生在Turtle中先画出黑色背景和一个白色的小五角星。然后以此为基础,再依次变化呈现出星空的状态。如图4所示。
三、利用python教学对计算思维的初步形成
在计算思维解决问题的过程中,教师在课堂上要引导学生从“轻算法、重方法”“轻结果、重分析”“轻过程、重系统”三个方面去向计算思维靠近,并逐步把计算思维融入问题的处理过程中,让学生慢慢养成一种思维习惯。
实例:python课程中的列表处理数据。(电子地图上城市的经纬度列表)
1.创建python列表
创建一个名为“map”,关于电子地图城市的列表。
map=[“北京”,“石家庄”,“沈阳”,“广州”]
通过创建列表问题,让学生掌握将分散的元素(城市)转化为集合形式(列表)。在这点上体现计算思维中的建模思想。教师还可以进一步地把问题加以扩展,将数据添加到列表中对应的元素中。
2.添加python列表数据
向列表中元素添加对应的数据,教师可从不同的角度去引导学生,通过对比指导学生在问题解决过程中要寻找“最佳算法”。
算法一:使用“insert”和“append”,向“map”列表直接添加数据。
map.insert(1,“N:39E116”)
map.insert(2,“N:37E114”)
map.insert(3,“N:41E123”)
map.insert(4,“N:41E123”)
这个方法需要按照列表元素位置的逐一添加,是一一对应的关系,位置序号不能搞混。
算法二:在创建列表时候加入数据
map=[“北京”,“N:39E116”,“石家庄”,“N:37E114”,“沈阳”,“N:41E123”,“广州”,“N:41E123”]
3.显示python列表数据
教师可引导学生逐步的将列表中的数据显示出来,采用print语句,如:Print(map[1],map[2], map[3],map[4])。接着,教师可适当地提高学生的思维能力,比如采用循环思想解决具有规律性的问题。例子如下。
num=1
While num<=len(map):
print(map[num])
num=num+1
经过上面三个阶段教师再让学生多作深入探究问题,多寻求解决问题的方法。在此基础上教师可再设计出一系列与列表相关的问题,如运用列表解决企业人员薪资问题、商品价格查询问题、消费种类及消费金额问题等。
计算思维教学过程应该重点关注学生思考、探索、寻求问题解决方法的过程,而不是问题解决的结果。学生学习计算思维本身就是一个系统化的过程。教师不能“断章取义”,将计算思维过程中某个环节作为课堂的教学和训练。教师需在理论上把计算思维理解透彻,在课程设计上逐渐渗透,把计算思维有机地融入教学过程中,从而将计算思维变成学生一种“惯性”的思考习惯。
参考文献:
[1]嵩天,黄天羽.Python语言程序设计教学案例新思维[J].计算机教育,2017(12).
[2]王亚萍.计算思维培养视域下《Python程序设计》课程的教学改革实践[J].电脑知识与技术,2018(2).
[3]贾瑞凤,马曾,侯春龙.以Python为工具培养学生计算思维[J].电脑知识与技术,2018(2).
[4]柳青.Python系列课程的案例教学实践[J].电脑知识与技术,2018(15).
[5]冯艳红,王楠,许冀伟.Python语言程序设计教学模式探索[J].福建电脑,2018(10).