Python语言助力中小学生计算思维能力培养

作者: 丁德武 涂霞 王美能 宋前晖 雷超

Python语言助力中小学生计算思维能力培养0

摘要:计算思维能力培养已经逐步拓展到中小学教育领域。然而,C、C++、Java等传统编程语言的复杂性使得中小学生计算思维能力的编程实践非常困难。文章结合教学实践,以具体案例介绍了如何利用Python语言助力中小学生计算思维能力的培养,以期为中小学数学、信息技术类课程的教育教学提供一些参考和借鉴。

关键词:计算思维;中小学生;Python语言;教学案例;编程实践

中图分类号:TP311        文献标识码:A

文章编号:1009-3044(2022)23-0161-03

1 引言

计算思维(Computational Thinking)这一概念的提出最早是源自计算机科学领域,主要是指使用计算机科学的基本理念来解决问题的一种思维方式,其本质是抽象和自动化[1-2]。在网络信息化时代,计算思维与人们的工作、学习与生活均密切相关,可以说是每个人都应当掌握的思维方式。

随着人工智能时代的到来,编程教育已经成为中小学信息技术学科的重要内容。2017年,国务院印发了《新一代人工智能发展规划》(国发〔2017〕35号),要求“实施全民智能教育项目,在中小学阶段设置人工智能相关课程,逐步推广编程教育”[3]。2018年,教育部印发了《教育信息化2.0 行动计划》(教技〔2018〕6号),提出了要“充实适应信息时代、智能时代发展需要的人工智能和编程课程内容,……并将信息技术纳入初、高中学业水平考试”[4]。这些高屋建瓴的“规划”与“计划”均充分说明了青少年编程教育已经被列入到我国的基础教育之中。

与此同时,计算思维也已经逐步拓展到中小学教育领域,引起了全世界计算机科学家和教育工作者的积极关注,例如:国际教育技术协会、计算机科学教师协会等知名组织,微软、谷歌、百度等知名企业都在研究计算思维如何进入中小学教育[5]。2017年的《地平线报告(基础教育版)》指出“培养中小学生的计算思维是21世纪一个重要的课题”[6]。自2021年起,计算思维测试也已经被纳入国际学生评估项目。我国于2018年颁发的《普通高中信息技术课程标准(2017版)》也突出了计算思维的地位,把计算思维列入了信息技术学科的四个核心素养(即信息意识、计算思维、数字化学习与创新、信息社会责任),要求学生形成运用计算思维分析、解决问题的关键能力[7]。

然而,尽管受到了社会各界的普遍关注,如何把计算思维整合到中小学教育中仍然面临着众多挑战,例如:没有与新课标相配套的教材、知识系统性往往不强、教学方法较为单一、教学评价也不够全面等;而C、C++、Java等传统编程语言的复杂性使得计算思维能力的编程实践尤为困难。为了将计算思维有效融入中小学教育中,我们基于Python语言来探索中小学生的计算思维能力培养。

2 Python语言与计算思维培养

Python是由荷兰人Guido van Rossum开发的一种解释型、面向对象高级程序设计语言,近年来在数据分析、机器学习、人工智能等领域广受欢迎[8]。在其众多优点之中,“简单易学”使得这门语言非常适合编程初学者,因而在中小学生的编程教育中独具优势。

作为一种“新型”计算机语言,Python不仅语法简洁,而且可读性非常高。作为示例,下面给出了C、C++和Python几种不同语言中用来交换两个数值的函数(图1)。如图所示,C语言版本的数值交换函数需要解释指针和函数的参数传递等复杂的概念,C++语言版本的数值交换函数则需要解释引用这一概念,而Python版本的数值交换函数仅需要直接交换两个变量的值即可。就简洁性而言,Python语言的优势显而易见。

另一方面,计算思维的第一功能是提出问题与设计解决问题的模型,而不仅是具体实施计算的过程。因此,在中小学基于Python语言来编写程序,能更好地引导学生将注意力放到实际问题的分析和解决上,能更有效地融入计算思维的教育,进而有助于学生激发学习的积极性、提升计算思维能力。此外,随着大数据与人工智能时代的到来,Python语言逐渐在各行各业中受到广泛关注。因此,基于Python语言来开展中小学生计算思维能力的培养还具备鲜明的时代先进性,更能适应时代的要求。

综上,Python语言不仅更加符合中小学生的编程能力,也更能适应计算思维能力培养的实际需求。因此,我们使用Python语言来助力中小学生的计算思维教育,通过在中小学数学、信息技术等课程中渗透计算思维的思想来提升计算思维教育的水平。

3 Python语言助力中小学生计算思维教育教学案例

尽管对计算思维的具体定义尚存有争议[9],但一般可以认为计算思维就是将现实世界的问题转化为能够利用计算机处理的问题的思维模式[10]。因此,在我们的教学活动中,我们对中小学生计算思维培养的目标定位为能够利用Python语言来解决现实问题的能力与习惯。一般而言,我们首先通过分析数据和界定问题来明确问题的实质。然后,可以通过分解问题和抽象特征将问题转化为可计算化的描述方式。最后,建立模型、设计解决问题的方案和步骤并给出解决问题的Python程序。这里,通过Python语言来编写程序、解决现实问题是培养中小学生实践计算思维能力的关键所在,通过编程实践才能将计算思维有效地融入中小学教育中。

本节将介绍几个我们在实际教学过程中使用Python助力中小学生计算思维教育的教学案例。

3.1 案例一:人教版小学数学第十册第2单元第27页长方体和正方体

本案例以长方体的体积和容积设计了这样一道题目:一个长方体玻璃容器,从里面测量长、宽均为2分米。先向容器中倒入5.5升水,再把一个苹果放入水中,这时量得容器内的水深是15厘米。请问这个苹果的体积是多少?

(1)分析数据和界定问题:①现在的体积和5.5升水相比有变化吗?②为什么会有这样的变化?③它们相差的体积是谁的体积呢?经过分析讨论,我们得出该问题涉及长方体、长、宽、高、体积和容积等概念,问题的实质是与体积计算有关(涉及单位的换算)。

(2)在分解问题和抽象特征环节,问题可以分解为:①求现在的体积是多少;②将水的容积转换成体积;③求苹果的体积是多少。

(3)最后,可以使用体积计算公式来计算体积,并通过Python编程完成本题。代码如下:

该程序输出结果为:苹果的体积为0.5立方分米。

3.2 案例二:人教版九年级上册第21单元第19页实际问题与一元二次方程

这部分内容的主要教学目标是:①会分析实际问题中的数量关系并会列一元二次方程;②能正确分析问题中的数量关系;③会找出实际问题中的相等关系并建模解决问题。在实际授课过程中,我们首先围绕这些教学目标,通过视频引入(最新勒索病毒的传播)和图片引入(夏季常见传染病预防知识)等方式向学生介绍了相关知识。随后,详细讲解了教材提供的几个例子。

这里,我们介绍这样一道题目:某种植物的主干长出若干数目的支干,每个支干又长出同样数目的小分支,主干、支干和小分支的总数是91,每个支干长出多少小分支?

(1)分析数据和界定问题:这个例子和引例(一个传染病的例子)中的数量关系有何区别?经过分析讨论,我们得出:每个树枝只分裂一次,而每名患者每轮都传染,进而明确了问题本质。

(2)分解问题和抽象特征:我们利用如下示意图分解了每个树枝的数量关系,并设了未知数。

(3)随后,我们建立了一元二次方程模型:

1 + x + x2 = 91,即x2 + x - 90 = 0。

并使用了Python的SymPy库来解这个一元二次方程,这里SymPy是一个Python科学计算库,它有一套强大的符号计算体系可用于完成诸如多项式求值、求极限、解方程等计算问题。代码如下:

该程序输出结果为:[-10, 9]。

(4)最后,回到现实问题。我们检验了一元二次方程的根(其中-10不合题意,舍去),得到实际问题的解为9,即每个支干长出9个小分支。

3.3 案例三:人教版数学A必修第三册第1章第1页算法的概念

本节内容中,在讲解完算法的概念和几个例题之后,我们给出了几个练习题用于帮助学生巩固相关知识。本案例介绍这样一道练习题:写出求一元二次方程ax2+bx+c=0根的算法。

(1)分析数据和界定问题:这个题目的目的非常明确,就是让学生使用一元二次方程的求根公式来复习巩固算法的概念。问题的实质与一元二次方程的求根有关(涉及a、b、c值的输入)。

(2)在分解问题和抽象特征环节,我们写出求该一元二次方程根的算法,如下:

第一步,计算Δ=b2-4ac;

第二步,如果Δ<0,则原方程无根;如果Δ=0,则原方程存在唯一根;否则(即Δ>0时),原方程存在两个根:

第三步,输出无根、唯一根(x)或两个根(x1,x2)等相关信息;可以合并到第二步中。

(3)最后,通过Python编程完成本题。代码如下:

若a、b、c值依次输入为:1、-2、1,该程序输出结果为:该方程存在唯一根x = 1.0。

4 结语

每一门学科的学习思维都是在平时的学习中慢慢形成的,计算思维也是如此。要想在中小学教育(如数学、信息技术等课程)中逐步渗透计算思维的培养教育,教师在教学过程中设置的教学内容是十分重要的。通过研读国家各类编程与计算思维教育方面的“规划”与“计划”,在正确理解这些标准指导文件对计算思维能力培养各项要求的基础上,我们对课程与教学内容的设置进行了探索与实践,形成了“使用Python语言助力中小学生计算思维教育”的教学改革方案。

目前,我们已经重组了部分教学内容,完善了相应的教学计划、应用案例与教学课件等各类教学材料,初步实现了相关教学内容的“计算思维”主题化教育,并在宜春市实验中学、宜春市第六小学和宜春市宜阳学校等学校的教育教学中做了尝试。本文结合教学实践,展示了几个基于Python编程的中小学生计算思维能力培养的具体教学案例,相关工作应能够为中小学生计算思维能力培养提供一些参考,对中小学数学、信息技术类课程的教育教学也有一定的借鉴意义。

参考文献:

[1] 范文翔,张一春,李艺.国内外计算思维研究与发展综述[J].远程教育杂志,2018,36(2):3-17.

[2] 王罗那,王建磐.人工智能时代需要关注的新素养:计算思维[J].比较教育研究,2021,43(3):24-30,38.

[3] 国务院. 国务院关于印发新一代人工智能发展规划的通知[EB/OL]. http://www.gov.cn/zhengce/content/2017-07/20/content_5211996.htm

[4] 教育部. 教育部关于印发《教育信息化2.0行动计划》的通知[EB/OL]. http://www.moe.gov.cn/srcsite/A16/s3342/201804/t20180425_334188.html

[5] 郁晓华,肖敏,王美玲,等.基于可视化编程的计算思维培养模式研究——兼论信息技术课堂中计算思维的培养[J].远程教育杂志,2017,35(6):12-20.

[6] 樊蒙蒙.面向计算思维培养的高中信息技术项目教学模式的研究[D].长沙:湖南师范大学,2019.

[7] 覃丽君.中学生计算思维发展何以可能——基于对2018计算机与信息素养国际测评的多层次分析[J].中国电化教育,2020(9):15-21.

[8] 赵震奇.计算思维导向的五年制高职Python程序设计教学[J].电脑知识与技术,2020,16(35):177-178,181.

[9] 陈国良,李廉,董荣胜.走向计算思维2.0[J].中国大学教学,2020(4):24-30.

[10] 杨波,刘文彬,龚春红,等.面向计算思维能力培养的Python课程[J].计算机教育,2021(2):94-98.

【通联编辑:王力】

收稿日期:2022-01-14

基金项目:江西省基础教育研究课题(项目编号:SZUYCZH2020-955);江西省高等学校教学改革研究课题(项目编号:JXJG-21-15-7)和宜春学院教学改革研究课题(项目编号:YCUJG-2020-32)

作者简介:丁德武(1984—),男,安徽明光人,副教授,博士,主要研究方向为生物信息学、生物医药大数据;涂霞(1981—),女,江西新余人,中小学一级教师,理学学士,主要研究方向为高中数学教学;王美能(1983—),男,江西高安人,副教授,硕士,主要研究方向为最优化控制、生物信息学;宋前晖(1984—),男,江西高安人,中小学一级教师,理学学士,主要研究方向为小学数学教学;雷超(1985—),男,江西高安人,中小学高级教师,理学学士,主要研究方向为初中数学教学。

上一篇 点击页面呼出菜单 下一篇