别让学术界的浮躁污染了课堂

来源:百度文库 编辑:神马文学网 时间:2024/04/30 17:39:28
别让学术界的浮躁污染了课堂(2008-09-24 20:54:35) 标签:学术界 c 课堂 教材 程序设计 数据结构 教育 it 分类:IT相关

原文载于个人BBS:http://program.studynow.cn

 

别让学术界的浮躁污染了课堂

大璞不完,2008年9月21日

    首先,需要申明的是:即兴撰此文,旨在澄清一些问题,以正视听,本人自认为自己绝不是好事之人,也绝非当代愤青。

学术界浮躁风气何时了     

    学术界的浮躁之风的形成有职称晋升、学术成果评价等制度方面的原因,但“编”教材在这股歪风的形成过程中也起了一定的助长作用。面对学术界的浮躁之风,教师必须负起对学术成果严格把关的责任、甄别与抵制弄虚作假行为的责任、维护崇高的学术声誉的责任。说到底,现在社会的浮躁风气,其实是十年文革摧残教育和摧残知识分子发酵的结果。我们希望没有经历过文革的新一代人才,能够有宽广的胸怀,承担起扭转社会风气的责任。为此,作为学者型的老师队伍应为遏制学术界的这股不正之风做出自己应有的贡献。

    朱宗震先生认为:“在现有的学术管理体制和学术评价体制下,学术界、教育界的主管部门对目前的学术风气应负有责任。但是,这不是学者们可以心安理得地得过且过的借口。教育界、学术界人士本来就承担着扭转社会风气的责任,这个责任在社会的分工中,应该由教育界、学术界独立地完成。”

别让教材污染了课堂 

    我想,大凡C语言的教材均源于Brian W. Kernighan和Dennis M. Ritchie两位老先生的杰作――《The C programming Language》(常常称它为“K&R C”,也被称之为“K&R”标准或“白皮书”)吧。遗憾的是,我们中文版的C语言教材乃至译本的泛滥成灾,是大家有目共睹的,以至于各种错误的“谬论”在全国各大高校的课堂“传说”,其中不乏谓之神圣殿堂的清华大学、中国科技大学等高校课堂(这一点只要Google就不难求证)。但有一点是值得欣慰的,Ken Thompson(Kenneth Lane Thompson)、Dennis Ritchie(Dennis MacAlistair Ritchie)和Brian Kernighan(Brian Wilson Kernighan)三位老先生均不懂中文!(笔者有幸与Ken大师有过书信来往。)

    如果大家认为我在危言耸听,我们大家一起来看几个例子:

    [例证一]:“Niklaus E. Wirth”缘何成了“Nikiklaus Wirth”

    [作者注]:当我第一次从学生变成老师后,有幸第一次拜读Brian W. Kernighan和Dennis M. Ritchie两位大师写的原著(The C programming LanguagePublished by Prentice-Hall in 1988ISBN 0-13-110362-8 (paperback))。然后,翻阅了几本中文版的C语言教材,很快就发现在提到结构化设计思想时,在Niklaus Emil Wirth这位1984年获图灵奖(Turing Award)的大师姓名的提法上,中文教材上几乎均是“Nikiklaus Wirth”。情急之下,开始google,输入“Nikiklaus Wirth”,一直下一页到底,居然全是中文!(有兴趣的网友也可以现在开始验证这一点)于是,开始疑惑了:这网络怎么了,难道对于这位大师,居然没有一篇英文的报道!

       后来,才发现这都是中文版的C语言教材的创新,且是独创(之所以说独创,目前尚未发现其它语言版本中有类似提法,如果哪位热心网友发现后,烦请告知)。究其原因,浮躁二字。不过,值得一提的是,大部分功劳应该归功于那位谭先生。理由有二:一是那本《C程序设计》教材,出版达三版之多,发行愈900万册之巨,传播之广、影响之深远,无人望其项背(如果大家同意的话);二是各大高校自编C语言教材之所以犯同样错误的,大凡均源于不假思索的抄袭。

       至于,个中相关证据在这里我就不一一列出来了。一是版面有限,名单太长;二是大凡文人均有面子,所涉之人均系文人。

        [例证二] 别让演绎成为习惯

    [作者注]:正当我们为外国人将《水浒传》翻译成“105个男人和3个女人的故事”而啼笑皆非时,孰不知我们自己也在演绎着同样荒诞不经的故事。让我们从前面提到的那位Niklaus Wirth大师说起吧。凡是学过一点计算机知识的**概都知道“Algorithms + Data Structures = Programs”这一著名公式,即“算法 + 数据结构=程序”。提出这一公式并以此作为其一本专著的书名的正是瑞士计算机科学家Niklaus Wirth。
    然而,如果细心的网友,当我们输入“Nikiklaus Wirth”开始google时,就不难发现关于这一公式有如此多的演绎: 

    数据结构 + 算法 = 程序
    程序 = 数据结构 + 算法
    程序 = 算法 + 数据结构
    程序 = 数据结构 + 算法 + 程序设计方法 + 语言工具与环境
    程序 = 算法 + 数据结构 + 程序设计方法 + 语言工具和环境 

    凡此种种,不一而足。我也有幸拜读过这本原著(Niklaus Wirth. Algorithms and Data Structures, Prentice Hall)。我虽不才,但试问如此演绎的作者读过原著吗?这只是一个简单的加法公式?如此演绎是原作者的本意?。。。。。。
    对此,答案,我想读者自有公论。

       [例证三] 别让张冠李戴成为习惯

    [作者注]:让我们再次回到那位Niklaus Wirth大师吧。关于“结构化程序设计思想的提出”,有两位大师我们不能忘记,那就是Edsger W. Dijkstra (1930-2002)(Netherlands,Turing Award(1972))和Niklaus E. Wirth (1934- )(Switzerland,Turing Award(1984))。当然,后来Robert W. Floyd、Tony Hoare、David Gries等大师均对“结构化程序设计”理论进行了进一步地完善。

    1969年,E. W. Dijkstra首次提出了“结构化程序设计”(Structured Programming)的概念。(Edsger Dijkstra, Notes on Structured Programming,此原始文档可于http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD249.PDF 处下载。)

    1971年4月,Niklaus E. Wirth在《Communications of ACM》上发表了“Program Development by Stepwise Refinement” (Niklaus Wirth. Program Development by Stepwise Refinement. Reprinted from Communications of the ACM, Vol. 14, No. 4, April 1971, pp. 221-227.),提出“通过逐步求精方式开发程序”的思想。

    但由于当时Edsger Dijkstra在投稿时,Niklaus E. Wirth恰好是编辑(Editor),因此,许多人将首次提出了“结构化程序设计”概念的功劳都记在了Niklaus E. Wirth名下(同样,网上关于“提出结构化程序设计这一革命性概念而获得了1984年的图灵奖”之类的“传说”比比皆是)。关于这一点有2001年Edsger Dijkstra的手稿为证( http://www.cs.utexas.edu/users/EWD/ewd13xx/EWD1308.PDF ),或参阅http://www.cs.utexas.edu/users/EWD/transcriptions/EWD13xx/EWD1308.html。 

    总而言之,在中文教材中,发生与此类似张冠李戴的现象可以说比比皆是。

结束语 

    在这里我还是要振臂疾呼:“别让学术界的浮躁污染了课堂!”。真希望从此,孟子变成“门修斯”(http://www.xschina.org/show.php?id=4468)的悲剧不要重演!■