前不久,我们发了一篇名为《触目惊心:我国出版的Python教材居然几乎都有基本概念错误》的文章,主要讲述了存在于我国出版的Python教材中的基本概念错误等。文章一发表,即引起广泛的关注,不少媒体予以转载,网友纷纷留言,发表看法。
在这样的主流声音之外,也有网友认为只要会开发软件就行,不必强调基本概念。有人还说,Python属于计算机入门,不必在概念上要求严格。带着这些网友的意见,我们又一次采访了张基温教授。
张教授告诉我们,他开始接触Python是2017年。当时,他在程序设计方面已经出版过BASIC、True BASIC、C、C++和Java的教材,当时Python已经非常火热,他特别想知道Python的魅力主要来自什么地方。不久就发现,Python中的变量与C和Java的变量有很大不同——类型属于对象而不是变量;同时,虽然Python与Java都声称“一切皆对象”,但在Java中,变量是主角,对象是配角;而在Python中,对象成为主角,变量成为配角。然而,国内的许多教材还基本上是按照C和Java的知识框架来装Python的语法,这是一个基本的错误。几十年养成的严谨作风和社会责任感,让他无法沉默,就把这个问题向许多人谈及,但满腔的热情收到的却是冷淡。在无奈之下,他不得不拿起笔再写一本Python教材。应当说,当时他已经75周岁,出版著作(按ISBN号)已经一百一十多本,已经不想写了。可是这么一个问题,让他无法放下心来。这本书于2018年9月由清华大学出版社出版,书名为《Python大学教程》。以后,他发现的问题不断增加,渐成体系,又先后出版了《Python经典教程》(机械工业出版社,2021年2月)和《新概念Python教程》(清华大学出版社,2023年11月)。
他今年已经81周岁了,在已经被错误概念淹没的Python书海中孤身拼搏,艰辛与危险可想而知。不过,他声称不会放弃。这一方面是由于他的一生严谨的习惯和社会责任感使然,另一方面是因为,他认为基本概念错误并非小事,尤其是他认为这么大面积的、空前绝后的概念错误必须纠正,而且也总得有人起来冲锋陷阵。
为什么说Python这样的基本概念错误并非小事呢?张教授首先给我们展示了国内一位资深计算机教育家给他的微信。
三基者,基本知识传授、基本技能训练、基本能力培养。这是教育工作者从长期的教学实践中总结出来的精华教育思想。它们的消失,绝不是正常现象,而是一种浮躁倾向。就拿Python来说,有许多教材写了:
照这个说法,这个容器应当占有存储资源,那么这个存储分配到什么地方呢?可以说,这样写教材的人,基本回答不出。
有许多教材中写了:
那么,按照这个说法,在Python中,代码a = 5执行后,a是变量,还是常量呢?
有许多教材把操作符“=”称为“运算符”。按照这种说法,来执行代码print(a = 5)的结果会是什么情况呢?
有不少教材把代码a = b = c = 5 称为链式赋值。那么,作者能否解释一下这个“链式”的过程呢?能不能解释清楚“赋值”是把值从哪里赋到哪去了呢?
还有不少教材写了:
这样用与Python半毛钱的关系也没有的两个概念拿来解释Python中的语法现象,到底是为了问题说清楚,还是故弄玄虚地让人更糊涂呢?
类似的问题还有不少。而且这样写和这样教的人,一般自己也是无法解释清楚的。不过,他们有一个共同的搪塞和遮羞武器,就是告诉人们“不要扣概念,以会开发为目的”,或者“在入门阶段,概念错了,影响不大”。下面一位副教授的名句:
张教授说,很难想象,这样教出来的学生能够开发出什么像样的程序代码来。说到这里,我们又问了张教授,学习Python是计算机的入门吗?张教授反问了我们一句:难道入门就可以从错误的门进来吗?看我们不能回答,张教授接着向我们介绍了20世纪70年代人们在总结当时发生的“软件危机”起因时,列入教训中的一个事实:20世纪50年代,计算机蓬勃发展的势头,让人们措手不及,于是美国就从中学生中招募了一批程序员,让他们经过短期训练后上岗。这批没有经过严格训练的程序员,编出的程序错误不断,漏洞百出,被作为“软件危机”的重要教训之一。张教授认为,目前我国已经出现了类似的苗头。他曾经在几个有关群中进行过测试,结果很不理想。这时,张教授开始回答我们刚才提出的问题。他说,说学编程可以说是计算机入门,也可以说不是。你们看看各个出版社的书目,就可以发现,现在的许多书已经把Python与网络爬虫、大数据处理、人工智能串在了一起。难道说网络爬虫、大数据处理、人工智能也是计算机入门吗?如是,那还有什么不是计算机入门?
他认为,不过是否入门与否,都不能允许用错误的概念来教人,来继续出书。以“关键在培养编程能力”“入门阶段,基本概念对错无妨”为挡箭牌、遮羞布,忽视基本概念的学习、基本技能的训练和基本能力的培养的行为,说得轻一些是误人子弟,说得重一些是误国误民,更与学习、践行新质生产力格格不入。他告诉我们,Python教学中出现的基本概念错误,几乎涉及所有出版物。这反映出我们教育界和科技界的极大的浮躁现象。他认为,这有可能像病毒一样传染。他担心教师和教材中的浮躁会传染给学生,这样一代一代传下去还如何得了?他说,科学技术在不断进步,程序设计方面也还要不断发展,推陈出新。如果照现在这样的用把新技术往旧知识框架中装的做法流行起来,我们的科学技术还怎么向前发展?这是他特别担心的问题。
在与张教授的沟通过程中,我们深刻体会到了他的良苦用心。同时也在考虑,这个错误的纠正,涉及教育管理部门、出版社、学校、教师和教材作者。现在的关键问题是应当如何立即动手呢?尽管教育部的三个教材管理办法规定得很细,并且指明“对问题严重者,将会追究刑事责任。”但谁也不愿意看到事情发展到这一步。但是,能不能发展到这一步,首先还是需要有关方面先主动行动起来,起码有一个决心。我们也将与广大网友一起关注事情的进展情况,也希望,网友们为有关方面也提出一些建议。让我们一起努力吧!