建构“结构”,让知识通达思维
陈英
● 寻根:厘清“关系”——让知识“辩”出来
李艺教授团队提出的“双基、问题解决、学科思维”三层目标模型,提供了知识与思维关系的可讨论的理论基础。三层目标模型秉承发生建构论知识观,在知识和思维间建立一致性关联,重点关注学生思维能力的发展,为信息技术学科的教与学打开了新的思路,知识与思维的关系问题也豁然开朗了。
1.从性质看,知识与思维是共生的
通俗地讲,思维是一个“念头”到“另一个念头”之间的连接。这些“念头”可以理解为对事物的概念、定义,即所说的知识。由此可见,知识和思维是共生的,知识是思维的基础,思维是知识的连接器。
2.从横向看,知识和思维是动态的
思维指向具体的“动作”过程,以逻辑的形式表现出来,与逻辑数学范畴相应;知识则是在思维发生过程中被改变并沉淀下来的状态,与物理范畴对应。在这个动态过程中,新旧知识间的转化需要思维活动来触发。
3.从纵向看,知识和思维是发展的
从纵向看,知识和思维是相互作用、彼此促进的。一方面,丰富的知识是思维发展的基础,能够为思维建模和设计思维方法提供可能;另一方面,思维能够反作用于知识,能够让人们驾驭知识。
● 究底:建构“结构”——让知识“看”得到
在厘清了知识和思维的关系后,需要明确如何将知识与思维打通?三层目标模型启发我们,要通过问题解决来贯通。再追问:问题解决如何发生?这时必须回归认知发生这个核心问题来寻找答案。认知心理学家皮亚杰认为,认知是在已有图示的基础上,通过同化、顺应和平衡等机制,不断从低级向高级发展的一个建构过程。图示是人们解决问题过程中产生的一种认知结构。至此,知識通达思维的路径清楚了,就是要建构“结构”,知识的发生是“知识的发生”与“结构的发生”的统一。
概念、定义属于知识层面,典型特征是高度抽象,所以我们的大脑无法直接用,如何让知识在大脑中运作起来?这就需要“思维结构”来加工,让知识“看”得到,设计一种“形式”,让思维可视化、形象化。知识到大脑中的思维隔着一个思维结构,这个思维结构是可设计的。那么反向追问:大脑中能装什么?什么能够被大脑理解和执行?——思维模型!大脑中能够被运用的是知识的简单形式,这种简单形式具有形象化、可视化、结构化几个典型特征。
知识通过设计就有了一个对应于大脑的思维结构,正是这个思维结构,把知识跟大脑里的思维联系起来。正是这种“结构”,将抽象的知识变得形象化、可视化,从而打通了知识到思维的逻辑链路,化繁为简,从而更好地驾驭知识。
● 剥茧:解密“群体”——让知识“导”出来
在弄清楚了结构在知识学习中的重要作用后,我们再将视线回归学习发生的主体——学生。此处,必须明确几个问题:①高中生认知发展有何特点?②高中生能够运用哪些高阶思维方法解决问题?③教师该如何因势利导,让学生学习事半功倍?皮亚杰的认知发展阶段论告诉我们,高中生处于形式运算阶段,思维以命题的形式进行。在高阶思维方面,能够运用推理、归纳、演绎等思维方法解决问题。
弄清高中生群体思维发展的特征和行为表现后,教师可以因势利导,以教学活动为载体,让高生不断体验“推理”“设计”“质疑”“建模”等高阶思维活动,并逐步培养学生自主、自动运用高阶思维解决实际问题的意识和能力,从而让知识学习插上思维的双翼,让学生真正驾驭知识。
● 实证:通达“思维”——让知识“活”起来
以上认识,可以落实到高中信息技术课程中。从抽象度而言,程序设计是信息技术课程中的代表性内容。程序设计教学内容具有举一反三、高度抽象、逐步求精等若干特征,在知识通达思维方面必须经历由易到难、由特殊到一般的循序渐进的思维过程,必须经历试错、顿悟的反复质疑的思维过程,必须经历从具象到抽象的建模的思维过程。本文以Python程序设计教学为例,运用“推理”“质疑”“建模”三种思维方法,寻找让知识通达思维的可能路径。
1.在“推理”中通达思维
多重循环历来是程序设计教学中的重点和难点。在实际教学中,有相当一部分学生不能理解多重循环的本质和执行过程,究其原因,主要是缺少“推理”的情境和“推理”的能力。因此,该知识点的教学,可以尝试“易—难”“点—面”“具象—抽象”的教学思路。
情境1:图形变变变(推理:易—难)。
情境2:图形变变变(推理:点—面)。在情境1的基础上,推理图形3如何实现,并列表模拟实现过程。
情境3:打印9×9乘法表(推理:具象—抽象)。(打印内容从具体的“*”变为变化、抽象的算式)
经过这三个情境的学习,学生的脑海中会形成如图1所示的这样一个“结构”。
2.在“质疑”中通达思维
质疑是思维的起点,在学生不断的“质疑”中,知识得到修正和丰富。因此,在日常教学中,教师要善于运用问题教学法,巧妙设置前后关联的任务群,以学生现有的知识系统为起点,设置认知冲突,让学生在不断解决“为什么”中掌握新知识,通达思维。该知识点的教学可以尝试“告知—发现”“排错—顿悟”的教学思路。
情境1:变量和数据类型(质疑:直接告知—主动发现)。
在学习程序设计时,变量和数据类型是基础性内容,但是,对程序设计初学者来说,还是略显困难。下面,比较一下两种教学方法(如下表)。在主动发现的过程中,学生会发生各种各样的错误,会产生各种各样的疑问,在这些疑问被一一解决的过程中,学生也水到渠成地掌握了该部分的核心知识。
情境2:变量类型转换(质疑:试错排错—明白顿悟)。
从一个错误开始
请输入要买的水果的价格:8.5
请输入要买的水果的重量:4
Traceback (most recent call last):
File "C:\Users\wwx\Desktop\01-helloPython.py", line 8, in
t=p*w
TypeError: can't multiply sequence by non-int of type 'str'
质疑:为什么报错?如何查看Python中的数据类型?
print(type(input()))
思考:怎么改?字符串—数值。
驗证。至此,在学生的脑海中,自然而然地能够形成如图2所示的思维结构图。
通过这个排错案例,学生不但掌握了Python中常见的数据类型,而且明白了类型转换的现实需要和实现方法。
3.在“建模”中通达思维
冒泡排序是基础编程教学中的难点,要想让绝大多数学生掌握其原理,并能够转化为完整的代码难度很大,所以,在学生学习过程中,教师要帮助、引导学生尝试建立该算法的“模型”,在“建模”中通达思维。因此,该知识点的教学可以尝试“启发—建模”的教学思路。
情境1:变量和数据类型(建模:引导启发—算法建模)。
启发1:体育课排队导入,讨论冒泡排序的基本思想方法:相邻元素,逆序交换。
实践活动1:创建一个数组a,存放2、1、3、4、5、6这六个数,从小到大排序(一轮)
实践活动2:数组a内数变为6、5、4、3、2、1这六个数,从小到大排序(五轮)。
启发2:如何从一轮排序(最好的情况)基础上,解决五论排序(最坏的情况)?
启发3:利用“支架”,分析过程。
启发4:代码能否优化?如何优化?(深度、轮次)。
启发5:九九归一,算法建模。
● 小结
知识和思维是一体的,知识的学习需要思维运作才能变得高效,在程序设计教学中,要重视建构“结构”的核心作用,尝试“推理”“质疑”“建模”等思维方法,让知识通达思维。建议教师将程序设计知识点以微项目的形式打散重构,并将项目系列化、纵深化。项目系列化、纵深化更为学生创造了运用高阶思维方法的时间和空间,在项目解决的过程中也培养了学生建构“结构”的能力。