开篇:润墨网以专业的文秘视角,为您筛选了一篇计算机行业历史知识与计算机教学的结合范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘 要: 随着教学实践的深入,如果在教学过程中适当介绍计算机行业相关的历史知识,不但可以激发学生的学习兴趣,增强学习效果,而且会加深学生对这门学科的理解,甚至会对学生的未来职业规划有帮助。作者讨论了进行计算机历史教育的重要性和必要性,总结了自身在授课过程中的一些经验。
关键词: 计算机行业 历史知识 计算机教学
一
无论是科学技术的发展还是人文学科的发展,都是从无到有、从简单到复杂的过程,需要一层层地积累,不断地发展演变。比如中国文字的发展,经历了从甲骨文、金文、篆文、隶书、楷书、行书等变化发展;比如数学中对数的认识,经历了从自然数、负数、无理数到复数等的过程;物理学也是这样,伟大的物理学家牛顿曾说:“我是站在巨人的肩膀上。”相比之下,计算机是一门新兴学科,发展的历史不足百年,尽管如此,这几十年来计算机行业的发展还是超过了任何的学科,现如今已经达到非常成熟的程度,并且已经同其他学科融合在一起,成为自然科学和社会科学中很重要的一部分。尽管发展的时间不长,但学科内容却很丰富,很多技术彼此都存在承前启后的关系,如果把技术与历史隔离开来,那对于计算机学科的认识就是不全面的。
二
计算机专业的方向很多,学生需要学习的内容很多。要学习这门应用型学科,学生除了具备理论知识外,还必须具备动手能力。我个人认为,让学生明白所学的东西在实际中有什么用处,对于增强教学效果是很重要的。所以我在平常的教学过程中,会注意给同学们介绍下,我们现在学的东西,在实际社会生活中究竟有什么用、怎么用。计算机的发展,不是单个学科的发展,而是整个行业的发展,包括计算机硬件、操作系统、软件工程、编译技术、网络技术,乃至现在的通信技术等。每一门学科,都是整个行业不可或缺的一部分,所以我们在介绍本课程的实际应用时,要顺带介绍下与之相关的行业背景,从而自然而然地牵涉到行业发展的问题。如果仅限于在课堂上讲述书本上的知识点,在实验室里做些简单的实验,仅仅让学生明白操作步骤,那么“有什么用,怎么用”这个概念对于学生来说并不是很有说服力的,但如果用实际的应用例子,用曾经发生过的事情来说明,效果就不一样。
我原来学习数学,然后从事计算机行业,我发现两个学科在知识结构上是有很大不同的。数学是个理论专业,很多方向没有直接应用的需要,所以,数学的发展经常是颠覆性的:当产生了新的理论,旧的理论框架就可能完全被和抛弃,然后进行重建。这样的事例在数学历史上发生过多次,不少类似的理论学科,比如物理学、化学都有这样的现象,但计算机科学则有其特殊性,因为计算机行业,不论是硬件还是软件,都与商业市场或者实际应用有着密不可分的关系,可以这么说,商业市场的应用需求是计算机行业发展的动力源泉之一。
既然有商业的因素,那么企业一旦推出市场的产品,该企业就有维护该产品的义务或者动力。硬件和软件都需要升级,但“兼容”是计算机行业的一个重要主题。所谓兼容,讲得通俗些,就是你卖出去的产品,不能因为新系统或者硬件升级了或改动了,导致原来运行正常的系统现在突然不能用了。客户出于各种原因,不一定愿意升级系统,或者花钱购买新版本的系统,如果他们坚持用旧的系统,那么企业为了维持和遵守与客户的契约,经常不得不采用新系统兼容旧系统、新硬件兼容旧硬件的方法,除非不得不彻底更新换代。所以在设计硬件和软件系统的时候,技术创新是一个方面,另一重要方面则需要考虑如何与旧系统兼容,因此很多产品设计的方案就会表现出奇怪的、甚至与正常逻辑不符的方面。这些知识如果出现在课本里面,那么学生学习起来就会觉得知识点难以理解,难以记忆。
比如,Intel处理器规定,内存管理策略里面,要先采用分段机制,后采用分页机制,即所谓的“段页式”。其实真正原因是一开始的时候,Intel首先推出了支持段式内存管理机制,当后来分页机制流行以后,Intel又开始试图支持分页式内存管理机制,但是早期的产品已经推出市场了,为了兼容,最后就只有在原来分段式管理的基础之上再实施分页式管理机制。如果不明白这段历史,那么我们就很难向学生解释为什么要先分段式再分页式,事实上,分段式和分页式完全是可以独立运作的。
再比如,在Intel段式内存管理机制里面,段描述符的结构是很混乱的,32位的段基地址和20位段长度,分别被拆分成几部分,分别放在段描述符的几处,这个用通常的逻辑是完全没办法向学生解释的,唯一合理的解释就是当初Intel推出段式管理的时候,地址是24位的,段长度为16位,然后当分别扩充到32位和20位时,那么为了兼容之前的处理器产品,不得不这么做,还有很多这样的例子。在我还是学生的时候,学习这类的知识是一件不轻松的事,主要原因还是没有理解它们为什么会这样,而只是试图去死记硬背。教师平时应该多想想这些问题,多查查资料,弄清楚其原因是不是与曾经的历史有关,这样给学生讲解的时候,学生就会豁然开朗。
三
计算机行业的发展包含很多要素,有科学技术研究的要素,也有商业竞争的要素,技术与商业市场密切相关,两者交织在一起,形成了计算机行业的发展历史。学生中间有一部分对于科学研究的发展史比较感兴趣,但另一部分的同学则对于市场的商业环境的发展史更感兴趣。与同学们平时的交流中,我发现很多同学都有自己心目中理想的公司或者工作,所以每当在课上讲到与这些企业或者工作有关的内容时,很多同学的注意力都比较集中。计算机知识本身比较枯燥,但是一旦把这些枯燥的知识与实际应用相联系,就会变得很生动。
比如,我在讲课的时候,如果讲到与编译器有关的内容,就会讲述当年微软公司与Borland公司关于C++编译器之争的故事。这是一段非常精彩的历史,尽管时间已经过去了十几年,但是每当同学们听到了这样的故事,还是会表现出很感兴趣的样子。之前大家对于编译器的理解,仅仅停留在“它是一个编译工具”这个层面,如果深入地了解了这段历史,那么编译器在大家眼里的形象一下子就高大而生动了,因为榜样的力量是无穷的,每一个软件的背后都是一个个鲜活的作者形象,这样知识点在学生的眼里就不再是冷冰冰的,学习兴趣大大提高。
还有一些例子,比如谈到数据库时,一般我会用微软的SQL Server与Oracle竞争的例子来说明,再比如操作系统,我会用微软与Linux的竞争来说明桌面操作系统的竞争,用苹果、谷歌、诺基亚的例子来说明手机操作系统的竞争等。其实每一个技术后面,都有大批的追随者和利益获得者,很多技术规范的形成,除了是技术本身方面的因素外,也是各方利益的平衡。写在书本上的知识是死的,但背后的这些故事,却很精彩。精彩的故事,会激发起学生学习的兴趣,兴趣是最好的老师。所以,从这一点上讲,学生听课的效果、学习的效果也会比之前好。
现代计算机行业的发展,已经到了一个比较高的程度,早已经不是以前一个程序单打独斗、独立实现某个需求这样简单的情况。现代的计算机系统,重点已经放在系统集成方面,比如说一个大型的信息系统,牵涉到众多硬件:服务器、客户端、网络设备、数据库设备等,同时也牵涉到众多软件:应用服务器、Web服务器、数据库软件、浏览器、及业务逻辑程序,也集成到了整个系统里面,而这些系统之间,又可以进一步地集成,从而形成越来越大、越来越复杂的系统。
这些行业的变化,反映在计算机课程的教育上,就是:课程众多,门类复杂。对比于我原来的专业,计算机专业学生的功课压力是很大的,每学期都要学很多技术,每星期都有理论课,有上机课。在我与学生交流的过程中,我了解到,学生其实并不是特别清楚所学的每一门课程都具体有什么用,更谈不上站在系统集成的角度来看待它们。其实系统集成也是一步一步发展而来的,在这个发展的历史过程中,由于应用的需要,产生了一些现在我们正在学习的技术,如果能多介绍一点这方面的知识,那么学生就会清楚,他所学的每一门课,每一门技术,是怎么来的,有什么作用,特别是在整个集成系统环境里面,这门技术所起的作用和所处的地位是什么。我们在教学的时候,要让学生做到既见树木,又见森林,这样学生就会对知识体系有一个总体的认识,那么在学习每一门课程的时候,就会做到心中有数,学习效果也会更好。
四
随着我国高等教育招生规模的不断扩大,高校毕业生的就业问题已经变得越来越严峻。对于公办的高等学校尚且如此,独立学院的情况就更加不容乐观。计算机专业学生的就业还是相对比较好的,但是有一个问题我们还不得不面对,那就是学生未来的职业发展情况。我所在的南京大学金陵学院,以培养应用型人才为目的,我的理解,这个应用型人才目标不仅仅是指学生在毕业时能够找到好工作,而是应该更进一步,我们同时也应该关注学生踏上工作岗位以后的发展潜力。这既是对学生负责,又体现了我校的教育质量和教育目标。
计算机行业的就业有个特点,那就是一开始找工作相对容易,相比起其他冷门专业来讲,计算机专业的文凭,更容易让学生找到一份薪资起点不错的工作。但是随着工作年限的增加,从业人员的职业前景却并非那么顺利,甚至很多人都说,计算机行业是吃青春饭的。我在IT企业工作的时候,的确发现了这个现象,30岁左右,因为遇到了职业瓶颈,很多IT从业人员就开始转行了。所以我觉得,如果只教给学生基本的编程技术,只教课本知识技能,那是不够的,应该尝试考虑学生未来的职业规划,或者鼓励学生思考这个问题,以提早应对将来可能碰到的职业发展瓶颈问题。
职业规划的首先重要一点,是了解现今的行业从业人员的职业结构,把前人的职业发展作为参考,这是一种很有价值的做法。前人走过的道路,无论是正确的还是不正确的,对于后人来讲,都是宝贵的财富。但是这还不是全部,由于计算机行业变化非常快,十年前毕业生的职业发展历程,可能已经不适用于现在的毕业生,那这个时候,了解计算机行业的发展历史,就更加必要了。从历史中,我们可以看到随着行业的发展,工作机会和岗位也在不断变化,明白了历史,我们就有可能对未来做出正确的判断:当我们的同学毕业的时候,应该找一个什么方向的工作,未来自己应该朝哪一个方向去发展呢?如果我们不了解历史,只是按照现在行业的情况去选择就业方向,那么很有可能是盲目的,当未来发生了变化的时候,自己可能适应不了这种变化。所以我觉得,在平时授课时多介绍历史方面的一些知识,也会启发学生在大学阶段就思考自己未来人生的道路,早做准备,有的放矢,对自己的未来做出一个清晰的正确的规划,这样对他未来的人生发展,会有很大的好处。
五
既然在计算机教学中引入历史教育很有必要,那么如何做呢?我觉得有以下几点可以与大家分享。
首先作为教师,我们对于计算机的历史要感兴趣,要主动去学习。历史的学习需要有一个知识累积的厚度,如果只是片面地去记忆单个的计算机行业的事件,将对整个过程缺乏连贯性的认识。所以,计算机行业历史的学习,需要我们对从计算机的问世到现在的整个过程有一个基本的了解,即从计算机问世之前理论计算机知识体系的建立,到第一台计算机ENIAC的出现,到操作系统的成熟,编译技术的成熟,软件工程的创立,网络的建立,通信技术的发展等,我们都要做到心中基本有数。
其次,要把计算机中的每一门学科,同这段历史相联系,把这门学科发展的一些重要的里程碑事件,与某个历史时段相联系。计算机某项技术的出现,总有其特定的历史背景和应用需要,绝不仅仅是由于学术研究的需要。记住并理解技术与当时历史事件的关系,才能更好地向学生解释这项技术的关键点。
要根据历史的时间链,建立计算机各门学科之间的联系,清楚他们之间的先后顺序和依赖关系,同时也能明白每门学科在其中扮演的角色。这一点是尤其重要的,这就好比生物学在研究物种进化时,会建立这样一种类似的时间链,借此来说明物种从简单到复杂的演化过程。计算机各项技术的发展跟生物进化是相似的,也会存在这样一个时间链,明白了这样一个过程,我们就会明白每一门技术出现的历史背景和它们之间的先后联系。
平时注意翻看一些计算机行业发展历史上重要人物的传记和事迹,因为他们往往决定了某一门学科的建立和发展的方向,他们看问题的角度和思路是值得我们学习的;同时这些人物由于其重要的影响力,往往也是业界和学生心中的偶像。除了他们在事业上取得的成就吸引人之外,学生往往会对其个人发展的历程充满兴趣。通过对这些著名人物事迹的介绍,能够给学生对于未来的发展提供参考和动力,更能激发他们的学习兴趣。
当然我们从事的主要是计算机教学,而非历史教学,所以在讲课的时候何时进行历史知识的介绍,花多长时间介绍也是一个值得研究的方面。我觉得在讲解某些难以理解的知识点时,引入历史知识的讲解,是一个比较好的时机,可以解开当时学生的疑惑;另外,对于计算机发展史上一些重要人物,比如说某个学科的开创人,某个公司的创始人等,也可以结合课程的教学,适当地向同学们介绍。在讲解历史知识的时候,时间不宜占用太长,不应影响课程内容的讲解,主要是为了让学生理解知识点,激发兴趣。
综上所述,在计算机课程的授课过程中,适当地引入行业历史知识的介绍,既是对教学内容的补充,又是对教学效果的优化。教书育人,关键之处在于激发学生学习的主观能动性,而历史知识的介绍,恰恰就可以起到这样的作用。经过一段时间的实践,我发现效果很不错。
参考文献:
[1]王玉龙.计算机导论(第三版)[M].北京:电子工业出版社,2011.
[2][美]诺顿著.杨继萍译.计算机导论(第六版)[M].北京:清华大学出版社,2009.
[3]孙钟秀.操作系统教程(第四版)[M].北京:高等教育出版社,2008.
[4]Intel公司.Intel 64 and IA-32 Architectures Software Developer’s Manual[M].
[5]沈绪榜.计算机的回顾与发展[J].国际技术经济研究,2001/2.
[6]李彦.IT通史:计算机技术发展与计算机企业商战风云[M].北京:清华大学出版社,2005.