余慧梅
浙江省杭州市淳安县排岭初级中学
摘要:随着时代的发展和新教材的修订,编程教育成为信息技术学科的重要内容,作为核心素养要素的计算思维在编程教学中显得格外重要。基于英国约翰·伍拉德博士的计算思维观点,即计算思维包括:算法、评估、分解、抽象和概括能力,本文以python教学中多分支结构的应用实例为教学切入点,提出了培养学生计算思维能力的一般流程,并结合具体案例来探讨如何在教学实际中逐步落实计算思维能力,为初中学生计算思维能力的培养提供一定的参考。
关键词:python、计算思维、核心素养、教学策略
一、计算思维的概念
目前关于计算思维的概念主要有两种,一种是最早是由美国卡内基梅隆大学周以真教授于2006年提出的利用计算科学的思想、方法、理论和技术解决实际问题的思维方法。另一种是由英国南安普敦大学辛西娅·塞尔比博士和约翰·伍拉德博士在2013年提出的包含算法、评估、分解、抽象和概括思维能力的思维方法。程序设计教学主要是引导学生设计解决问题的算法,并且能够通过使用程序设计语言实现算法解决问题,让学生进一步体验算法思想。基于后一种计算思维观点比较适合程序设计的内容教学,因此,本人就以python教学中“多分支结构”的教学过程实践,来探究如何培养学生的计算思维能力。
二、计算思维培养的必要性
随着人工智能时代的到来,各地教育部门为了适应信息时代发展,都对信息技术课程进行了改革,python也成为较为普遍的编程学习语言,最新版的浙教版信息技术教材(八上)就将python语言作为程序设计部分的重要内容。根据《纲要》的基本理念,培养和提高信息素养是一个基本要求,而信息素养主要表现为个人运用信息工具处理信息和解决问题的能力,计算思维就包含了信息工具的使用和解决问题能力。所以对于初中学生来说,信息素养培养,尤其是作为核心素养要素的计算思维素培养就显得尤为重要。
第一,计算思维能够提高学生的信息处理能力。当学生在面对一个新问题时,通过发展计算思维,能够帮助学生掌握设计方法,并且寻找各种的解决问题的算法。
第二,计算思维能够激发学生的创新能力。学生在解决问题的过程中,通过培养计算思维,能够发散学生思维,大胆创新,优化设计出各种算法。
三、计算思维的教学流程
在编程教育中引入计算思维的学习,教师可以创设真实的学习情境,学生根据提供的信息和要求,自主、合作、探究,制定解决方案,完成学习任务。学习过程中学生通过小组合作,促进了交流和协作能力的发展,在探究过程中促进了学生问题解决能力和创新能力的提升,在算法选择和代码编写过程中促进了学生计算思维的养成。
针对当前我国中小学编程教育的现状与问题,以建构主义学习理论为理论依据, 以Python 为具体教学内容, 结合 《纲要(试行)》的基本理念与核心素养培养的要求, 提出面向计算思维培养的初中python学习教学流程设计,如图 1 所示。
.png)
整个教学流程是以任务为核心,以确定主题、分析建模、确定算法、编写代码、调试运行为基础与依据,分成前期、活动过程、后期三个阶段,同时分别从教师行为、教学过程和学生行为三个方面进行分角色设计。
四、计算思维的培养策略
辛西娅·塞尔比博士和约翰·伍拉德博士理解的计算机思维内涵首先应该是一个数学建模的过程,在模型已经建立的前提下再进行数据分析、算法设计与程序实现,这是一个综合体。这个综合体不是一蹴而就的,而是一个螺旋式循序渐进的过程,是需要通过课堂教学有针对性的加以培养的。下面我就以教材《多分支结构的应用》中随堂练习为例,设计了一节以计算思维培养为导向的教学案例——根据空气质量指数(简称AQI)输出AQI类别并提出出行建议。
本节课主要从以下几个阶段进行:
(一)明确任务
任务1:编写一个根据AQI值,同时输出AQI类别及户外活动建议值的程序。
学生活动1:分组完成表格1,通过(http://www.air-level.com/)查询杭州、鄂尔多斯、拉萨、广州等四个城市的AQI。
.png)
(二)分析建模,培养学生抽象思维
抽象思维就是一个分析建模的过程,我们先对较为复杂的事物或问题进行简化,然后建立模型,进而研究事物或问题的因果关系,从而得出一般性和普适性规律;在这里,学生面对的貌似是一个关于天气质量的问题,但通过对表格及相关资料的分析,我们可以将其转化为一个简单的数学问题,即数值对应的问题。
任务2:对照题目要求,将空气质量指数表有用数据挑选出来。
学生活动2:将空气质量指数表分析成能用程序思想处理的数学问题,并列出AQI描述。
.png)
输入:杭州AQI值。
处理:并根据AQI值找到合适类别,并输出相应的出行建议信息。
通过输入、处理、输出对问题进行分析,化难为易,选择表中有用的信息,将一个衡量城市空气质量的问题分解成简单的计算与数据对比问题,从而使学生找到解决问题的思路,建立数学模型。
(三)化繁为简,培养学生分解思维
分解思维就是当我们在处理一个复杂问题时,我们可以把这个问题拆分成多个子问题,这些子问题往往是独立的,且常常都是易于解决的小问题,这样我们就可以非常便捷地找到这些子问题的解决思路和相应方法。当我们把一个个子问题都解决了,那么整个问题也就迎刃而解,这也是复杂问题简单化的常用处理方式。
.png)
任务3:根据提供的空气质量指数表,将总任务分解为6个子任务,并选择合适的分支语句。
学生活动3:了解三种分支语句,从单分支语句开始判断,找出最合适的判断语句,根据判断语句,分析AQI区间值判断城市空气质量情况,选择出行建议。
.png)
判断表2中的6种情况,再利用所画的流程图可以一目了然地将总任务分解为6个子任务,它们是并列的关系,因此可以选择使用多分支结构语句if-elif-else来写代码。
(四)算法设计,培养学生的算法思维
算法思维是在程序设计中包含流程图、算法设计及代码编写和运行等一系列的计算步骤。在已经将问题转化为数学模型后,通过设计算法把其转化为使用计算机解题步骤,然后用相应的代码来表述,最后在计算机上运行,从而得到问题的解决。在这一过程中,学生深入算法的理解,使之成为习惯思维,从而自然而然地就转化为计算思维。
任务4:运用变量进行算法设计。
学生活动4:把总任务分解为6个子任务后,再根据前面选择的if-elif-else多分支语句,画出流程图,写出具体代码。
.png)
.png)
(五)算法优化, 培养学生的评估思维
评估思维是通过对算法从准确性、严谨性、处理的效率及效果等方面进行估测和判断,从而更好地选择解决问题的一种方式,对算法进行优化,使程序得到更好的运行,从而使问题得到更好地解决。
任务5:对算法进行优化。
学生活动5:估测和判断图6代码,能否将其修改的更简洁高效、更严谨。
仔细阅读图6代码,再认真思考可以发现两点:1、程序代码还可以更简洁,各个if和elif结构中不需要每次用变量赋值,直接用print()就可以实现。2、对输入AQI值过程中出现的异常值,代码中没有给出解决的方法。在实际应用中,我们应该要考虑得更准确、更严谨同,才能保证程序运行正常,这就是评估思维。经过评估和判断,我们可以将代码修改为如下内容:
.png)
(六)调试运行,培养学生的概括思维
概括思维是指能通过事物的表面现象和外部特征认识到事物的本质和规律。在程序设计中,概括思维主要表现出分析、归纳和总结,得出相应的结论或规律的能力。在调试运行代码的过程中,学生要学会对出现这些问题的原因进行归纳总结,对程序调试运行后产生的结果,学生要学会对其进行归纳、整理和总结,分析出结果之外的规律。
任务6:完成表2的填写,对结果得出自己的结论,与大家分享。
学生活动6:将程序程序运行的结果填入表格2,并对城市空气质量情况作出分析,找出其规律。
.png)
表2 学生完成的填表
通过查询广州、鄂尔多斯、拉萨等城市的AQI值,再通过程序的运行得到AQI值相应的类别和出行建议后,学生可以从中概括得出一个结论:北方相对南方空气污染要严重的多,西部相对东部空气质量要好一些。为什么会出现这种现象?这是可以引发学生进行思考讨论的问题,从而得出程序结果之外的结论。
至此,本教学活动设计紧紧围绕计算思维的五个维度展开,从当前最受关注的空气质量问题说起,把计算思维培养思想融入教学的各个环节,不仅有利于学生理解提高的程序设计的思路和技巧,而且在潜移默化当中培养了学生的计算思维,即信息技术学科的核心素养——计算思维的培养,从而培养学生面向未来发展的能力,使学生逐步成有智能化时代的具有终身学习能力的人。
五、策略实施建议
(一)重构符合学生认知水平的教材内容
python内容对现在的教师和学生都是新的内容,因此教师需要根据初中学生的认知特点,重新构建教材的内容教学顺序。其次,教材内容实例设计更加生活化,将抽象的知识点形象化,这样学生在接受和理解知识上不会觉得枯燥乏味,反而使他们对算法的学习更加有兴趣。
(二)重视强化调试环节的计算思维训练
在python的教学中,学生上机编程是不可或缺的一个环节。但教师往往会忽略编程调试的环节,认为此环节耗时久,难操作,却忽略了这是上机编程中的核心环节。学生可以利用调试,判断自己的算法是否正确,分析自己的算法的优劣,思考自己的算法的优化方案。在这过程中,学生的计算思维能够不断强化。而在学生思考优化方案的时候,教师还需要加强引导,将“一题多解”的解题思想落实于学生,而不是让学生只做刷题的机器。因此,教师需要重视调试环节,为学生留下足够的思考和调试的时间,鼓励学生探索、创新。
(三)利用网络资源加强自主学习能力培养
现在的网络就是一个资源宝库,我们能从网络上获取到很多知识,拓宽我们学习的视野。其次,善于利用网络资源,可以更好地因材施教。教师往往在教学过程中,兼顾到多数学生的理解水平,这样势必会影响学生。加强网络资源利用,比如网易云课堂、中国大学慕课,教师可以根据学生的特点,进行因材施教地发送不同的学习资源辅助学生课前学习、课后复习,更是加强培养了学生的自主学习能力。
六、总结
在python设计中融入学生的计算思维,既能培养学生用程序设计来解决学习上的问题,同时又能运用计算思维的方法来解决生活中的实际问题。虽然以上的教学策略在教学实际中取得了一定的成效,但思维训练不是一蹴而就的,需要坚持不懈的训练,因此,在教学中如何更有效地培养和提高学生的计算思维能力,仍然是一个任重而道远的问题。
参考文献:
[1]郑戟明.Python程序设计课程中计算思维的应用.大学教育.2016.8:127-129.
[2]汪 慧.基于计算思维培养的“python 选择结构”教学设计.电教科技.2019(33):150-151.
[3]王 颖袁侯岩袁赵健如袁王玉龙.面向计算思维培养的初中 Python 项目式学习教学设计流程构建. 中国教育信息化.2020.14:34:37.
[4]赵科.高中程序设计课程计算思维培养的策略与方法[J].中国信息技术教育,2019(8):44-45.
[5]王琦.基于计算思维的高中算法与程序设计教学初探[J].课程教育研究,2018(52).