学生的拉车和看路

作为老师,一半的时间在看路,一小半的时间在教书,剩下的时间在拉车。由于技术上的积累已经比较多,概念上的积累完全可以和看路结合起来(纯粹概念上的积累的事情已经很少做,尽管我还是做,也喜欢做),并且有学生帮忙拉车,于是可以多看看路。

但是,学生呢?

技术上有很大的鸿沟需要跨越,而且是通过做中学的方式来跨越;概念上的积累倒是可以部分地依赖于课程,但是同样需要在运用中理解,否则就不是真的理解。没有研究经验、技术方法、知识和理解上的积累,看路也是迷迷糊糊。那就不看?

学生就是拉车的牛,路走得多了也就学会了走路?

一个学科的思想、发展方向,这个学科的基本问题、大的根本性的研究问题和对这些基本问题的回答,这些,都不看了?

要看的话,什么时候来看,什么时间来看?这是个问题,我仅从自身的经历来尝试回答一下。

在本科的阶段(高中的时候看过的《从一到无穷》之类的,不成系统,就不算了)看了第一推动丛书的几本(尤其记得这几本:数学:确定性的丧失 可怕的对称 终极理论之梦 时间之箭),也许因为本来就爱物理,被其中的物理的美和伟大的梦想深深地吸引。后来按照裴寿镛老师的推荐看了Feynman的系列小册子(《别闹了Feynman》、《物理定律的特性》、《光和物质的奇异性》等等),按照杜婵英老师的推荐看了《混沌:开创新科学》。还有自己找的《物理学的进化》、《数学模型导论》等等。现在仍然记得当时心潮澎湃,感叹为什么不早生100年(Schwinger还是谁说每一代的物理学家都这样感叹),还有那份雄心壮志。其中Bender的《数学模型导论》有关于什么是科学和什么是数学的深刻的思想。

这个阶段的看路,主要是体会物理学是什么。专业书籍里面算的上看路的,是一条道的,倒是看的不多。也就Feynman物理学讲义一列算是道,尤其是《力学》和《量子力学》那两卷。其实Landau的书也算是道,可惜当时没有看,后来上了研究生才看的《力学》。Dirac的《量子力学原理》倒是断断续续看过,可惜Von Neumann的《量子力学的数学基础》直到博士快毕业了才认真看。喀兴林的《高等量子力学》把基础概念部分讲的非常好和Ballentine的《量子力学现代教程》除了基础概念讲得好,还提示你思考量子力学的解释。《Speakable and Unspeakable in Quantum Mechanics》(仅看了其中几篇)讨论了量子力学的基础。这些让我们思考物理学是什么的科普书籍、专业书籍、论文,我都看作是看路的一部分。偶然看到的《大自然如何工作》打开了一扇窗户,展示了复杂性和涌现性的一角。

后来,当了老师,重新把广泛阅读捡起来,看了《如何看一本书》、《Learn More, Study Less》、《科学研究的艺术》、《Mathematics: A Very Short Introduction》、《Complexity: A Very Short Introduction》、《Learning, Creating, and
Using Knowledge》,并且整理了这些年看过的好书,主要是教材类的,见工具、课程与学习资料。现在,顺便也就整理一下教材以外的对我的科学观具有重要影响的书籍。这样做的潜在的期望就是能够对学生有用。

可以,问题来了,一直在拉车的学生,会停下来看看这些激发思考、深化思想,但是没有什么直接用处的书吗?

从这个角度来说,很有必要开设一门读书的课:阅读跟这个学科的大图景相关的书籍,然后参与讨论。在这样的课程建立之前,只能希望学生能够自己主动去看看这些包含了大量的思想财富的书籍了。

编程的学习

必要性:当你对世界的运行有一个猜想或者理解的时候,你想检验一下;当你有这个世界运行的数据,你想发掘一下;当你有一个问题没法解析求解,你想大概看一下,你都需要运用计算机,而且通常是自己编程,来解决问题。

这个时候,最重要的是学会像计算机语言一样思考问题。具体来说,反映在面向过程编程上就是:知道流程的每一步,程序–想象成你自己–会面对什么数据什么情况,下一步做什么,尤其是所有流程控制的关键点。反映在面向对象的编程上面,就是要把问题转化成为对象和对对象的操作来解决。要搞清楚什么时候创建对象,什么时候改变对象的状态,用户做什么会激活这些创造对象和改变对象状态的事情。

这个像计算机一样思考回到传统的编程的时候你熟悉的语言就是画出流程图,以及搞清楚对象的抽象接口。

具体到语言的学习,不同的语言有不同的优势。可以考虑利用C语言来做科学计算和核心计算分析模块,利用Python来做字符处理、组装程序,用R语言来做统计分析,利用shell语言来做组装程序、输入输出和增加程序灵活性的控制。了解大量的程序包,并且熟悉其中的一部分。例如,所有的矩阵运算可以考虑lapack,傅立叶分解可以利用FFTW,一般积分插值等数值计算可以用gsl等等。

算法,语言本身,只要不是开创,是很简单的事情,通过编写一两个程序,也就学会了。进一步,我们不是真的计算机科学家,因此,算法方面,大多数时候,应该站在巨人的肩膀上,用其他人开发好的程序库来实现。语言本身大概包含程序的基本结构、数据类型、流程控制,库函数。前面的三个几个小时编一两个程序就能学会。后面的,用到再学,先大概浏览知道有哪些功能即可。

学会像计算机一样思考,了解语言和程序包之后,就需要开始写程序。写程序需要有良好的习惯和风格,例如变量和函数的名称要有意义,利用好注释,本功能拆分成尽量独立和能重用的子程序。缩进、大小写尽量保持一致。

当好科学家不是一件容易的事情,你希望各种理念和工具上,都走在世界的前面。

关于数学和科学理论与现实的关系以及学习方法的对话

从讨论对某些网络上的几何量的定义开始,我和一个学生做了下面的对话。这个对话不是完全忠实的记录,但是主要的意思没有变。

问了学生这样一个问题:给定一个人的身高数据,并且从中能计算出平均值和均方差,你能告诉我什么?

学生答:我给出一份报告上面写着均值和方差,如果有必要可以给出更高阶矩的值。

问:如果你的老板非常聪明,但是没学过统计学,不了解拿到均值和均方差的含义怎么办?例如你的老板在考虑设计一个梯子,需要最短最长的数据,为了够着一个长度为3m的东西。

答:不知道,还是给均值、方差,以及各阶矩,然后说明一下:均值表示平均身高,方差表示离散程度等等。

问:这是不足以用来做决策的,怎么提升报告和所面对的任务的直接相关性?

答:不知道。

问:举个例子,一把弹簧秤,一块豆腐,经过一套程序(把豆腐挂钩上,然后读数),可以得到一个叫做豆腐重量的东西。如果现在有人来买豆腐,你怎么办?

答:取一块豆腐,称重量,乘以单位重量的价格,然后收相应的钱。

问:为什么以上定义的重量可以这样用?如果我想知道这块豆腐的热量和各种营养成份,怎么办?

答:不知道为什么可以这样用。但是热量和营养成份的计算也是重量乘以相应的单位重量的热量和单位重量营养成分含量百分比。

问:实际上,这里能够用来计算应付款、热量、营养成份,都是因为重量反映了这块豆腐里面物质的量的多少。也就是说,准确理解了定义,以及对这个定义将来有什么用,也就是用在什么样的具体问题中有一个认识,是能能够把“重量”用在以上三个不同地方的原因。并不是因为有人告诉你可以这样用,才用的。具体的应用还有好多其他地方,例如还可以放到“月球”上去压宇宙飞船(这个更深刻,需要理解质量和重量之间的关系,以及造成这个关系的原因)。现在回到身高均值和方差的例子,给老板一个怎样的报告?

答:没有很好地理解重量实际上反映了物质的量,是不能灵活和迁移运用的原因。那么,也就是说,没有很好地理解均值和方差的概念。

问:不仅仅如此,还有不理解整个这两个统计量背后的假设的原因。这个统计者先假设人群的身高符合高斯分布。接着,如果能够从样本均值和样本方差估计真实群体的均值和方差,那么随便遇到一个人,其身高介于均值和左右一个标准差之间的概率是68%,左右三个标准差之间的概率是99%,这时候如何写报告?

答:从样本均值和样本方差计算出群体的真实均值、真实方差,并给出计算结果的置信度,然后报告,99%的人身高介于均值 ± 三个标准差之间,68%的人身高介于均值 ± 一个标准差之间。

问:前后两份报告,差别在哪里?

答:前者仅仅知道均值、方差的定义;后者明白这个统计的基本假以及熟悉高斯分布。这个时候聪明的老板拿到这个报告,就知道,如果需要覆盖大约,例如99%,的人的需求,则梯子的设计长度是多少。

问:什么原因造成这个差别?

答:前者为了学习定义而学习定义,后者思考运算和定义的假设和动机,并思考将来可能的应用。

问:这种差别又时如何造成的?

答:前者为了学习数学而学习数学,为了学习理论而学习理论。后者在深刻理解概念的同时,关心概念提出的动机以及可能的与现实的联系。

总结:也就是说,后者一直企图把理论和定义与现实联系起来(或者间接地通过其他概念与现实相联系),而前者就是简单地记住定义。本质上,后者是科学家——理解定义,思考其与现实的可能联系与检验;前者是被动接受定义,最多了解一下其他人如何使用这个定义。本质差别是:
是否明白科学就是企图找到现实的数学结构;
是否明白科学理论的最终检验标准是现实(实验与实践);
学习的时候是主动地寻找知识之间的联系,知识与现实之间的联系,还是被动接受知识。

对最后一条的补充说明:在上面的例子里面,对均值和方差与高斯分布的联系的理解是深刻认识的基础,从而也是应用与现实的基础;对物质的量的深刻的理解是应用于现实的基础。另外,思考如何与现实相结合的问题,也促进我们对概念本身的理解。因此,我们看到,对知识本身的理解和对把知识联系到现实,这个两个方面是相互促进的。

吴金闪团队各方向研究生培养目标和要求

本研究小组包含非平衡量子统计、博弈论、科学计量学、汉字学习以及更一般的学习和网络科学几个方向。其中科学计量学、汉字学习等实际上是网络科学的思想和方法(主要是网络思想,尽管不限于)在具体问题上的应用。

各个研究方向看起来差别较大,实际上都是在讨论,一个包含多个相互作用个体的整体,如何研究以及这样的系统的共性和特性的典型行为。

无论在哪个方向上,硕士研究生的基本目标是给学生一个机会来尝试科学研究——思考科学问题,面对问题,提出解决方案并实现。在这个过程中学会思考和学习,并且在可能的情况下发展自己的兴趣,找到自己的人生目标。博士研究生的基本目标是深入了解一个领域,在这个领域內提出问题,思考问题,并解决。会学思考、学习和创新——想他人没想过的问题、解决他人没有解决的问题。同时,对其他领域也有一定的了解,或者具有了解的能力(学习能力)和欲望(求知欲)。

硕士和博士的区别仅仅在于:硕士可能在老师的指导下工作,博士需要你来独立工作,并且有的时候指导你的老师。

以下是具体方向的要求和目标。各个课程的学习材料可以在系统科学人网站上看到。等有时间,给每个学习任务加上一个有关学习材料的注。不过,推荐的不一定就合适,适合你自己的才是最合适的。

  • 非平衡量子统计
    1. 学业基础(前置要求):微积分、线性代数、力学、理论力学、一门编程语言(最好C或者Python)、数值计算(最好有)、外语阅读和写作(最好有)、量子力学(最好有)、统计力学(最好有)。
    2. 学业要求:数值线性代数、数值微分方程、Monte Carlo方法、高等量子力学和高等统计物理(实际上高等和初级之间没有思想上概念上的区别,区别仅仅在具体内容而已,如果初等的没有学过,那就一起学)、并行计算。
    3. 目标:了解量子统计领域科学研究的大图景,形成自己的品味,有能力自己去选择甚至提出问题,并运用解析推导或者数值计算来尝试解决。
  • 网络科学(包含科学计量学、汉字结构与学习、学习理论、网络奇异值理论等)
    1. 学业基础(前置要求):微积分、线性代数、一门编程语言(最好C或者Python)、外语阅读和写作(最好有)、数学模型(最好有)、一个专业领域(例如科学学、语言学、社会学、神经科学等等,最好有)。
    2. 学业要求:数值线性代数、Monte Carlo方法、网络科学的思想和基本概念及其计算(自己编程尝试一下计算,加上运用igraph等网络分析软件——有那么一天你可能要自己来开发一个计算模块的)。
    3. 专业方向要求:在科学计量学、汉字学习、学习理论等领域做有指导的大量阅读,了解研究大图景,把问题科学化、数学化。
    4. 目标:深刻体会网络思想——同时考虑直接连接和间接连接的效应,了解网络科学研究的概貌,熟练自发地运用一些网络分析的工具,在某个领域内运用网络思想提出并解决新问题,同时有可能的时候在具体领域研究的基础上发展网络分析的概念和工具。
  • 博弈论
    1. 学业基础(前置要求):经济学原理(最好有)、博弈论(最好有)、普通物理学(最好有)、一门编程语言(最好C或者Python)、外语阅读和写作(最好有)、数学模型(最好有)。
    2. 学业要求:Monte Carlo方法、igraph网络分析平台、Otree博弈实验平台、在博弈实验研究方向上做有指导的深入的广泛的阅读,了解整个领域研究的大图景,对心理学和神经科学的相关研究具有一定的了解。
    3. 目标:博弈研究的最终目标是探索和构建一个理论来解释人类在面对利益相冲突的多人的情况下的选择行为。学生需要在这个大方向上挑选合适的小问题、小情境来研究。同时这样的小问题又能够回馈到大图景之中。社会科学的研究比自然科学的(科学化的而不是仅仅理念或者甚至感慨)研究要更加困难。

注意:吴金闪非常sharp(尖锐,聪明,快?),有的时候不能很好地体会想的比较慢的人的思想和心情,会着急。这个时候你不要怕,坚持你自己的想法,想办法让他明白你不是没想没有做,就是有点慢。Bohr是一个非常慢的人,他的学生都比他快,但是Bohr不仅自己是一个伟大的物理学家,他的很多学生都是。Landau是一个很快的人,只有他自己是杰出的物理学家。因此,快慢,是否sharp不是问题,理解的准确性和深刻程度、创新性,还有执着,才是成就一个大科学家的特质。一个充数的研究者不需要这些,只需要学会依样画葫芦就够了。我们不培养这样的。

哪里系统科学了?

第一、我们研究的系统,由于相互作用的存在,个体行为和整体性为之间没有直接的对应,会出现整体运动模式这种涌现现象。不同底层结构的系统可能会涌现类似运动模式,不同层次的现象有不同层次的规律,这些问题,都是系统科学关心的典型问题。

第二、在我所要让你体验的,然后希望你自己学会的,而不是我教会的,问题描述和问题解决,以及学习方法上,我都非常强调概念地图这个工具。把一个问题的核心概念提炼出来,然后找出其中的相互联系,画成一张关系图,这是深刻认识任何系统的第一步。当然,概念地图如果要真正成为系统科学的一部分,我们还要研究得到这样一张图之后,有什么分析方法能够帮助我们解决问题,而不仅仅是利用这张图来描述问题。这个问题,有待于进一步研究。

从这个角度来说,网络就是简化了的概念地图——关系的特质消失了只留下了关系是否存在这个信息,或者有的时候有关系的强度,而没有概念地图中丰富多样的关系。但是,惟其简化了关系,我们才能有更好的可计算性。能不能发展概念地图上的可计算性呢?有没有合适的(比网络结构丰富又是比较简单的概念地图)问题来作为发展这个可计算性的基础呢?其实在思考这个问题的人,不仅仅是吴金闪(JOHN BOARDMAN and BRIAN SAUSER, SYSTEMIC THINKING:Building Maps for Worlds of Systems,DAVID N. HYERLE and LARRY ALPER; STUDENT SUCCESSES With THINKING MAPS:School-Based Research, Results, and Models for Achievement Using Visual Tools;Dov Dori, Object-Process Methodology)。

为什么一定要让你自己学?

我相信“做中学”,相信理解了的内化了的知识才是自己的,是自己的才能用来解决新问题,才能帮助你提出新问题。老师可以提供帮助,例如给你一个起点,一个大图景的介绍,一些供你学习的资料,回答你的一些问题(而不是所有)。

“被迫”写的自传

没什么见不得人的,正好分享一下。供学生们参考。

吴金闪自传

1977年11月30日出生在浙江省兰溪市张坑乡上吴村。父——吴迪平和母——黄云弟都是农民。我的父亲识字不多却喜欢给我读《杨家府演义》和《说岳全传》。现在想起来,见识不广,却每每胸怀天下。我的母亲是我们家的脊梁和道德的典范。村里的老一辈的人都非常喜欢她。每次衣服破了需要修补,手上脚上被刺扎了,都来找我的母亲。很多时候,我自己的衣服都需要我提醒我的母亲很多次才会得到修补,别人的衣服总是很快就可以补好。这也促使我后来很小就自己学会了缝纫和做饭。在我的性格形成上,我的父母的影响是非常大的。我也先把别人的事情做好,再来考虑自己的事情。甚至有的时候超过了一个仅仅作为辅助者的角色。我也胸怀天下,希望有一些自己的对问题的理解和处理的方法,不仅仅能够提高自己,还能够影响更多的人。由于有这个穷则独善其身,达则兼济天下的胸怀,我的父亲对自己和他人的要求都很高。我想这也影响了我对自己和他人都有比较高的要求。我的父母还非常好客。我们家经常是一群朋友们、村民们相聚的地方。我父亲酿的酒和我母亲的手擀面在我们村是非常有名的。现在,我自己的孩子也特别喜欢让我做一堆食物来和她们的小朋友们分享。这个言传身教的影响还真的是挺大的。

1984年入浙江省兰溪市张坑乡上吴小学。整个小学期间,班里的门钥匙是我保管的。我需要每天最早去开门,最晚锁好门回家。当然,我家离学校非常近。我的小学老师每次发现有同学没有完成家庭作业的时候,马上就做惩罚(例如,提供一个合理的解释,或者,靠在教室后面的墙上,双手保持水平半小时),但是这个惩罚完了以后就完事了,没有后效,不计账。下次如果再没有做作业,继续实行独立的惩罚。因为这种就事论事的惩罚机制,我通常仅仅完成自己喜欢做的作业,例如最难的或者最有意思的题。与其做没有意思的问题,不如被惩罚一下得了。在小学5年级的时候,我还被要求每周给同班同学讲解一次数学习题课,教一次唱歌。尽管这些做法是受当时的教育条件所限,但是,我得到的东西非常的多。首先是责任感,其次成就感,还有得到了小朋友们的信任。

1989年入浙江省兰溪市张坑乡初级中学。在这里我遇到的物理老师让我开始思考和认识这个自然的世界,语文老师让我开始思考和认识这个社会。在那个个年代,尽管没有后来普遍和严重,腐败和滥权的问题,还有对农民的剥削和漠视,已经很常见了。这个时候开始的对这些社会问题的思考使得我的责任感成长为的社会责任感。这个学校,就像之前的小学以及后来的高中,有非常民主的气氛(后来我知道这个是因为一位好校长——伊桂采)。例如,当我和我的语文老师就“给青年们的一封信”的语法结构产生了分歧的时候,我的老师的做法是把语文教研组的几位老师召集到一起来讨论,而且是完全平等的讨论。后来由于没注意时间,过了学生就寝时间,我就在老师的帮忙下翻墙回的宿舍(那个时候我们的宿舍在学校外的农户家)。就事论事,具体问题具体分析,讨论问题的时候人人平等,这些对我有非常深刻的影响。

1992年入浙江省兰溪市第一中学。在这里,我继续要给大家答疑、每周教大家唱歌、给大家出试卷的标准答案。我以及另一位同学和物理、数学老师有协议,我们不完成作业,但是需要负责物理、数学的所有考试的标准答案。这些灵活的独特的处理方式,尽管是在少数学生身上才会出现,却表明一种非常好的理念:因材施教和引导。记得有一次,我忽然(之所以突然是因为我已经拒绝过被选上去背书)被选上去做自由主题的英文演讲,原因是前一天来我们班听英语课的英语老师和校长觉得我回答问题的时候,说的是自己的话,自己想说的内容。如果我们的教育能够鼓励每一位学生都用自己的话,说自己想说的内容,那教育的大部分目的就达到了:成为有思想的人,活的人。我受不了言不由衷受不了人言亦言,我想可能跟这个高中阶段的培养是有关系的。

1995年入北京师范大学,物理学专业本科和硕士阶段的学习。在这里,我遇到了很多对物理学和数学有深刻的理解,并且能够促使学生来思考和理解物理学和数学的老师,例如王家銮、漆安慎、裴寿镛、梁灿彬、杨展如等。在这里我体会到可以真正地深入思考一个问题是一件快乐的事情。也正是由于对这个快乐的体会比较深刻,我经常不能很好地区分需要科学分析的问题和不需要做科学分析的问题——很多时候我会用对待科学问题的方式来处理日常生活的问题。例如,在科学问题的讨论上,我喜欢用反问法来启发大家一起思考。很多时候,在现实生活的问题提上,我也是如此。这个时候往往事倍功半,甚至伤害到其他人的感情。可是,我分不开。我是一个科学至上者,我觉得任何问题都应该用这样的方式来分析。后来,看到美剧《The big bang theory》才知道其实这个问题很多物理学家都有。到现在,我还是不能很好地分开。

2002-2003年,在系统科学系做研究工作。期间,推动了系统科学系的研究团队在复杂网络和经济物理学两个方向的建设方面工作。体会到我们能够通过努力make a difference。这个也是我后来选择回到系统科学学院的原因。

2003年-2011年,入学The University of British Columbia(以及之前的Simon Fraser University,后转入UBC),完成物理学硕士、博士的学习。在这里,我体会到,UBC以及很多国外的学校在课程体系建设、本科生和研究生授课的质量、研究生研究活动的指导与质量等方面,远远超过国内的学校,尽管它也有自己的问题。国外的好的高校在系统化培养研究人才已经走了几百年了,我们国内的高校才有几十年的经验。这个是完全不能相比较的。所以,除了提高自身的研究能力和扩大自己的视野之外,我花了一定的时间参与教学活动和学生活动,得到了一些关于人才培养、课程体系建设的经验。

2011年到现在,在北京师范大学系统科学学院工作。主要开展量子输运理论、科学学、博弈论、汉字学习以及更一般的学习方法,等几个方面的研究。作为一个纯粹的科学主义的人,我在研究方面的思考毫无疑问是深入的。但是,同时,也是广泛的,而且不是一般的广泛。太广泛了,以至于都不可能我同时来完成。同时我还建设《系统理论基础》、《量子力学》、《物理学导论》、《概念地图学习方法》等课程。从小学到现在,我一直在当老师。我在人才培养方面的思考和经验毫无疑问也是深刻和独特的。可是,如何在现实社会来实现这个独特和深刻的想法,就是另外的问题了。另外一方面,我也希望能够通过在本学院推进科学管理的建设来实践在科学管理方面的设想。在这些方面,我都需要进一步找到更加合适的方式方法来实现。