APP下载

Processing在高中信息技术教学中的应用

2024-11-27王钰茹蔺洋赵敏

中国信息技术教育 2024年22期

摘要:信息技术教学注重对学生计算思维等核心素养的培养,Processing具有开源简洁、可视化反馈和应用广泛等特点,打破了传统编程工具的局限性,为高中信息技术教学提供了新的思路。本文根据项目学习相关理论,提出了Processing项目教学策略,该策略以学生探究活动为中心,包含情境创设、项目分析、任务探究、反思优化和总结拓展五个环节。同时,作者基于大单元教学理念,设计开发了Processing算法与程序设计课程,在高中信息技术教学中开展了实践,促进了学生核心素养、设计思维和创新实践能力的培养。

关键词:Processing;程序设计;计算思维;大单元教学;项目式学习

中图分类号:G434 文献标识码:A 论文编号:1674-2117(2024)21-0000-04

算法与程序设计是高中信息技术教学的重要组成部分,也是培养学生计算思维等核心素养的重要载体。《普通高中信息技术课程标准(2017年版2020年修订)》(以下简称“新课标”)提倡以学科核心素养为导向,在项目式学习中突出学生的实践活动,但传统的编程工具难以支持学生在有限的时间内创作出有创意的、功能丰富的编程作品。而Processing提供了对图片、动画和声音进行编程的环境,用户可以通过少量的代码快速生成视觉艺术、动态影像和互动设计等作品,其具有开源简洁、可视化反馈、应用广泛等特点,有助于培养学生的核心素养、设计思维和创新实践能力,能为高中信息技术教学提供新的思路。

Processing应用的可行性分析

Processing免费开源,支持Java和Python语言进行编程,代码简洁易懂,与高中信息技术中的“算法与程序设计”教学内容契合。Processing以视觉设计为主,学生能从可视化的运行效果中更直观地理解代码的功能和逻辑,发现并分析程序中存在的问题。此外,Processing以数字艺术为背景,可以用来制作各种视觉作品,也可以和多平台结合,创作各种艺术装置和公共空间的展览装置。

基于Processing的算法与程序设计大单元课程

新课标中提倡的应对知识内容进行重组式、结构化设计,其根本也是指向大单元教学。大单元教学是以大主题或大任务为中心,对学习内容进行分析、整合、重组和开发,形成具有明确的主题、目标、任务、情境、活动、评价等要素的结构化的教学设计,强调对单元逻辑的分析和厘清,指向学科核心素养和学科大概念。

1.课程内容设计

笔者在对粤教版《高中信息技术(必修1)》第三章“算法基础”、第四章“程序设计基础”,以及Processing相关内容进行分析后,将课程内容设计为“算法与程序设计”大单元,并划分为三个子单元和一个跨学科专题,三个子单元分别是绘图与动画、逻辑与交互、循环之美和运动模拟,各个子单元既有自己的主题概念,又相互之间紧密联系,层层递进。在每个子单元或专题下面,围绕单元核心概念设计1~3个项目范例,学生通过项目范例学习算法和程序设计的基础知识,并在项目设计和实施的过程中了解程序设计的一般过程,培养计算思维等核心素养。在完成各个子单元的学习后,学生将以小组合作的形式创作Processing作品并进行交流展示,综合运用所学知识开展项目合作,进一步激发学生的创新思维,培养学生的核心素养和创新实践能力。

在具体的课程内容设计中(如右表),子单元一的教学内容包含程序设计的基础知识、Processing绘图和动画的基础知识等;子单元二的教学内容以选择结构为核心,融入Processing鼠标和键盘交互;子单元三的教学内容以循环结构为核心,以列表数据结构为辅,引导学生体会数据结构和算法之间的联系;跨学科专题为综合性较强的一个单元,实现了编程和物理的跨学科教学,引导学生运用物理中的相关知识,通过编程模拟物体的直线运动、反弹运动、圆周运动等,设计实现跨学科项目。

2.项目范例设计

新课标指出,“基于项目的学习是指学生在教师引导下发现问题,以解决问题为导向开展方案设计、新知学习、实践探索,具有创新特质的学习活动”。在Processing算法与程序设计课程中,学生受到每个单元中项目范例的驱动,自主学习知识技能并应用知识解决问题、产生成果和创新。因此,项目范例的设计是学生项目学习的基础,应遵循以下设计原则:

(1)指向单元目标,层层递进

项目范例应以单元核心概念为引领,突出程序设计的核心思想和方法,同时注重知识点和难度的螺旋上升,由易到难,使学生循序渐进地进行项目式学习和探究。

(2)融入跨学科内容,拓宽视野

在项目范例中融入数学、物理、艺术等学科内容,让学生能够运用其他学科知识解决编程问题,或者通过编程辅助其他学科的研究学习,促进学生跨学科学习能力的培养。同时,通过跨学科项目让学生体会信息技术在不同领域的应用和价值,培养其对信息技术的兴趣和志趣,拓宽视野,激发创意。

(3)不宜冗长,反馈及时

学生能通过项目学习获得成就感,形成及时的学习反馈。因此,项目范例不一定要涵盖单元所有的知识点,一个单元可以由多个项目范例组成,使每个项目范例能在1~2个课时内完成。

基于Processing的算法与程序设计教学实践

在教学中,教师应注重引导学生通过对图形图像和动态交互功能的原理进行分析,提取项目实现所需的关键信息,并构建数学模型、设计算法、编程调试,让学生学会透过现象看本质,培养计算思维等核心素养。通过反复实践,笔者提出了Processing项目教学策略(如图1)。

1.情境创设

教师通过具体的项目应用情境和案例激发学生学习兴趣,提出本项目所要解决的问题。例如,在《运动模拟》一课中,通过中国台球运动员夺冠和AR台球辅助增强系统的视频,引导学生了解通过计算机模拟运动的具体应用,激发学生的学习兴趣,明确课程探究目标。

2.项目分析

在项目分析环节,教师需要从宏观角度引导学生对项目进行分析,找到问题解决的关键,实现问题分解,让学生学会由易到难解决复杂问题的方法,并形成系统思维。例如,在《运动模拟》一课中,教师提出问题:“要模拟小球的运动轨迹,需要知道哪些数据?”学生结合相关物理知识,通过讨论和分析,提出模拟小球运动轨迹需要知道的影响因素,并进一步根据影响因素和运动轨迹对问题进行分解:①根据影响因素分解——不计摩擦力,无能量损失;考虑能量损失;考虑摩擦力;②根据运动轨迹分解——水平方向运动;斜方向运动;碰到边界反弹。

3.任务探究

在任务探究环节,教师需要设置层层递进、循序渐进的探究任务链,并结合图示和启发性问题引导学生不断对问题进行分析,抽象提取出问题解决的关键特征,采用合适的数据结构组织数据,并构建合适的数学模型,设计算法、编程调试。同时,教师需要为学生提供相关的学习资源以支持学生的探究活动。例如,在《运动模拟》一课中,可设置如下探究任务链——模拟1:水平反弹(假设:不计摩擦力,无能量损失,水平向右击球);模拟2:任意方向反弹(假设:不计摩擦力,无能量损失,任意方向击球)。

对于“模拟1:水平反弹”任务,设置以下启发性问题和运动过程分析示意图(如图2):

Q1:绘制初始位置的小球,需要知道哪些数据?

Q2:假设小球运动速度是5像素/帧,在第1帧的时候,小球的位置坐标x和y分别应该是多少?在第2帧的时候呢?

Q3:假设上一帧小球的位置坐标是(x,y),那么当前帧小球位置坐标应该是多少?

Q4:小球碰到边界时会怎样?有哪些变量的值会发生改变?如何改变?

在启发性问题的推动下,学生逐步构建起数学模型并设计算法、编程调试。

进入“模拟2:任意方向反弹”,小球状态的改变将涉及两个方向(x方向和y方向),需要运用到物理学中运动的合成与分解,即运动可以分解为两个或多个互相垂直的直线运动,这也是物理学中研究较复杂运动的一种常用方法。为让学生更好地从水平运动过渡到任意方向运动,可设计启发性问题引导学生先思考垂直运动的特点,通过比较水平运动和垂直运动的异同,再进一步推理构建出任意方向运动的数学模型,并在水平反弹程序的基础上进行修改,编程调试。

对于“模拟任意方向反弹”设置以下启发性问题和运动过程分析示意图(如图3):

Q1:如果小球在竖直方向运动,其运动过程中每一帧的数据如何变化?和水平运动相比有何异同?

Q2:在台球比赛中通常是任意方向击球,当小球向任意方向运动时,其运动过程中每一帧的数据如何变化?

4.反思优化

学生在进行探究活动的过程中,不可避免会遇到问题,这恰恰是学习最有价值的时候。教师在巡视指导的过程中,发现学生存在的问题,并将问题共享,组织学生进行讨论、分析和质疑,引导学生思考问题解决办法,并进一步通过相关学习资源引导学生探究新知,实现更高阶的任务。例如,在《运动模拟》一课的教学中,学生开始时并没有意识到小球的位置坐标和速度都是全局变量,导致在程序运行时报错。这时,教师组织学生讨论错误产生的原因,并给学生提供“全局变量和局部变量”的学习资源,引导学生优化代码,解决问题。再如,程序最开始并没有考虑小球的半径问题,导致小球运动时有“出界”的问题。这时,教师组织学生讨论优化方案,修改边界判定阈值,组织学生交流展示。反思优化环节和任务探究环节是相辅相成、循环促进的,是实现对学生计算思维培养的重要过程,能让学生对问题的分析更加透彻、对知识的理解更加深刻,同时也有助于培养学生的批判性思维和问题解决能力。

5.总结拓展

在总结拓展环节,教师引导学生总结本课所学,交流项目中遇到的问题及收获,并提供相应的拓展任务,让学有余力和感兴趣的学生继续深入探究,如在《运动模拟》一课中,笔者为学生提供了“落体运动”和“圆周运动”两个拓展任务。此外,教师也可为学生提供计算机模拟运动的其他场景,包括运动模拟在物理、数学和社会研究等领域中的应用,让学生认识到用计算机进行模拟仿真实验是进行科学研究的重要方式,拓展学生的视野,进一步激发学生对计算机科学的兴趣。

结语

充分利用Processing的开源简洁、可视化反馈和应用广泛等优势,开展高中信息技术算法与程序设计教学,有助于提高学生的学习兴趣,实现学生思维的可视化,促进学生计算思维等核心素养的培养。此外,Processing丰富的功能和完善的学习资源也能支持学生开展更加个性化的项目实践,融入跨学科学习内容设计制作富有创意的作品,有助于培养学生的设计思维、审美趣味和创新实践能力。

参考文献:

崔允漷.如何开展指向学科核心素养的大单元设计[J].北京教育:普教版,2019(02):11-15.