面向真实场景的编程项目式教学实践与思考

2022-12-26 10:04吕红专吉林省四平市教育学院
中国信息技术教育 2022年24期
关键词:编程解决方案植物

吕红专 吉林省四平市教育学院

编程教学容易激发学生的学习兴趣,但随着学习的深入、难度的增加,学生容易产生知难而退的想法,而项目化学习有助于将兴趣与学习动机建立联系,通过发现问题、分解问题等帮助学生克服畏难情绪。面向真实场景的编程项目式教学将学生置于问题解决的过程之中,能让学生学会使用信息科技的概念和原理解决问题,进而培养学生的计算思维能力。下面,笔者结合实践谈一谈面向真实场景的编程项目式教学的价值和教学模式。

● 走向计算行动:编程教学的现实需求

从20世纪80年代的程序设计热开始,人们就将眼光聚焦在编程教学上。但以前的中小学编程教学过多地强调了代码本身,强调要打好学生编程学习的基础,导致编程主要聚焦于让学生理解编程的细节要素,如变量、循环、条件、并行、运算符和数据处理等。这种“打好基础后再应用”的想法容易让学生感觉编程学习枯燥乏味(感受不到编程学习的价值与意义,即不能运用编程解决真实世界的问题)。美国迈克·蒂森鲍姆等人提出了“计算行动(computational action)”思想。计算行动是一个新的编程教育框架,提出在学生学习编程时,通过将编程教育置于与学生紧密相关的现实世界中,从而让更多学生更加乐于参与到编程的学习中来。

“计算行动”就是要学习者自我驱动解决真实问题的编程教学样态。但这种以学习者为中心的编程教育,需要重新审视如何为学习者提供支持。教师要在没有预设解决方案的复杂教学环境中从容应对各种生成性问题,要引导学生自己发现解决方案,而不是直接给他们答案。通过自主解决真实问题,学生参与了有意义的项目式学习,而不是预先制订好的编程练习。

● 编程教学面向真实场景的价值

编程教学中最为重要就是提供真实场景,那么,面向真实场景对于编程教学有何价值与意义呢?编程项目式教学使用真实生活场景有如下优点:①保持学习者的中心地位。过去,信息是“推”给学生的,但现在转变为让学生根据需要“找”信息。真实生活场景是一个沉浸式的场景,学生需要在真实问题解决中学会自己寻找信息、提出解决方案和进行评价。②知识保持能力增强。引入真实的生活场景能够很好地实现深度学习效果,学生更容易形成深度记忆,知识的保持能力增强。③立即应用知识。真实的生活场景将学生置于真实问题解决的过程中,使学生能够在日常生活中轻松、直接地应用技能和知识。④学会问题解决。学生通过真实的生活场景提出问题,并聚焦驱动性问题。驱动性问题具有支架和导向的作用,通过驱动性问题可以确认核心任务,有助于学生结合已有的知识储备经验和习得的核心知识解决问题。

● 面向真实场景的编程项目式教学模式及案例

面向真实场景的编程项目式教学主要通过真实生活中的问题解决,帮助学生理解编程的概念与原理,学会利用编程解决问题。学生在完成编程项目的过程中,以真实问题为起点,经历发现问题、分解问题、提出方案、迭代优化和思维拓展等具体的实践过程。笔者根据日常教学研究,归纳了面向真实场景的编程项目式教学模式,如下图所示。

下面,笔者以“智能植物监测系统”项目为例详细地讲解面向真实场景的编程项目式教学过程。

1.根植真实场景,发现问题

无论是项目式学习的概念还是项目式学习的黄金法则,都强调了“真实性”这个要素。真实场景会使学生产生学习内容的相关性并学会自主学习、主动学习。因此,教师需要从学生的真实生活经验入手,遴选真实问题,才能激发学生的学习动机。长期离家后植物无人养护是学生关心的问题,因此,笔者提出“智能植物监测系统”项目,鼓励学生从这一真实生活情境出发,发现问题并进行调研和分析问题。

2.确定驱动问题,分解问题

驱动性问题是学生探究的兴趣点,通过真实的问题设计可以让学生看清问题的本质(确认核心任务)。在确定了驱动问题之后,还要对问题进行细化分解,形成结构化的子问题任务。“智能植物监测系统”项目的驱动问题是“如何确保家里的植物健康成长”,由此聚焦核心任务,即设计一款智能植物监测系统。然后对驱动性问题进行解构剖析,即分解问题,形成问题链(需要链接问题与知识之间的关联,逐步完成目标)。

3.编程算法设计,提出方案

该环节要通过小组协作的方式形成解决方案,根据子问题进行功能实现与算法设计。学生需要思考参数如何确定、应用哪些控件编写程序、需要用到哪些硬件等问题。教师要引导学生系统化地分析问题,持续探索,反复迭代,优化程序,培养学生设计编程算法解决问题的能力。

4.验证算法程序,迭代优化

学生在验证调试的过程中会不断地进行纠错和优化,以实现解决方案的升级。“智能植物监测系统”项目中可能会发现新的问题,如不同植物的生存条件不一、不能根据植物的特性调整参数等。有的小组想到采用智能植物牌详细记录植物信息,将植物的生存信息挂置在花盆处,然后根据植物信息管理植物的方法。

5.分享交流评价,思维拓展

最后,教师要及时进行评价。教师可以通过项目成果展示和答辩等形式进行分享评价,以促进学生反思能力的发展,从而实现深度思考。

● 教学效果与反思

1.学生能够进行“有效的学习”

学生在完成项目的过程中需要根据以往的知识和客观规律去思考方案,需要经过“试错—改错—总结”才能学会使用工具,需要通过查找书本内容、上网查找解决方案或阅读“操作指南”才能找到解决方法,而不是传统灌输式地接收知识,学生无时无刻不在进行着“有效的学习”。

2.形成问题解决的逻辑思维

编程过程与在生活中解决问题的思路相似。当遇到问题时,首先分析所要达到的目标,其次思考为达成这样的目标需要解决什么问题,最后开始实施。通过这一过程可以帮助学生形成问题解决的逻辑思维,有助于其他生活问题的有序解决。

3.培养学生的工程思维

工程师最大的特征是具有模块化的系统思维方式,他们擅长将复杂问题进行分解,也擅长将其综合解析。将复杂问题分解成子问题与子结构被称为“解构”;经过对子问题与子系统分而治之,找到各部分解法后加以综合,这种方式被称为“建构”。在接收到教师布置的项目时,组长把任务分解成多个子任务,通过分工团队中各个成员需完成“解构”后的子任务。之后,小组交流合作把子任务的各种解决办法进行综合,形成具有科学性和逻辑性的解决方案。不同小组形成的解决方案可能不唯一,因为工程思维具有容错性,可能存在一个子任务的解决方案是错误的,这时需要小组中其他成员发现错误,并反复修改。

4.实现跨学科知识综合应用

学生在完成编程的同时,也学习了其他学科的知识,即以程序目标为索引,对跨学科知识进行综合应用。

● 结束语

在编程教学的过程中,教师需要结合课堂实践经验和学生的实际水平不断改进教学方法,以平衡学生畏难的心理与深入学习之间的矛盾。面向真实场景在编程教学中应用项目化学习,以问题为主线,以技术操作为暗线,实现了从关注技能操作层到关注思维层面发展的转变。它从真实的生活问题出发,激发了学生的内驱力,通过问题链启发思维,实现了学生高阶认知的建构,并通过主动分析问题、合作探究分解任务、用计算思维的方式解决问题,培养了学生的信息技术学科素养。信息科技课程的不断发展也对教师提出了更高的要求,教师只有时刻保持学习的态度,乐于接受新鲜事物,学习新工具,才能将教育做成一门艺术。

猜你喜欢
编程解决方案植物
解决方案和折中方案
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
简洁又轻松的Soundbar环绕声解决方案
纺织机上诞生的编程
哦,不怕,不怕
将植物穿身上
植物罢工啦?
植物也疯狂