基于STEM教育理念的高中程序设计课程开发与实践

2024-10-10 00:00:00孙国强胡冬明李钰华朱巧玲陈睿
中学教学参考·理科版 2024年9期

[摘 要]通过对现行高中信息技术课程标准及教材进行分析,明确高中程序设计教学的主要目标。在此基础上,基于STEM教育理念,结合学生的劳动课程背景,设计了以“智慧农场”为主题的程序设计课程。该课程在激发学生学习兴趣、培养学生计算思维方面成效显著。

[关键词]STEM教育理念;程序设计;课程开发;Python

[中图分类号] G633.67 [文献标识码] A [文章编号] 1674-6058(2024)26-0097-03

如今,科技已成为各国推动经济发展、参与国际竞争的核心要素,因此各国均高度重视科技人才的培养。在人才培养的课程实施中STEM(科学、技术、工程、数学)的导向已成为一种流行趋势。将STEM教育理念融入信息技术课堂也已成为广泛共识。

《普通高中信息技术课程标准(2017年版)》明确指出,普通高中信息技术课程旨在全面提升学生信息素养,帮助学生掌握信息技术基础知识与技能、增强信息意识、发展计算思维、提高数字化学习与创新能力、树立正确的信息社会价值观和责任感[1]。作为培养学生计算思维的关键课程,程序设计课程备受瞩目。20世纪80年代,受“程序设计是第二文化”观念的影响,我国中小学开始开设程序设计课程,这在一定程度上促进了计算机教育的普及。然而,这也带来了一些问题。部分教师错误地将培养计算思维等同于“代码操练”,过于强调程序设计语言的语法和格式,导致教学内容过难、教学方法单一,实施困难。这种教学方式限制了学生的思维,使学生觉得课程“没意思”、“枯燥”且“学不懂”[2]。

高中程序设计课程是培养学生计算思维的一项重要途径,其并非要求每个学生都成为软件工程师,而是让每个学生理解信息技术学科领域的思想方法,并应用这些思想方法创造性地解决问题,这体现了“计算思维+”的教育理念。因此,程序设计课程不应只是简单的知识传授和技能训练,也不应局限于传统的编码。基于STEM教育理念设计程序设计课程,旨在通过项目式学习为学生提供体验、应用计算思维及实现计算思维与其他领域相结合的机会[3],实现信息技术与多学科知识的融合。基于STEM教育理念、设计程序设计课程,能够有效提升学生在数字化环境中的应变能力和创新能力,以及运用信息化手段解决问题的能力。

在笔者所使用的教材《数据与计算》(上海科技教育出版社出版)中,程序设计模块的内容编排偏向于传统的数学类问题,较难激发学生的学习兴趣。为了更好地开展教学,并满足课程标准的要求,笔者根据课程开发的“泰勒原理”,基于STEM教育理念进行了高中程序设计课程的开发与实践。

一、基于课标和教材确定课程知识点

根据目前信息技术学科的课时总量安排,程序设计模块通常仅能获得10~12课时。因此,课程设计必须在大约10课时内达成课标能力要求。

在《数据与计算》中,算法和程序设计模块安排在第三单元,共四个项目,项目主题无紧密关联性,涉及核心知识点如表1所示。

设计的程序设计课程要求涵盖信息意识、计算思维、数字化学习与创新、信息社会责任四个核心素养,覆盖如下知识点:算法概念和特征、算法描述方式、算法控制结构;程序概念、程序设计基本流程;Python基本语法;枚举算法。

二、结合学习环境和课程背景设计主题内容

笔者所在学校拥有生物园和耕读园,并开设以植物种植为主的劳动课程,学生对农场植物种植活动非常熟悉。因此,设定课程主题为“智慧农场”,旨在引导学生利用种植经验来设计问题解决方案,加快知识网络的构建。为了便于教学实施,课程并不直接在园区进行,而是以编程学习套件作为教学实践工具,在机房中开展教学活动。该编程学习套件包括Maker ESP32 V1.3主板、OLED显示模块、小风扇、温湿度传感器、光敏传感器、土壤湿度传感器、触碰传感器、MQTT物联网模块、水泵、水槽等配件,支持图形化和Python编程,并可通过Mu编辑器烧录程序很好地满足“智慧农场”课程主题的教学需求。

笔者围绕“智慧农场”大主题设计了包含10节课的教学主题内容。这些教学主题内容之间紧密相连,知识点呈现层层递进的关系,具体安排如表2所示。

每节课包含对应的《项目使用手册》和《导学案》,可作为学习支架,供学生使用。

三、基于5E教学模式和计算思维过程设计教学模型

传统的编程教育侧重语法与算法,常从结构良好、适合编程的问题入手,较少探讨如何将现实问题转化为计算机可处理的问题,而这正是问题解决的第一步[4]。基于此,笔者基于5E教学模式和计算思维过程,构建高中程序设计教学模型。

5E教学模式包括参与、探究、解释、迁移和评价五个环节,该模式基于建构主义学习理论,强调学生主动参与、探究,重视知识的形成和应用,并通过评价来促进学生发展。

根据现有研究成果,计算思维过程包括问题界定、问题分解、模式匹配、数据抽象与表达、算法设计和评估反思,这些环节构成了问题分析、问题表达和问题解决的完整框架,其核心在于运用计算思维来解决问题。

笔者在5E教学模式中融入计算思维过程,并依据STEM教育理念对该教学模式进行了改进,以指导高中程序设计教学。具体教学模型如图1所示。

四、高中程序设计教学实践

“智慧农场光控——if分支语句(一)”是“智慧农场”课程的教学案例之一,主要教学流程如下:

教学环节一:设计情境,引入新课

教师创设情境:“我们将要看到一场颇为壮观的灯光秀,而这场秀的主角是火龙果。为什么我们要给火龙果举办这么大型的灯光秀呢?请同学们带着问题观看视频。”在学生观看完视频后,教师引入要解决的问题:“火龙果属于喜光植物,良好的光照有利于火龙果的生长和果实品质的提升。相反,光照不足会对火龙果的营养积累产生不利影响。据研究,光照强度在8000勒克斯以上最为适宜,而光照强度不应低于2500勒克斯。现在,让我们一起来给火龙果设计一个自动补光程序吧。”

教学环节二:分析交流,整理思路

教师给学生提供《if单分支语句导学案》,引导学生分析问题。所涉及的计算思维是“问题界定”。教师明确提出要解决的问题:“当光照强度达到多少时,我们需要给火龙果补光?”学生针对这个问题进行讨论并作出回答。接着,教师进一步提问:“光照强度是通过光敏传感器来获取的,阻值越大表示光照强度越弱。假设光敏阻值1500是需要给火龙果补光的临界值,那么当光敏阻值满足什么条件时,我们需要给火龙果补光?所涉及的计算思维是“问题分解”。

教学环节三:分享表述,凝练方案

在分析《if单分支语句导学案》的前三个环节特点后,教师列举数学分段函数的程序例子。通过这个例子,教师引出了if单分支语句的使用范围与使用方法。接下来,教师逐步引导学生将现实问题转化为用if单分支语句来表示。在这一过程中,涉及的计算思维是模式匹配、数据表达与抽象以及算法设计。为了帮助学生更好地理解相关知识,教师引导学生使用伪代码和流程图描述相应的语法。

教学环节四:动手编程,转化成果

师生一起完成了对相应程序的编写工作。以下是所编写的代码:

if adc.read( ) > 1500:

rgb[0] = (255, 0, 0)

rgb.write( )

教师提供教学支架,引导学生使用if单分支语句来完成“关闭补光灯”的算法与程序设计。此环节是if单分支语句的练习,旨在巩固新知,促进学习迁移,并为后续单分支语句转换成双分支语句提供条件。

教学环节五:引出新知,再探究竟

在此环节中,教师通过对比“打开补光灯”和“关闭补光灯”的if单分支条件,引出if双分支语句。这样对比学习直观清晰,易于学生理解。教师提问:“同学们,请仔细观察‘打开补光灯’和‘关闭补光灯’的if单分支条件,它们之间存在什么样的关系?”学生经过思考后回答:“它们是对立关系。”由此引出:在两个条件对立的情况下,可以使用if双分支语句来表示。接下来,教师引导学生使用伪代码和流程图来描述相应的语法结构。

学生解决此问题后,输出的程序代码如下:

if adc.read( ) > 1500:

rgb[0] = (255, 0, 0)

rgb.write( )

else:

rgb[0] = (0, 0, 0)

rgb.write( )

教学环节六:展示与评价

此环节主要展示学生的优质思路、方案、算法和程序,反馈存在的主要问题,并总结课程的主要内容。教师组织学生进行小组互评,对各组的作品进行评估和总结。

五、实施效果评价

笔者在学校的两个高中部均进行了课程教学实验。与仅使用教材项目内容授课相比,参与本课程的学生在课堂参与度、小组项目作业完成度以及实际代码编写能力方面均有较明显的提升。部分学生甚至能够主动结合程序设计,开展关于“智慧农场”的相关研究性学习,这充分体现了他们具备利用信息技术解决问题的能力。这些成果均达到了课程开发的预期目标。

[ 参 考 文 献 ]

[1] 中华人民共和国教育部.普通高中信息技术课程标准:2017年版[M].北京:人民教育出版社,2018.

[2] 张玉宁.基于计算思维的程序设计类课程教学实践研究[J].现代电子技术,2017(23):162-165,170.

[3] 李锋.中小学计算思维教育:STEM课程的视角[J].中国远程教育,2018(2):44-49,78-79.

[4] 傅骞,王钰茹.面向计算思维培养的编程教学研究:以高中生Python编程教学为例[J].创新人才教育,2019(3):47-54.

(责任编辑 黄春香)