王荣良
● 认识思想实验
提起实验在科学中所发挥的强有力的作用,伽利略是功不可没的。伽利略凭借他独特的实验设计、高超的实验技巧,成就了一个又一个天才的实验,用实验事实推翻了亚里士多德2000多年的科学统治地位,具有划时代的意义。其中,比萨斜塔的自由落体运动实验,是一个经典的实验,当年伽利略登上比萨斜塔塔顶,将一个重100磅和一个重1磅的铁球同时抛下。在众目睽睽之下,两个铁球出人意料地同时落地,从而证实了亚里士多德关于“物体从高空落下的快慢同物体的重量成正比,重者下落快,轻者下落慢”的断言是错误的。
我们有理由猜测,伽利略在比萨斜塔做自由落体运动实验前,已经知道亚里士多德的观点是错误的。伽利略在1636年的《两种新科学的对话》中写道:如果依照亚里士多德的理论,假设有两块石头,大的重量为8,小的为4,则大的下落速度为8,小的下落速度为4,当两块石头被绑在一起的时候,下落快的会因为慢的而被拖慢。所以整个体系和下落速度在4~8之间。但两块绑在一起的石头的整体重量为12,下落速度也就应该大于8,这就陷入了一个自相矛盾的境界。所以,物体下落的速度应该不是由其重量决定的。
这也是一个实验过程,只不过与比萨斜塔所做的真实的物质实验相比,这个实验的整个过程是在人脑中完成的,通过推理来推进实验的步骤和过程。这种实验,称为思想实验。事实上,思想实验并不是伽利略时代才开始有的,在各种物质条件和观察设备缺乏的古代,思想实验所起的作用有时比物质实验还要大。随着现代科学理论的完善,思想实验的过程更加严谨了。
在当前的科学实践中,当现有的实验环境不能满足实验自身的要求时,实验者会在其自身的思维领域构建出一个条件似真的理想化世界,这个理想化的世界中包括了理想化的实验仪器、设备、实验环境以及符合要求的理想化的实验对象,在这个虚拟的环境中进行实验的处理以及应用逻辑思维整理和进行实验结果的验证。
因此,思想实验就是运用人脑思维而不是实物观察的实验过程,从已有且公认的经验事实出发,假设出一个现实中有可能无法实现的似真的环境,并经过一系列的推理推导出最终的结论,用来作为对某一理论的支撑和证明。
在教育教学过程中,有两种情况可以开展思想实验:现有的实验设备不能满足实验实施的需要,或实验的中间过程无法直接观察。前者如物理学的中原子核裂变,后者如程序设计,我们可以知道程序运行前的条件和运行后的结果,但是无法观察程序运行的过程。
● 思想实验的意义与特征
近代科学中所倡导的实验注重借助各种科学仪器,人为地改变自然条件,为种种现象的发生创造优越于自然条件的人工条件。但实验条件的改善,并不能否认思想实验的作用。开展思想实验的意义,并不仅仅在于规避实验设备的使用,更重要的是能够超越现有的物质条件,探索真理。
首先,开展思想实验,可以克服物质实验的局限性。在物质实验中,不可避免地会受到整个实验设备的制约,也会受到温度、湿度等实验环境的影响。在这种实验氛围和背景下,思想实验能够突破客观限制,减少实验花费,缩短实验周期,完成理想实验。
其次,开展思想实验,可以化具体为抽象,在思维领域中对事物的复杂性进行深入改造和纯化。在这样的过程中,无关紧要的环节被简化,无足轻重的条件被排除在整个实验之外,而实验中最为重要的部分可以得到强化并系统地利用与分析,凸显出最为本质、最为客观的规律。同时,思维逻辑可以得到进一步理论化和抽象化。
最后,开展思想实验,可以为旧理论的内在矛盾呈现提供理想情境,验证理论,提出假设,科学预测,同时催生新的科学理论。伽利略就是通过自由落体运动的思想实验,揭示了亚里士多德理论的矛盾所在,并为现代经典物理理论的诞生提供基础与假设。
从上述对思想实验的考察中,我们可以看到,思想实验是按真实实验的格式展开的一种复杂的思维推理活动,这样不必物化就可得到确定的结论。其思想操作包括以下几个层面:其一,对从未进行过的或潜在的可以实现的实验进行预想;其二,为形成理想实验,对真实实验进行理想化的抽象;其三,对现实中不存在、与经验相矛盾的现象进行逻辑、有意义的想象。
思想实验有如下特征:
首先,思想实验具有实验的可操作性。思想实验不是实际进行的实验,是头脑中的实验。之所以称之为“实验”,是因为这种思维活动是按照实验的格式展开的,有可操作性。
其次,思想实验具有严密的逻辑性。在思想实验进行的过程中,逻辑推理是它的基本工具,人们在构思思想实验时,可以根据自己掌握的经验和知识、当时的科学水平,就被研究的客体进行充分的联想,运用其逻辑思维联系有关的概念并进行推演。
在计算学科中,图灵机的诞生就是思想实验的一个案例。早在1935年,图灵就开始构思一台抽象的机器——理论上完成机械计算的机器,这种机器是一种想象的、能计算任何严格可定义的计算过程或算法的计算机,它按照事先设计好的指令或步骤把信息从一种形式转换为另一种形式,用于推理、计算。图灵定义了“计算”的逻辑基础,设想有一个可以左右移动的划分成小方块无限长的纸带、一个读写纸带的装置以及一个控制器所组成的机器,规定机器有四种操作:作出标记、改动标记、把纸向前推动、把纸向后推。一旦为这台机器制订以上四种操作的规则以后,图灵机就可以自动地一次扫描一个方块并且可以“读”或“写”某些东西,可以把所写的东西擦掉,可以一次将纸带向左或向右移动一个方块。当它达到某一点并完成其任务时,它会自己停下来。图灵机是一个虚拟的机器,图灵机理论提出之时,还没有真实的计算机,但是运用图灵机就可以模拟机械计算的过程和细节。图灵机的发明与执行过程是一个思想实验。图灵机是对计算的高度抽象,在对计算的基本逻辑进行定义后,它可以不依赖于物质的计算机而完成每一个计算状态的演算,从而提出计算机的基本结构和工作原理。
● 思想实验的建构方法
科学实验是人们为实现预定目的,在人工控制条件下,通过干预、控制科研对象而观察、探索科研对象有关规律和机制的一种研究方法。一份实验报告通常会包括以下7个部分:①实验目的;②实验原理;③实验环境和仪器设备;④实验步骤;⑤实验结果;⑥实验结果的分析;⑦实验结论。这7个部分,反映了科学实验的三个阶段:实验准备阶段、实验实施阶段、实验结果处理阶段。
实验准备阶段涉及实验目的、实验原理、实验设计、实验环境。实验目的是明确为什么而进行实验,是依据研究目标而定的,有的用于验证,有的是为了探索。实验原理是理论的逻辑起点,整个实验就是以此为依据的,若实验结果出现矛盾之处,理论也会受到质疑。实验设计是实验正确实施的关键,最能体现实验设计者的思想和智慧。实验环境是实验仪器、设备、材料的准备以及外部环境的要求。实验仪器、设备、材料的准备,表面上是一种纯物质的活动,实际上也渗透着实验者的思想,因为每一种仪器的选择与设计,都是以某一种理论为依据的。
实验实施阶段是实验者操作一定的仪器设备使其作用于实验对象,以取得某种实验效应和数据。这个阶段的活动是一种客观的物质活动,是对人们已有认识的检验,也提供新事实让人们认识。
实验结果处理阶段是对实验结果进行分析,排除实验过程中一些主客观因素对实验结果的影响,消除误差,得出正确的结果。
思想实验与常规的学科实验有着相似的过程。借鉴科学实验的设计与实施过程,我们给出思想实验5个基本要素——问题目标、思想工具、逻辑起点、实验细节、结论分析,从而形成思想实验的基本方法。
问题目标明确实验的目的,也是就思维的方向、一切的思想推演都是以此为目标的。思想实验没有物化的实验仪器,其思想工具主要是逻辑工具和学科工具。逻辑是思维的最基本工具,学科工具反映了思想实验所对应学科使用的基本学科方法。而逻辑起点正是规定了学科的基础点,也明确了哪些学科工具是可以在思想实验中使用的。实验细节是实验步骤的设计,也是运用思想工具进行推演的过程,这是思想实验中最核心、最精彩的部分。最后,结论分析是对思想实验的总结。
现在来看伽利略的自由落体运动思想实验。问题目标是明确的,要对亚里士多德的理论提出质疑。逻辑起点依然是运用亚里士多德的理论,即“物体从高空落下的快慢同物体的重量成正比”,这也是其学科工具,即“重的物体(H)比轻的物体(L)下落速度快”。其实验细节的设计是巧妙的,首先将两个轻重不一的物体H和L用绳子连起来,接下来由两个推演过程组成:其一,H+L应该比重的物体H下落速度快,即VH+L>VH>VL;其二,两个物体在一起时,因轻的物体L下落速度慢,较重的物体H产生拉力,导致VL 事实上,物质实验和思想实验并不是完全对立的。物质实验可以通过思想实验不断纯化,逐渐达到事物的本质。在每次的物质实验的实验结果处理阶段,实验者都会分析实验结论,对实验过程中的条件进行调整,从而使实验结果更理想。这其实也是一个思想实验的过程。同样,思想实验也可以通过物质实验来得到验证,伽利略的斜塔实验就达到了这样的目的。 ● 计算思维教育中的思想实验 思维能不能教,在学界一直有争议。有人认为思维不能教,有人认为思维教不会,也有人认为思维是不需要教的。作为知识教育,是先将隐性知识显性化,通过语言、文字、图表来表达,然后进行传授和学习。而开展思维教育,首先,遇到的困难就是如何将人脑中的思维表达出来。其次,一般思维技能的训练需要辅之以大量的具体知识,而这些知识的掌握是需要一定的时间、精力和能力开销的,也就是说,思维教育与知识学习是紧密相关的。 在中小学开展计算思维教育,同样也会遇到这些问题。笔者在《计算思维的方法观》(《中国信息技术教育》2016年第6期,总233期)一文中,阐述了这样一个观点,可以把计算思维用学科方法来物化,这样传授计算学科方法可以成为计算思维教育的一个途径。但是用计算学科方法的外壳,来表达计算思维,需要把握好一个度。过分强调方法细节,有可能关注了技巧而忽略了思维。 开展思维教育需要有一定的知识基础。计算思维教育需要相应的计算学科知识。然而,计算思维教育具体实施过程中需要哪些学科知识,还缺乏深入的研究。特别是计算学科的知识学习门槛高,对在中小学开展计算思维教育形成明显的障碍。 计算思维是跨接现实世界和计算机世界的思维。在没有出现计算机以前,人类面对的现实世界主要是一个物理世界,人们每天处理着大量的物理量,进行着生产、生活以及学习活动。有了计算机以后,计算机构成了一个独特的世界,它是按人的规定有限地反映现实世界,模仿人类处理现实世界的物理量,同时也构建了与现实世界不一样的时空观。我们把这个称为计算机世界,人类是按预设的目标要求,通过对现实世界的分析,来规划、设计、构造计算机世界的。在这个规划、设计、构造计算机世界的过程中,蕴涵着人的计算思维。从这层意义上说,采用思想实验的方法开展计算思维教育,比一般的思维教育有优势。计算思维是计算学科的学科思维,计算机是计算学科的代表物,运用和理解计算机的行为,可以帮助人们理解计算思维。 计算机相当于是一个“黑箱”。所谓“黑箱”,就是指那些既不能打开,又不能从外部直接观察其内部状态的系统。虽然是一个“黑箱”,不能直接观察计算机内部的每一步操作,但是计算机具有确定的、构造的自动化属性,具体表现为:其一,计算机的每一步操作是预设的,也是明确的,在相同的外部条件下,一定会按相同的操作步骤执行;其二,对于可计算问题,计算机可以在有限的时间内通过有限步骤得到运行结果,运行结果是可观察的,且在相同的外部条件下,获得的结果一定是相同的。这为思想实验的开展提供了便利。 计算机的“黑箱”特性给中小学生理解其机理带来了困难。但在不直接影响原有黑箱内部结构、要素和机制的前提下通过观察黑箱中“输入”“输出”的变量,得出关于黑箱内部情况的推理,寻找、发现其内部规律,实现对黑箱的控制,正适合于思想实验。 如下图所示,计算机解决问题的过程是“功能描述—形式化表达—计算机代码—执行结果”,即人们根据实际需要给出功能描述的形式化表达,然后编制程序代码由计算机运用得出结果。从计算机代码执行到结果输出,是计算机世界完成的工作,作为计算机使用者或学习者,在对功能描述形成形式化表达以后,一定会有一个预设结果,可以与计算机执行的真实结果进行比较判别,以确定计算机的运行是否符合预设的要求。那么,他是如何在计算没有执行的时候就有预设结果的呢?他一定是根据计算机的执行规律在大脑里进行了推演,即如图所示的“?”部分。这个推演过程就是思想实验的过程,并且其思想实验比伽利略的自由落体实验更容易获得验证,因为作为研究客体和工具的物化的计算机,可以重复多次运行。 对照思想实验提出的问题目标、思想工具、逻辑起点、实验细节、结论分析这5个基本要素可以发现,与一般思想实验不同,基于计算思维的思想实验具有思想实验的预设结果与计算机的执行结果的比较判别这样一个环节。因此,其关键点是实验细节的设计主要由推演设计和观察点设计两部分组成。推演是在逻辑起点和思想工具基础上完成的,功能描述和形式化表达是其逻辑起点,基本的逻辑演绎工具和计算学科工具是其思想工具,推演过程就是在大脑中完成指定的计算机执行过程。观察点是用于判断推演过程与计算机执行过程是否一致的参照点,其中,推演的预设结果和计算机的最终运行结果是最重要的观察点,但不一定是唯一的观察点。推演过程中,可以设计更多的观察点,可以有效地反映从功能的形式表达到预设目标实现的逻辑过程。因此,设计合适的观察点,是基于计算思维教育的思想实验的重要组成部分。 以下是一个关于程序调试的教学案例: 一个求100以内所有素数的VB程序,这个程序共有2个错误,要求找出这些错误。 Dim flag As Boolean, m As Integer, k As Integer flag = True Print For m = 2 To 100 k = 2 Do While k <= m If m Mod k = 0 Then flag = Flase k = k + 1 Loop If flag Then Print m Next m 以上程序含有的2个错误,都是用错语句或漏写语句,属于语义类错误或逻辑错误,VB系统不会给出语法出错之类的提示。教师提出了如下教学实施要求:①请学生复核求素数的算法;②针对Do While-Loop循环,演算程序执行过程是否符合要求;③针对For-Next过程,演算程序执行过程是否符合要求;④了解学生完成情况,适时引入“设置断点”的调试方法。 该教学过程的目标是找到程序中的错误之处,以取得正确的程序以及运行结果。其深层次的目标是对相关算法及程序执行过程的深刻理解,并培养学生程序调试的能力。程序调试是典型的人脑对程序的推演与计算机真实执行程序过程的比对过程。教师要求学生复核求素数的算法,就是为后面的推演建立逻辑起点。对于存在的逻辑错误,可以通过推演程序的执行过程,来查看每次的输出是不是符合要求的素数。在实际的程序调试过程中,引入了“设置断点”的调试方法,也就是设计合适的观察点,以便提高错误诊断的效率。 站在计算思维的角度,一个具备计算思维的人应该习惯于运用计算机科学的基本概念来思考问题、解决问题,其前提是清楚计算机是如何解决问题的,或者说计算机是如何“思维”的。尽管我们说计算思维是人的思维,目前的计算机还不具备思维能力,但清楚计算机自动、有序的执行指令,是把握计算思维的基础。程序调试是一种很好的手段,可以让程序调试者设想自己是计算机,对于给定的程序,计算机是如何按预设的计划执行。“断点设置”提供了一种有效的手段可以让计算机控制的程序执行与人脑中设想的程序执行同步。 ● 结论 围绕程序调试与纠错的教学,其显性目标是完成程序编写,形成正确的语言,学习编程。而隐性目标则有三:其一,提高编程技巧;其二,理解计算的原理;其三,培养计算思维。如前面所述,我们可以通过思想实验的方法来实现计算思维的培养。当然,程序的学习与应用不是计算思维培养的唯一场所,思想实验也不是只能在程序调试的学习中运用。 思想实验是依据真实的实验为模板而展开的一系列的复杂的思维逻辑活动。逻辑作为思想实验构成的框架,贯穿于整个实验的过程和结果,并且统一体现在实验过程和结果的逻辑表述。思想实验细节的设计,就是以具体的学科理论为起点,在逻辑框架下证真或证伪某一个学科观点。而相应的学科思维,则可以在整个思想实验过程中得到展开和运用。 思想实验的实施过程,是人理解计算机的执行过程,是人认识计算学科相关知识与理论的过程,也是计算思维的展示、运用以及培养的过程。因此,在教学过程中,应用思想实验的方法,可以更加突出思维的训练和计算思维的养成。