陈道蓄
一个令人陶醉的时代结束了:那时只要树起计算机专业的旗号,学生便蜂拥而至,毕业生供不应求。当IT世界又回复理性轨道时,至少有一个好处:我们可以冷静下来仔细想一想计算机专业教育应该如何发展。
北美作为计算机科学技术以及计算机教育最为发达的地区,当然受到IT大潮起落的影响最为深切,因此,计算机教育专业改革的呼声也最高。当然,美国、加拿大的国情与我们不同,比如说到软件外包,美国是工作岗位失去方,而我们是潜在的获得方。但是总体上,我们面临的已经发生深刻变化的IT产业“景观”与北美并没有本质的差别。
这个变化在两个方面体现得最为深刻:一是计算机科学研究与信息产业的发展呈现出巨大的差别;二是随着信息技术广泛深入的应用于各领域,编程序在信息技术专业人员工作内容中占的比重已很小。大学的计算机学科对这两个方面的变化没有能够作出积极合理的响应,一方面计算机学术研究没有能为应用技术发展提供足够的推动力,同时大学中计算机学术研究“有趣”的工作不足以吸引年轻的学生;另一方面,为社会提供的大量毕业生知识能力结构不能很好地满足产业发展的需要。
“学科建设”在中国的大学里是个很神圣的词。大学的校长们以及院系的院长主任们都将学科建设作为自己的首要任务。但是,究竟何为学科建设,建设什么,真正能说清楚的往往是两件事,一是建“点”,从硕士点、博士点、一级学科点直到国家重点学科点;二是科研,特别是科研的各项量化指标的追求。这本身都没有问题,问题是如何体现社会需求。
坦率地说,我们在考虑学科建设的时候,很少会想到相关产业的状况和学生就业状况。特别是一提就业,就会被批评为“大学教育职业培训化”。
其实,从历史上看,与自然科学基础学科不断发现与力图解释自然现象不同,一个以技术发展为主的学科总是在社会需求的推动下产生的。一种相对稳定的服务需求形成,会对服务提供者的意识、知识、能力和技能有相当高的要求,需要专门的培养过程,于是在教育部门就会出现相应的“专业”,但仅仅如此还不能形成学科,学科的形成因为满足这样的服务需求还会对新理论、新技术、新方法、新工具提出更高要求,同时这一领域人才培养和技术进步所需的基础知识体不能被其他学科所覆盖。而学科建设的内容就是发展基础知识体,发展满足社会需求的技术、方法、工具,同时培养满足社会需求的专业人员。因此,计算机学科的产生与发展一直是为了满足社会发展对信息化的需要,而专业人员的需求其实反映了社会对一定知识与技能的需求,也间接反映了社会对这些知识技能所承载的理论、技术、方法、工具的需求。因此,我们可以说,一个学科培养的人就业状况是该学科能否符合社会发展需求的一种度量。
计算机学科实际上覆盖了从发展基础知识体一直到提供信息化服务全过程中的科学、技术与工程问题。在学科建设与人才培养的实践中,这个过于广泛的任务导致了目前计算机学科所遭遇的许多问题。
过于广泛的目标与教学实际可行性之间的矛盾导致了这样一个现象:一方面我们对计算机学科内容的理解极其宽泛(因此社会上对计算机专业毕业生的期望也是相应宽泛的),另一方面教学内容却相对狭窄(基本上还是没有脱出计算机科学的框架)。
社会期望与学校实际教学状况在这里出现了巨大的差距。绝大部分接受了计算机专业毕业生的计算机产业部门和信息化服务部门觉得不满意,甚至在一些报告中,中国当前软件人才75%以上来自各大高校计算机相关专业的现象被列为产业人才结构不合理的一个原因。这给我们敲响了警钟。
大学计算机专业的学科建设必须要将社会需求作为考虑发展的一个基本参照系,根据不同的社会需求,重点发展各自的优势方向。
此外,尽管现在大学计算机学科教学沿袭了计算机科学框架,但由于学科内容的泛化,计算机专业不可避免地受到社会热点的冲击,计算机科学也被弱化了,在知识发展上成效不明显,这也就出现了其知识内涵对学生的吸引力下降。
毕业生就业竞争优势不明显,学科内涵不足以激发学生的兴趣,这两方面的因素导致北美报考计算机学科的学生人数下降。在我国,尽管大家暂时还不用担心招生人数问题,至少分数线相对下降已经是不争的事实。其实从本质上说,我们计算机专业面临的问题和北美的情况类似。
近两年来,计算机专业教学指导委员会参照国外的经验,提出了计算机专业分不同方向建设的思路,并编制了计算机科学、计算机工程、软件工程与信息技术四个方向的相应的办学规范,这是在按照社会需求推动计算机学科建设的道路上迈出的一大步,我们期待着在实施上能取得突破。