APP下载

工程思维视角下的项目式学习构建策略研究

2020-08-24汤蓉

中小学信息技术教育 2020年8期
关键词:程序设计思维功能

汤蓉

项目式学习是近年来教学实践的热点之一。程序设计一直被认为是最接近信息技术学科思维本质的模块,在新版高中信息技术教材中Python编程所占比例更是大幅上升。笔者对江苏省姜堰中学、泰州市第二中学、南师附中、靖江高级中学等十多所高中的编程教学情况进行了问卷调研,统计结果显示:过去五年里,仅有27%的高中信息技术教师在编程教学中实践过项目式学习,环节流程设计也并不完整;大部分教师花费较多的时间在讲解基本语法语句上,实践任务内容单一,只针对高二学业水平测试涉及的零散知识点进行编程练习;学生除了感觉到程序语句的规范严谨,掌握几个知识点外,缺乏系统化、逻辑化的思维方式去思考和解决问题,对程序设计的意义和乐趣没有体会,往往望而却步、失去兴趣。因此在程序设计模块中,该如何落实项目式学习,成为亟待研究的问题。

项目式学习与工程思维的内涵及联系

所谓项目式学习(project-based learning,简称PBL)是指师生共同实施一个完整的项目工作,以项目为主线,以学生为主体,教师引导学生主动探索现实问题,获得更深刻的知识和技能。简单说,就是提出问题(老师提出或学生自己提出)并解决问题(学生设计方案和实施,常采用小组分工,合作完成)。项目式学习有两个关键点:一个引发活动的问题或难题;学生自主创造出一个现实成果来回答问题或解决问题。

而现实中的工程实施也是从实际生活出发,以价值为导向,以造物为实践目标。工程师对于工程活动的认识过程和解决问题中所采取的方式、方法,对于项目式学习中学生的思维方法具有引导和借鉴意义。所谓工程思维,从殷瑞钰、李伯聪等学者提出的工程本体论出发,是基于对工程自身结构、运作和发展规律的理性观察,从而认识、判断事物并筹划新的项目,着力于构建理想化人工系统的一种思维方式。工程思维要统筹工程与环境、与人类社会的相互关系,避免单纯从技术的角度考虑问题,因此,它与科学思维、技术思维既相互融合,又互有区别。

工程思维对于程序设计学习的意义

了解工程项目的设计思路和理念,用工程思维的方式引领高中程序设计教学,可以让学生站在一个软件工程师的角度,思考如何分析项目、设计方案,需要解决哪些问题等,把程序设计的知识点融入项目设计中,这种方式能真正激发学生的兴趣,使得学生带着问题学习,设计方案、解决问题,而不是生硬理解算法语句。

1.工程思维的全局观有助于形成系统化思维

作为工程活动的主体,工程师需要考虑工程与环境、与人类社会的相互关系,需要从系统论的视角,综合全面地提出问题,对工作步骤进行排序与调整,判断工作成果的优劣等,因此工程思维在项目起步的阶段就要大致构建出整个框架,然后逐步添加功能。而程序设计在动手编写代码之前,需要从实际应用的角度,综合考虑编程项目的功能和价值,逻辑化地思考方案设计。对于编程项目,线性思维往往是想到哪写到哪,中途某个功能或代码段的修改会导致很多工作推到重来。因此在编程学习中,首先要让学生理解工程思维的全局观,系统整体地思考问题,而不是一开始就设计变量、列表、模块化等小问题。

2.工程思维的实践观有助于提高自学能力

工程思维的目标是为了造物,工程问题大多不能通过单一学科理论解决,经常用到超前的学科知识以及其他学科知识,这些知识短时间内不可能有老师来教,甚至以后也没有人教,这就需要学生发挥自身的主观能动性,查阅资料,自主学习。在自学知识的过程中,让相关的未知知识与现有知识进行联系、类比,从各个角度、各个层次对项目功能和方案进行观察、分析和研究。因此,经历一个完整的工程项目,思维方式会发生质的飞跃,有助于培养学生的自学能力,开拓新思路。

3.工程思维的逻辑观有助于培养抽象建模能力

工程项目的实施需要将理论知识逻辑性很强地应用到生活实践中,借助于已掌握的理论知识展开想象、假设、推理和证明,通过甄别、联系、排除,从而筛选出能够应用到的理论知识,达到解决实际问题的目的。项目方案设计的过程,需要学生从具体丰富的信息中提取关键信息,通过对所选用的科学知识的计算、验证、比较,从而制定出符合实际的工程方案,并建立模型,这个过程就是培养学生抽象建模的能力,而抽象化思维也是计算思维的本质之一。

4.工程思维的回溯观有助于自我评价和反思

工程在实施过程中,需要借助技术知识对制定的工程方案进行模拟或实际操作,对科学知识再推理、证明、反问,常常需要回到上一步进行修改和完善,这是工程思维很重要的回溯特点。在编程项目中绘制流程图、编写代码的过程中,也需要有意识地对前面步骤进行推理和验证,对于不断出现的新问题,需要回溯到前面去修改功能、方案和代码,直到这个程序最终实现我们的应用需求。教师要善用测试、验证的步骤,来设计评价和反馈,及时促进学生的自我评价和反思,优化项目式学习的成果。

工程思维视角下,构建项目式学习的策略

用工程思维引领程序设计的项目式学习,首先要创设真实情境,让学生思考如何设计一个有实用价值的产品,考虑它的功能性、创新性、可执行性,然后设计方案,在项目方案执行过程中,再思考需要解决的问题。下面以程序设计中的函数一节,“钱包管理小助手——可以复用的代码”为例,具体阐述工程思维引领的项目式教学策略。教学流程如图1所示。

1.从真实情境出发,引入项目

工程思维是以创造价值、造物为目标的思维方式,這一点恰恰是传统教育教学所缺失的,因此教师在设计选择项目时,需要从学生的实际生活出发,确定符合实际需求的项目,创设情境,激发学生研究的兴趣,培养产品意识。

从生活中选取项目的出发点:(1)避免重复劳动的项目。从生活中存在的重复琐碎、经常要做的事情入手,如班上每天统计每门功课的上交情况、Excel中几个功能经常一起重复等,这时就可以把它开发为项目。(2)解决实际难题。要多了解学生,发现他们需要解决的生活中或身边的难题,这些感同身受的问题项目,会激发起学生的研究兴趣和创新意识。而这两类项目来源,都需要教师注重平时的积累和记录,结合学科核心素养要求,融合相应章节的知识点,从而成为好的项目式素材。

在“钱包管理小助手”这节课中,我通过校园不良信贷的屡屡发生,突出学生管理好零花钱的重要性来创设情境,从而提出设计一款能轻松管账的工具,解决零花钱管理的问题。同时演示智能音箱“天猫精灵”的便捷有趣,提出能不能优化智能音箱的功能,轻松管理零花钱。这样设计的目的在于激发学生兴趣,更能通过智能音箱的功能改进,培养学生的数字化学习和创新能力,并培养财商。

2.提出非良构问题,分析项目功能

工程项目中面临的大多是非良构问题,存在于具体的情境中,问题边界很难明确界定,需要对大量信息进行提炼抽象,抽取出关键因素,才能设计生成解决方案,方案也不是唯一的。非良构问题的开放度是项目分析环节的重点,教师在这个环节可以引导学生换位思考,从使用者的角度对产品功能进行分析,如在“钱包管理小助手”项目中,设置讨论问题:你觉得哪些设计可以帮助你管理好零花钱,做到心中有数?你希望“钱包管理小助手”具有哪些功能?引导学生,从众多信息和可能性中概括出自己想要的功能,并梳理表达出来,教师在小结时,要给出足够的开放性空间,不要界定标准答案。在对项目功能的梳理和提炼中培养学生的抽象思维和创新能力。

3.找出关键点问题,设计解决方案

教师设计项目式学习,必须运用与学生思考过程相反的逆向思维,即在理解学科大概念的基础上,结合每个单元的内容,找到其中隐含的问题,将问题置身于真实情境中,从而找到表现性任务。在项目设计环节,针对上一步提炼出的项目产品功能,教师要设计关键点问题,让学生讨论设计解决方案,并进行抽象建模,在这个过程中培养学生的计算思维能力。

如何找到项目功能中的关键点问题,在于将学生提出的功能梳理为几个方面,找到相通的关键点,结合本节的知识内容,转为进一步的表现性任务。如在“钱包管理小助手”项目中,梳理学生提出的功能,无论是超额提醒,还是查询账目,都要用到的关键问题是如何求已支出总额。针对这个关键点问题,让学生思考解决方案,设计代码。接着提出,每次要調用已支出总额,是否都要复制粘贴这段代码?如果修改要改几次?由学生思考,从而引出函数的作用之一,方便多次调用。整个方案设计过程,都是学生自己发现问题、解决问题,教师只作适当小结和引导。

4.重视程序的测试和完善,开展过程性评价

对于程序员来说,测试程序,发现bug,返回修改,是一个经常必须的步骤。教师要善于运用程序的测试,设计问题,培养学生的回溯思维习惯。如在“钱包管理小助手”项目中,主要程序编写完成后,由学生自己或者互相测试程序,发现程序bug:添加的金额没有保存到列表中,数据丢失。这时小组思考讨论原因,搜索解决办法,引出调用现成函数open。于是回到前面,修改完善流程图和程序,才实现了该项目的主要功能。这个过程性评价的设计与及时反馈让学生体验了工程思维的回溯思想,同时也说明,要开发一个好的项目,除了自己设计,也常用到别人共享的函数。从而真正理解Python作为开源软件的初衷:“君子不器,成己达人”“君子性非异也,善假于物也”。

工程思维为信息技术教学活动的设计提供了一个新视角,对于教学理论与学习实践的关系解答也提供了一种新的思维方式。但是工程思维同样存在局限性,价值取向和量化对于项目环节的引导作用要适度,了解工程思维的运行机制,积极导向,避免副作用的同时,才能更好地发挥出工程思维的建设性作用和实践价值。

参考文献

李伯聪. 努力向工程哲学领域开拓[J]. 自然辩证法研究,2019(7): 36-39.

赵致琢. 关于计算机科学与技术认知问题的研究简报[J]. 计算机研究与发展,2001(1): 1-15.

王荣良. 机器人教育与工程思维关系之研究[J]. 中国教育信息化,2008(24): 27-29.

猜你喜欢

程序设计思维功能
也谈诗的“功能”
思维跳跳糖
思维跳跳糖
思维跳跳糖
思维跳跳糖
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
关于非首都功能疏解的几点思考
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用