谭浩强
按:这是谭浩强教授1986年写的一篇论文,该论文的要点曾由谭教授于1986年在东京举行的国际地区性计算机教育大会上宣读过。在这篇文章中,谭教授最早提出了在非计算机专业按四个层次进行计算机教育的方案。层次教育方案提出后,受到全国高校的欢迎,多数学校按此方案设置了计算机课程,并且成为后来全国高校进行计算机基础教育的基础。十几年来层次教育的内容随着计算机科学技术的发展而不断调整,最后形成了当前的三个层次(计算机公共基础;计算机技术基础;计算机应用课程)。这篇文章中提出的问题对全国起了重要的指导作用。
一、“信息时代”对教育的挑战
1.信息技术的发展,特别是计算机技术的发展,深刻地改变人类的生产方式和生活方式,也对教育提出了挑战。我们的学校必须培养出大批适应“信息时代”所要求的人才。传统的教育方式、教育方式和方法显然不能适应当今科学技术飞速发展形势的要求。教育是时代的产物,又反过来促进时代的发展。显然,教育应当主动适应社会的发展,促进社会的发展,教育的内容必须随着社会发展的不同阶段加以充实和调整。
由于历史上的原因,现在的科技人员和管理人员大多数是“计算机盲”。由于工作的迫切需要,近年来不少在职人员补学了计算机知识,并把它用于实际工作中,取得了立竿见影的成效。这固然是好事。但成年究竟不是学习计算机的“黄金时代”。这种情况反映了教育与需要的脱节。现在我们再也不能继续培养对计算机一无所知的“人材”而待到今后工作时再来“补课”了。 高等学校培养出的人才应当具有比较宽厚的基础,掌握本专业的最新科学技术知识,有较强的解决问题的能力和工作适应能力。还要求具有创新开拓的能力,特别是跨学科开拓能力,而具有计算机知识和应用计算机的能力,是新型人才的基本要求之一。
据我们所知,在一些国家中计算机应用相当普及,计算机已经成为日常工具之一,无论是大学生、中学生还是工作单位的普通工作人员都在大量地接触计算机,人们使用计算机的意识很强,善于用计算机去解决面临的问题。在这一方面我们的差距很大,到目前为止,不少人(包括科研单位和高等学校中非计算机专业的人)对计算机感到神秘和陌生。这种状况如不改变,怎能赶超世界水平?
学生的知识结构应当随着时代的改变而改变。在私垫时代,学生只需要学习八股文。随着科学技术的发展,人们重视了自然科学,把数、理、化、外语作为学校的必修基础课程。现在应当把计算机知识作为大学生(不论哪一个专业)的知识结构中不可缺少的重要部分,应当使它成为各个专业的一种基础教育。因为如果不掌握计算机知识就不可能发展和改革本门学科,开拓新学科,就会落后于时代。
2.从我国计算机专门人才的要求来看,也必须大力加强高等学校中非计算机专业的计算机教育。我们从几个简单的数字中就可以看到这个问题的极端重要性。(1)到1990年,我国至少需要计算机专门人才50万人,而由计算机专业毕业的学生不到五万人;(2)全国高校每年招生五十多万人,其中计算机专业的不到一万人,其余五十多万(占98%以上)都是非计算机专业的学生。(3)全国一千多所高等学校中,设立计算机专业的只有一百多所大学,即使在 这一百多所大学中,非计算机专业的学生也占绝大多数。
因此,我们在集中力量办好计算机专业的同时,应当大力加强非计算机专业中的计算机教育。多年的实践表明,计算机应用人才的培养,一方面固然要从计算机专业中的学生中培养(这部分人才是计算机专门人才的骨干)。另一方面,要从非计算机专业中培养(包括在校的和在职的),这是一条十分重要的途径。
这是由于以下两个原因:第一:计算机专业培养的人数是有限的,不能满足社会上如此大量的需要。第二:计算机的应用牵涉到各个领域,需要计算机应用人才既具有计算机的知识,又具有有关专业领域(如经济、机械、建筑……)的知识。非计算机专业的学生和科技人员掌握计算机知识,参加计算机应用队伍,他们所发挥的作用是计算机专业的专门人才所不能代替的。这决不是权宜之计。目前,我国计算机应用人才中大多数是由非计算机专业人员中转学计算机的,他们把计算机技术和本专业结合,有力地推动了各个领域中计算机的应用。
因此,应当在每一所高等学校中开展计算机教育,要求每一个大学生都必须掌握计算机的初步知识,具有使用计算机的一定能力,并为今后进一步的提高打下较好的基础。如果能做到这一点,将是我国计算机教育的一个重大的突破,其深远意义不言而喻。我们正为实现这个目的而努力。
二、非计算机专业的计算机教育的现状
几年以前,除了计算机专业以外,只有一部分工科院校的部分专业开设了计算机课程。近几年来。非计算机专业中的计算机教育发展迅猛,初步打开了局面。
1.由部分工科专业开设计算机课程扩展到了全国工科所有专业中都开设了计算机课程,进而扩展到理科、经济类专业,再扩展到农林、医、师范等专业。近来,一些学校的文科专业(例如中文专业、图书馆专业)也开始设置计算机课程。中央电大的理工科专业、文科专业和党政专业都开设了计算机课程。中央党校也开设了计算机的课程。这个趋势还在迅速发展着 。
2.编写出一些适合非计算机专业使用的计算机教材,并且初步摸索出针对非计算机专业学生特点的教学规律,取得一些成功的经验。
3.形成了一支几千人的教师队伍,他们将计算机技术与各专业结合,推动了计算机在各专业生根。
4.经过几年的酝酿,已经初步形成了非计算机专业中进行计算机教育的方案,准备付诸实现。
5.成立了全国高等院校计算机基础教育研究会,每年召开会议交流各校经验,研究工作中的问题,取得了显著的效果。
现在,愈来愈多的人已经认识到非计算机专业中开展计算机教育的迫切性和重要性。但是,目前非计算机专业的计算机教育与要求相比,还存在很大的差距:
1.尽管多数院校(特别是理工科院校)已开始了计算机课程。但到目前为止,仍有不少学校或专业(特别是文科院校和部分农、林、理专业)还未开设计算机课程。如果不改变这种状况,就意味着到1990年,我国还有为数不少的大学生没有摸过计算机,不会使用计算机,这是一个很大的问题。
2.已开设计算机课程的,大多数也只开设BASIC语言或FORTRAN语言,学时很少(一般三、四十学时),没有充分的上机时间(有的学校学一门语言课只有五、六小时上机时间),加以后续课程中大多数没有使用计算机手段,因此,不少学校的计算机教育在学生的整个学习过程中仅是一个孤立的“点”,而未形成一条连续的“线”。学生只学习到最初步的计算机知识,还缺乏计算机的系统知识和运用计算机解决本专业领域中问题的实际能力。离应有的要求还比较远。
3.全国对非计算机专业的计算机教育,缺乏明确的要求。没有正式纳入教学计划,没有统一的教学大纲,教材建设也缺乏统一规划,迫切要求针对不同专业的不同情况,制订出不同层次的要求,有计划地编写出各类教材,以保证计算机教育的质量。我们最近在这方面做了一些工作。
总之,局面是初步打开了,但任务还很艰巨。
三、关于非计算机专业中的计算机教育的设想
非计算机专业的学生学习计算机知识的目的是什么? 要求是什么? 方法是什么? 这些始终是我们反复思考和探索的问题。
有的同志认为:大学里开设计算机课必须强调系统性、完整性、有理论水平,而且各个方面内容都要兼顾到,实际上就是将计算机专业的内容浓缩,是“压缩并干”型的。另外一些同志认为:计算机只是工具,只要教会学生怎样用计算机就可以了,不必讲太多理论,也不必学计算机语言和程序设计,只需学会操作计算机,会打入一些命令能得到结果即可。我们研究会绝大多数同志既没有同意照搬(或“浓缩”)计算机专业做法的意见,又不同意把非计算机专业的计算机教育降低成培养操作员的意见。
我们认为:和任何一门课程一样,非计算机专业中的计算机课程同样有它的系统性和完整性,决不应当是支离破碎的。但是这种系统性和完整性是相对的。非计算机专业学习计算机知识应当强调“以应用为出发点,以应用为目的”的原则。非计算机专业能够用于计算机教育的学时是有限的。而且各个专业将来使用计算机的要求和情况是不同的,不应该也不可能照搬计算机专业的课程设置和教学要求,而必须从应用的角度对不同的专业分别提出要求并且组织教学内容。我们所说的“应用”决不仅是指简单的操作,决不能使学生知其然而不知所以然。高等学校的课程应当有别于职业技术培训。所谓“应用”应当是理论指导下的应用,理论与实践的结合,使学生具有一定的计算机的基础知识以及应用和开发计算机的能力。也就是说,从应用出发,学习必要的理论知识,又落实在应用上。“工具”和“知识”二者不是对立的,有一定的理论知识才能更好地运用好工具。
全国高等院校计算机基础教育研究会近年来对高校的非计算机专业的课程设置和教学方法进行了多次的讨论交流,在去年和今年召开的“高校学校非计算机专业计算机课程讨论会”上,归纳提出了以下的方案设想。考虑到学校类型和专业类型的不同,全国不能采用同一个模式,需要根据不同的专业需要提出不同的要求,开展多层次的计算机教育。
根据我国目前的实际情况,从需要和可能两个方面综合考虑,可以采取以下几个层次:
第一个层次:这是对所有专业的全体学生的基本要求,即最低的层次。要求学生:(1)了解计算机的基本知识(包括计算机的基本原理和计算机系统组成)。(2)掌握用计算机解决实际问题的基本方法。掌握程序设计的方法和技巧,具有编写程序解决问题的能力。(3)会使用计算机的有关应用软件,以解决本专业的需要。学生应该学习“计算机基础”和“程序设计”课程。根据国内外当前和今后一段时期内的需要,考虑到“以应用为目的”这一原则,选择以下四种计算机语言:BASIC,FORTRAN,COBOL,PASCAL,以后根据需要还可以增设其它语言,每门课程独自成系统编写教材,即分别编写“BASIC语言程序设计”,“FORTRAN 77程序设计”,“COBOL语言程序设计”,“PASCAL语言程序设计”,各专业学生根据需要学习一到二种语言,但必须要求掌握好一种高级语言,这样就可以举一反三,在需用时很快地能够学会和使用其它语言。程序设计课程的重点不应该是讲述语言规则,而是学习程序设计方法,应当介绍基本算法(包括数值和非数值的),在程序设计中应贯穿结构化原则。文科专业的学生的学习重点在文字处理和文件检索,理工科的重点在数值计算,管理专业学生重点在数据处理。
第二个层次:在学习计算机基础知识和程序设计的基础上,有的专业(主要是理工科)还应该学习微型计算机的原理和应用。可以分为两类:用于控制类和用于非控制类,分别设立两类微机课程。一类可称为:“微型计算机的原理及应用”,用于控制类专业,系统学习微型计算机的工作原理,其中包括硬件系统(包括CPU,存贮器)、软件基础(包括汇编语言程序设计)、以及接口技术,使学生能熟练地将微型计算机用于控制(例如机器的控制、仪器的控制、石油化工生产过程的控制等)。另一类适用于非控制类,可称为“微型计算机的系统和应用”。不深入讲解计算机的脉冲电路,而只讲述计算机的逻辑功能块,使学生对微型计算机有一整体的概念,会利用微型机的硬件资源和系统软件,它的重点是微机的应用。
第三个层次:随着计算机应用的深入,不少专业已经感到软件知识的缺乏,难以进一步提高和进行二次开发,应当为学生提供深入一步的软件课程。例如:“程序设计技术(从软件工程的角度介绍程序设计的方法)、“软件技术基础”(包括:操作系统概念及使用;数据结构的基本知识;数据库知识;网络的基本知识等)、以及“数据库原理及应用”等课程。有的学校已经这样做了,效果很好。
第四个层次:在前三个层次的基础上,根据不同专业的需要,再学习与本专业结合的计算机的课程,例如:计算机制图;计算机辅助设计(CAD);计算机情报检索;计算机图形学;计算机控制;计算机管理信息系统;接口技术;微机局部网络等。
这四个层次是互相联系的,前一层次是后一层次的基础,依次进行学习。要真正使非计算机专业学生掌握计算机的应用,不是单纯几门课能够解决的,必须做到“大学期间几年不断线”,在各门课(尤其是专业基础课和专业课)中使用计算机解题的方法,将计算机渗透到各门课程中,这样才使学生懂得计算机,会用计算机。因此,非计算机专业的计算机课程,既是基础课,又是应用课。
四、搞好教材建设,编写出一套适合非计算机专业学生使用的好教材。
没有一套好的教材一切都是空谈。几年来我们一直在探索研究非计算机专业的学生和计算机初学者的特点和学习规律,编写了一些适合于他们的计算机书籍,取得了初步的成功。
非计算机专业的学生在学习计算机课程时往往有和计算机专业学生不相同的一些特点,例如:他们大多数是计算机的初学者,缺乏对计算机的系统了解,甚至对一些普通的计算机术语也感到陌生和难以理解;他们的基础(尤其是数学和电子学的基础)与计算机专业的学生有很大的不同;由于专业不同,过去所接受的训练不同,不少人对计算机课程(尤其是软件)中一些抽象的概念和叙述方法难以很快地领会,而易于接受形象思维;他们要求计算机课程能与本专业内容结合,能立竿见影地解决专业中的问题,等等。
因此,教材应具备以下特点:既要有科学性、系统性,又要有启发性易读性,要深入浅出,便于自学,不能片面追求“深”而“全”;要符合初学的认识规律,不能由抽象到抽象,而要善于从具体问题入手提出问题,通过具体问题讲清概念;将难点分解,使“台阶”变小,便于循序渐进,教材内容要与所学的专业尽可能地结合,引导学生在自己的专业领域中使用计算机。换句话说,我们的任务是将计算机科学技术中一些复杂深奥而抽象的理论、概念用初学者所能够接受的方式通俗易懂、深入浅出地叙述清楚,并且使他们愈学愈有兴趣,一步一步地深入。如果在全国范围内把这件事做好了,就是一件很有意义的工作。
近几年来,已经有不少学校在这方面迈出了可喜的一步,写出了一些深受欢迎的教材。有的读者说“你们把本来枯燥难懂的内容讲活了,引人入胜”。我们体会到,在非计算机专业中进行工作更应当强调要深入了解自己的对象,有的放矢;要和读者和学生将心比心,设身处地地为他们着想;叙述要符合初学者的认识规律,引导他们循序渐进地掌握课程内容。而不能只顾自己,想说什么就说什么,想什么讲就什么讲,更不能故弄玄虚,使人望而生畏。
研究会已经和高教出版社结合拟订了一套适用于非计算机专业用的教材编写规划和课程基本要求。初步确定各种教材和参考书有29种。计划在90年前出齐,已公布计划,在广泛征稿的基础上择优出版。同时鼓励全国各院校、各出版社编写和出版教材和参考书,实现不拘一格,百花齐放,每年组织交流评比,逐步提高教材质量。
五、急需解决的两个问题
1.要建立一支稳定的从事非计算机专业教学的教师队伍。
非计算机类的学生众多,对计算机教育的要求不断提高,目前师资的数量和质量离开应有的要求还都有很大差距(尤其是那些没有计算机专业的院校)。除了由计算机专业的教师直接从事和指导这一工作外,还要由各个专业的教师来承担。他们学习了计算机知识后从事自己专业中的计算机基础教学工作,既熟悉自己的专业,了解自己的教育对象,懂得他们的需要,而且又有在本专业领域中应用计算机的经验。这样做,既可解决师资的不足,又可推动计算机技术与各专业领域的结合。
当前迫切需要解决的问题,一是支持,二是提高。有的地方对从事非计算机专业教学的教师的工作不重视、不支持,甚至认为“没水平”,“不重要”,对他们的工作效果不承认,这就挫伤了他们的积极性,使不少人不愿长期从事这一工作。什么叫“水平高呢?清华大学有一位老教授说得好:“能够用最简单通俗的语言说明复杂的概念就是水平高”。高士其不是一生在搞科学普及工作吗? 难道能说他的水平不高吗? 每一件工作都有自己的评价标准,行行出状元。把计算机科学技术与各个专业结合起来,这是一件意义重大而高水平的工作,需要各方面的支持和帮助。
这支队伍中不少人原来并非计算机专业毕业的,急需提高。全国高等院校计算机基础教育研究会和各地方分会定期召开教学经验交流会和学术讨论会。 此外根据需要举办了各种单科的计算机学习班,帮助他们迅速提高业务水平,收到了立竿见影之效。
2.需要改善高校中计算机装备状况
高校中非计算机专业学生多,各门课程需要用到计算机的机会很多,但除了一些重点院校外,许多院校的计算机设备严重不足,有的学院的计算机装备还不如一些重点中学。学生在校期间只有十几个小时(甚至更少)的上机时间。这使在非计算机专业中开展计算机教育受到很大的限制,急需改善。学校购买计算机应当给予优惠。
总之,非计算机教业的计算机教育正在蓬勃开展,已经显示出并将进一步显示出它的强大生命力,我们将总结经验,满怀信心将这一有深远意义的事业推向前进!