软件专业教学改革三原则

这是十年前在 CSDN 发的文。密码找不回来,那个 ID 不要了,文章转到这里吧。

 

一、实践至上原则

    学生背书是风气,哪个专业都这样(不用读书的专业除外)。可是在软件专业就格外有害,因为期望值不一样。别的专业毕业后人家不指望你能干什么:年轻人嘛,慢慢儿锻炼。软件专业不行,你干不了什么就去当蓝领,就跟下车间扫铁末一样。学生眼睛瞪圆了盯着那几个高薪职位,恨不得一毕业就填进去。这么高的期望值,靠背书怕是不行。有些人的确善背,不管懂不懂,硬是能背出个高分来。不过那不能当饭吃,什么都没弄明白,到了工作单位照样两眼一抹黑。所以要谈实践至上原则。
    所谓实践至上,就是强调动手去做,通过做把问题弄明白。走得远一点儿,就是所谓拟向教学:从应用开发入手,需要什么再去学什么。当然不能走极端,把什么课都当研究对象。象数学、外语这样的基础课,只能从一开始就强加给学生,不能等大家都明白其“伟大意义”后再开课。不过,现在实际上是另一个极端:强加给学生的东西太多。学生对软件设计没有多少感性认识,就面临着一大堆概念要去对付。他们实在弄不明白这些概念都是什么含义,但是还要通过考试,只能靠死记硬背了。比较有灵性的学生可以隐约品出个中含义,装在脑子里留待考察。以后他们会慢慢把问题弄明白。这样的学生往往是最优秀的学生,可惜这样的学生并不多。很多学生到毕业也没把那些东西弄明白。当然不能指望学生把什么都吃透,很多东西只能在工作实践中慢慢体会。这里有一个度量的问题:大部分学懂了还是基本上糊里糊涂,这是本质的区别。
    实践至上不是说不学基本原理,学生整天上机做课题就行了。《数据结构》算是基本原理,借助数学式的抽象方法来阐述算法(可惜现在的《数据结构》还不够味儿,不知何时能有人抛出更象数学的《数据结构》来)。可是,只讲算法,不上机实现,天知道能有几个学生明白那些絮絮叨叨的算法是在忙什么。网络协议那一层层的关系讲得够清楚的,可是有的学生会问:搞那么多层干什么,为什么不在一层全部实现?面对毫无设计经验的学生,教师实在无言以答。要是教师也没有设计经验,就只能在书上找现成的答案了,或是王顾左右而言他。其实,学生只要多少做过一点网络通信,哪怕是一个简单的串行通信练习,也会胜过万语千言。所以说,基本原理必须要学,但何时开课,以什么基础知识来讲授,大有探讨的余地。课开早了,学生缺少感性认识和实践手段;开晚了则学生的实践将缺少理论和方法的指导。
    各方面的经验说明,学生最好能早一点掌握一种编程工具,越早越好。但编程工具不等于编程语言。现代编程工具中语言的含量越来越少,更多的是语言之外的设计方法,但这些东西好象 IT 界还没来得及归纳总结,还没形成系统的理论框架。所谓结构化设计方法和 OOP 之类,只能概括其中一部分。很多东西只是作为零散的经验隐含在设计实践中。学生花一两个学期掌握一堆语法之类的东西,只能用来玩玩小程序,并不能真用来做什么,其实是被关在了设计大门之外,失去宝贵的实践机会。从这一点来看,学生应该尽早掌握一种易学易用而又功能强大且富有理论内涵的设计工具。
    学生做设计实践最大的问题是碰到难题不知如何往下走。其实很多只是些小问题,但学生没见过,花了很多上机时间也解决不了,有些人就此丧失信心。这时候就需要有经验的指导教师点拨一下。所以说,主讲者需要有设计经验,实验指导也需要有设计经验。从某种意义上来说,后者比前者更重要。有些规模不算小的学院,教师中也几乎无人有设计经验,让学生做的课题教师自己也做不出来。真不知这种学院怎么办下去。教育体制所限,恐怕这类问题一时也解决不了。

 

二、自学为主原则

    进大学就是进课堂,这好象是天经地义的(至少本科以下是这样)。一说哪个教师课上得好,就是讲课如何生动。差一点的,学生会说,那个教师还行,至少上课大家都醒着,如此这般。学校考察教师也是看课堂教学。总之,全是围着课堂转,传统观念无不如此。记得以前读过一个真实的笑话,说是西方人来中国大学考察教育改革,问起淘汰的教师怎么安排,回答是:这好办,去图书馆。来者瞠目,因为他们那里是最棒的人去图书馆。从这里也可以看出我们大学的特色。
    其实,有些很不错的教师并不擅长课堂表演,但擅长推动学生的课外学习,也教出了不少好学生。这样的人应该比那些只会表演的教师更适合当教师。当然,教师最好各方面更全面一些,但要求过高毕竟不现实,特别是计算机类各专业,知识更新如此之快,生一场病回来,就发现面前是一堆新术语,都快成外行了。再加上体制上的原因,很多人整天忙的就是凑论文提职称,无心坐下来搞研究。这样一群人,能在课堂上念真经的恐怕不在多数。既然如此,那何不干脆把功夫下在鼓励学生去自学呢?
    鼓励学生自学并不是把大学变成自学考试。课还是要上,只是上得少一点,精一点,给学生更多的自由支配时间。有人可能会觉得,这样一来学生就可以甩开膀子泡网吧聊天玩游戏了。其实,关键在于如何考试如何检查学生的成绩。那种背一通就能应付的考试起不到什么作用。与其那样,倒不如规定一本书让学生去啃,考试只考这本书读了没读,没读的通不过。我们的大学非常注重精耕细作,差不多每门课都要求学生学懂吃透,还要把旮旮旯旯的细节都记住,要不然就很难考出好成绩来。做学问自然需要把问题弄明白,但这需要一定的知识面作为前提。好读书而不求甚解,结果是什么都知什么都不知;死钻若干细节问题而不去广泛阅读,只见树木不见森林,也同样做不好学问。我们的大学一般不要求学生广泛阅读,有的学校图书馆甚至没多少书可读(这一点和西方的大学很不同)。有些教师给学生推荐书目,有些学生能博览群书,大都是自发行为,一般并不体现在学习成绩中。因此一般学生只啃啃指定课本也过去了。外籍教师一来了就要求学生读这读那,弄得很多学生不适应。这种差别恐怕正是我们进不了世界级大学的原因之一吧。
    设计实践也是这样,说起来好象很重视,其实普遍地不重视。学生随便交个作业就能通过,怎么知道那个作业不是下载或复制来的?如果规定每个学生都要通过答辩,说说自己的设计是怎么个思路,情况就大为不同。笔者曾做过类似试验,结果把有些学生憋得半死,最后居然也搞出个象模象样的东西来。有的学生自己也没想到还有这么大本事,这大概就是潜能的释放吧。当然,这样搞法,教师要付出很多心血,但其收效远远超过付出,能否实施,就在于教育管理体制了。
    教师不一定非要比学生懂得多,这是教育界的常识。总有些肯用功又爱动脑筋的学生,不声不响琢磨出些真知来。让学生相互交流,比教师在那里指手画脚要好。课堂上也能让学生交流,但毕竟时间有限,再加上学生在教师面前总有些缩手缩脚的感觉,课堂交流只能作为一种演示,不可能解决根本问题。这就需要教学管理者和教师相互配合,为学生创造出课外交流的气氛和机会。

 

三、瞎子过河原则

    越说越没谱了,高等教育怎么成瞎子过河啦?抱歉,实在找不到合适的词儿,大概意思是:现在的教学方式基本上是“规划”出来的,从教学大纲、教材到授课方式,一切都有规划,可是很多规划实在让人不敢恭维,倒不如把规划放宽松一点,让教师试探着往前走。
    比起数学、物理学这些传统学科来,计算机科学还是个幼儿,无论是理论还是方法都很稚嫩。软件学科连幼儿也算不上,顶多是个婴儿。那一本本大部头的教科书,看起来挺吓人,其实里面没有多少是成熟的东西。拿软件工程来说,讲起来一套一套的,真用起来感觉怎么用怎么不顺手。学生学了软件工程,以为掌握了一件利器,从此可以按科学方法设计软件了,但毕业后一接触实际,发现大家并不遵守那些设计原则,于是从产业体制上找原因。体制上是有问题,但软件工程学本身也有问题。最大的问题就是企图用尚不成熟的设计方法指导复杂的工程设计。现在很多人认识到,复杂的软件是生长出来的,不是规划出来的。软件工程还需要下大力气研究软件生长的规律,不能总是围着如何规划设计转圈儿。
    举这个例子是想说明,一个年轻学科,其教学方式应当与成熟的传统学科有所区别,应当给教师更大的选择权,不宜把教学计划看得太重。本来我国教育体制就有管得太死的弊端,传统学科也深受其害,急剧发展的年轻学科更是可想而知。管理层总是倾向于“有罪推定”,总觉得不管得严一点教师将放任自流,不负责任,学生也将一片散沙,不可收拾。但这种管理方式恰恰违背了教授治校的基本原则,教师中蕴藏的真知灼见和学生的创造精神就这样被扼杀了。
    哪个学生都希望能有适合自己的教学起点和教学进度,恰恰这一点让教师很难办。不光是众口难调的问题(除非信息革命造就真正的特殊教育,这个问题恐怕永远也解决不了),更大的问题是教学规划和学生实际不符合,教师还要继续按照规划教下去。教学规划只能按照一般经验来制定,它常常不符合学生实情,也常常落后于 IT 的发展。可是,教师没有权利随便更改上边制定的教学规划,明知这样教下去对学生很不利,也只能硬着头皮往前走。
    很多学校都时兴由学生给教师打分,有的学校甚至每月一评。笔者也曾“有幸”参与过这类评测管理软件的设计。看着那些戒律般的评测项目,真不知教师还敢做什么。相信大多数学生都想公正地评判自己的恩师,但学生毕竟不了解教学细节,只能按照固定格式填写评测卡,由此形成的统计平均值成了一种统一框架,教师一律都被格式化。这种模式很容易迫使教师走向平庸,变成思想迟钝的教书匠,甚至迫使有创见勇于改革的教师选择弃教而去。最终的受害者还是学生。
    大学生应该有选择学习内容和学习方式的权利。同样道理,大学教师也应该有选择教学内容和教学方式的权利。当然,这种权利不是绝对的,需要跟管理方和学生协商,但最终决策者应该是教师本人。大学教师不是保姆,不需要怀揣一本“保姆须知”去照看和迁就学生。教师的基本工作是自己做学问和帮助学生做学问。教师应该善于独立思考,有独特的教学风格,用自己追求真理的科学精神去影响和带动学生。这样的教师群体含有多种维生素,教师把各自的个性充分展示出来,学生可以在不同观念、不同风格的碰撞中经受熏陶,体验治学真蒂。反之,一个不求有功但求无过的教师群体能给学生提供什么样的学习环境?这种不求进取的教学风气或许对某些学科尚无大碍,但对信息科学特别是急需创新的软件学科非常有害(众多事实已经说明了这一点)。相信形成这种局面绝非大多数学生的本意。

你可能感兴趣的:(教育,软件教学,高等教育,软件技术)