随着社会的发展和社会对人才的需求,计算机类课程已成为一门所有专业的公共课程。下面是我为大家整理的计算机类 毕业 论文5000字,希望对大家有帮助。
谈计算机病毒与防护 措施
【摘要】本文从计算机病毒的概念入手,分析了如何判断计算机是否感染病毒,以及计算机感染病毒的表现。阐述了计算机病毒的来源,并对计算机病毒的种类进行了技术分析,针对不同的计算机病毒提出了多种防范措施。
【关键词】计算机病毒;复制;英特网;病毒来源;防护计算机病毒
随着计算机的广泛普及,家用电脑用户的不断扩大,以及网络的迅猛发展,计算机病毒对电脑的攻击与防护技术也在不断更新。全球遭受计算机病毒感染和攻击的事件数以亿计,不仅严重的影响了正常的工作和生活,同时也给计算机系统带来了很大的潜在威胁和破坏。目前,计算机病毒已经波及到社会的各个领域,人尽皆知,所以计算机病毒的防护已成为计算机工作者和计算机使用者的一个重要问题,解决问题刻不容缓。
怎样才能彻底防范计算机病毒的攻击呢?首先我们要了解计算机病毒是什么?所谓知彼知己百战不殆,那么到底计算机病毒是什么呢?计算机病毒是一个人为编写的程序,或一段指令代码。我们强调这里的人为性,计算机病毒具有独特的复制能力。因为计算机病毒的可复制性,所以计算机病毒得以迅速地蔓延,并且往往难以根除。计算机病毒能把自身附着在各种类型的文件上,这就是我们所说的寄生性,就像我们学习生物的中的寄生虫一样。当文件被复制或从一个用户传送到另一个用户时,它们就随同文件一起扩散开来。所以说计算机病毒的最本质的功能就是复制功能。
当然,如果计算机出现故障,并不完全是计算机病毒的原因。家用电脑使用过程中出现各种故障也有很多原因是因为电脑本身的软件或是硬件故障引起的,如果是网络上的故障,也有一些是因为涉及到权限问题引起的。所以我们只有充分地了解两者的区别与联系,才能够做出正确的判断,以便根据故障原因进行处理。
一、如何判断计算机是否感染病毒
1、电脑感染病毒最明显的特点就是电脑运行速度比平常慢。例如,上午打开一个网页还很快,下午开机打开网页的速度明显变慢,最大可能就是感染病毒。特别是有些病毒能控制程序或系统的启动程序,所以开机系统启动或是打开一个应用程序,这些病毒就执行他们的动作,因此会需要更多时间来打开程序。如果你的电脑在使用过程中出现了以上现象,很有可能是感染了计算机病毒,需要进行全盘查毒和杀毒。
2、在电脑的运行过程中经常出现 死机 的现象:这种现象应该是我们最常见的,是什么原因呢?原因就是计算机病毒打开了多个文件或是占用了大量内存空间,运行了大容量的软件,测试软件的使用也会造成一定的硬盘空间不够等等。
3、计算机 操作系统 无法启动:原因是计算机病毒修改了硬盘的引导信息,或是一些启动文件被破坏或是被删除。引导区病毒会破坏硬盘引导区信息,使电脑无法正常启动,硬盘分区丢失,或是人为地操作错误,误删除了系统文件等原因造成的系统无法启动。
4、系统经常出现提示信息显示内存不够:计算机病毒非法占用了大量内存空间;打开了大量的软件;运行了需内存资源的软件;系统配置不正确等。
5、文件打不开:引起文件打不开的原因可能是计算机病毒篡改了文件格式;文件链接位置因为计算机病毒发生改变。文件遭到损坏;硬盘受到损坏;文件快捷方式所对应的链接位置发生了改变;原来编辑文件的软件被删除了等。
6、系统提示硬盘空间不够:因为计算机病毒具有复制性这个特点,所以计算机病毒复制了大量的病毒文件,以至于影响了内存空间的大小,所以安装软件时系统就出现提示信息硬盘空间不够。硬盘的分区太小,并且安装了一些大容量的软件,这些软件都集中安装在一个硬盘分区中,或是硬盘本身容量就小等等原因造成的。
7、电脑中出现了大量来历不明的文件:计算机病毒复制文件;可能是一些软件安装中产生的临时文件;也或许是一些软件的配置信息及运行记录等。
8、启动黑屏:计算机病毒感染, 显示器 故障; 显卡故障 ; 主板故障 ;超频过度;CPU损坏等等原因。
9、数据丢失:计算机病毒删除了文件;硬盘扇区损坏;因恢复文件而覆盖原文件;如果是上传到网络上的文件,其他用户的误删除也会导致数据的丢失。
综上所述,除以上几种原因外,还有一种重要的原因,因特网引入了新的病毒传送机制。随着网络的出现,电子邮件被作为一个重要的信息工具,计算机病毒借助网络的广泛传播得以迅速蔓延。附着在电子邮件中的计算机病毒,瞬间就可以感染整个企业的电脑系统,甚至可以让整个公司在生产上遭受巨大损失,在清除病毒方面开花费数百万元。
二、计算机病毒的主要来源
1、学习、从事、 爱好 计算机专业的人员并非出于恶意而制造出来的小病毒。例如像圆点一类的良性病毒。
2、一些软件公司及用户为保护自己的软件不被复制,进而采取的非善意的措施。原因是他们发现对产品软件上锁,和在其软件中隐藏病毒对非法复制软件者的打击更大,正是由于这样的原因就更加助了计算机病毒的传播。
3、攻击和摧毁计算机信息系统和计算机系统而制造的病毒——就是蓄意进行破坏。
4、用于科学研究或是用于设计的程序: 由于某种人为因素或是非人为因素的原因而失去了控制,或是产生了意想不到的结果。例如,千年虫病毒。
三、如何防范计算机病毒
1、不用原始软盘或其他介质引导计算机,对系统等原始盘实行保护。
2、不随意使用外来软盘或其他介质,对外来软盘或其他介质必须先查毒后使用。
3、做好系统软件,应用软件的备份,一些重要的文件或数据定期进行数据文件备份,供系统恢复使用。
4、计算机的使用要做到专机专用,特别是一些工作用机,要避免使用盗版软件,如游戏软件等,以便减少被病毒感染几率。
5、网上接收或是传送数据的时候,要养成好的习惯,先检查后使用,接收邮件的计算机要与系统计算机区别开来。
6、定期对计算机进行查毒杀毒,对于联网的计算机应安装实时检测病毒软件,以便防范计算机病毒的感染。
7、如发现有计算机被病毒感染,需立即将该计算机从网上撤下,防止计算机病毒继续蔓延。
总之,以上 总结 了对计算机病毒的一些看法和防范措施。这是信息技术的发展所带来的切身感受。作为一名计算机工作者,与计算机病毒的斗争将更加严峻,我们必须不断努力学习,提高自身专业知识。相信未来的计算机病毒会更加厉害,防不胜防。但是,更加相信邪不胜正,总有解决它的办法。尽管现在的病毒种类各种各样,杀毒软件也逐步更新。但病毒的更新,换代速度也非常之快,我们不要掉以轻心。要树立良好的安全意识,才能在计算机病毒的防护方面做到尽量避免损失。
谈计算机信息处理技术
【摘要】随着网络化技术的不断发展,办公自动化已经成为人们生活、工作和学习必不可少的系统。本文主要从计算机信息处理技术和办公自动化概念出发,对计算机信息处理技术在办公自动化上的应用进行了探讨,并对计算机信息处理技术在办公自动化上应用的发展趋势进行了分析。
【关键词】计算机;信息处理技术;办公自动化
引言
所谓的办公室从信息处理的角度来说,其就是一个产生和处理各种信息的地方。由于目前社会的进程的不断的加快,人们需要面对和处理的信息也是不断的庞大,面对着庞大的信息量,传统的信息处理手段已经不能够满足人们的需求了。随着计算机技术的发展,企业等为了提高效率,办公自动化逐渐的被人们所重视。办公自动化是指融计算机技术、 网络技术 、通信技术以及系统科学和行为科学等各种现代化技术于一体,使人们的各种工作活动依赖于这些设备,这些办公设备和工作人员组成服务于企业目标的人机处理系统。目前,随着办公自动化以及办公数字化的普及,管理组织结构得到了优化,管理体制得到,有效的调整,极大的提高了效率,增加了办公的协同能力,加强了决策的一致性,从而真正实现了决策高效能。
当今社会,随着计算机技术、网络技术的高速发展。基于网络的数字化信息处理平台逐渐的被企业、行政单位所应用。这种办公自动化不仅极大地提高了办公的效率。而且能够实现更快的决策。由此可见,计算机信息处理技术在办公自动化中起着极为重要的作用。
一、计算机信息处理技术及办公自动化概念
所谓的计算机信息处理技术就是集获取、输送、检测、处理、分析、使用等为一体的技术,其主要作用是对信息进行处理和管理。计算机信息处理技术主要由传感技术、通信技术、计算机技术及微电子技术、网络技术等构成的。因此,也被称为信息和通信技术;办公自动化是在计算机技术、网络技术基础上发展起来的,办公自动化是集计算机技术、网路技术、通信技术、行为科学及组织科学等组成的现代化技术为一体新型技术。办公自动化是利用现代化技术和设备将现实生活中的办公活动真实的展现出来,并由相应的工作人员和现代化设备共同组成活动和目的的人机处理系统。在这里值得注意的是,使用办公自动化系统时,必须具备人和相应的机器设备,同时相应的软硬件设备也是必须具备的。
二﹑信息技术与办公自动化
信息技术是研究信息的获取、传输、处理、检测、分析和利用的技术,主要用于管理和处理信息,由传感技术、计算机技术、通信技术、微电子技术结合而成,常被称为“信息和通信技术”,有时也叫做“现代信息技术”。办公自动化是近年随着计算机科学发展而提出来的新概念,应用计算机技术、通信技术、网络技术以及系统科学、行为科学等多种技术,不断使人们的公务管理活动物化于各种设备中,并由这些设备与办公人员构成服务于各种目标的人机处理系统。这一人机系统,人,机,缺一不可。而设备方面,硬件及必要软件都需齐备。
办公自动化是20世纪70年代中期发达同家迅速发展起来的一门综合性技术,而我国OA经过80年代末至今10多年的发展,已从最初提供面向单机的辅助办公产品。发展到今天可提供面向应用的大型协同工作产品通过实现办公自动化,实现数字化办公。可以优化现有的管理组织结构,调整管理体制,在提高效率的基础上,增加协间办公能力,强化决策的一致性,最终提高决策效能更加的有效。
三﹑预测未来办公自动化的发展特点
对于未来的办公室和办公自动化发展很难有一个统一确切的描述,但从信息技术的发展趋势来看,本人以为未来办公自动化发展有以下特点:
视频技术的大量应用。
随着视频技术和压缩技术的发展,诸如视频会议等得到大力推广。在微软总部举行的未来办公品展览上推广之一就是通过摄像头全方面地看到与会者参加会议的情况,甚至还可以看到每一位发言人的表情,并进行互动式的讨论:随着信息社会的不断发展。视频技术也将更加进步,将逐步实现无线视频技术,目前市场上无线视频传输技术大多采用GPRS和CDMA技术,技术还不成熟,但可以肯定的是未来无线视频技术将被人们广泛使用。
无限的无线办公场所。
随着向wi-6技术的发展,基于网络的通讯方式迅速在工作领域兴起,这些通过手机. 笔记本 电脑等一些电子产品实现的通讯方式包括电子邮件、即时通讯、视频会议等应用得到了一次技术性的飞跃。封闭办公室的概念已不复存在,人们可以在机场、广场、饭店随时办公。员工无论身在何处,企业园区、异地出差、家庭办公等都可以轻松实现移动办公。企业内部还可以根据实用权限建立不同的应用级别,以设定不同的处理优先级,从而保证上网的安全性。 无线网络 的方便快捷大大提高了办公的效率。
更灵活的工作流。
电子文件在网络中传输,比起纸质文件的传送效率要高出几个数量级,不仅可以包括过去的纸质公文,而且还可以包含图像、动画、声音等多种影像资料,传递的知识更加丰富,对电子文件进行及时的收集和归档还可以使之得到长期保存,简单方便大大的提高了工作效率,成为办公人员的“宠儿”。
办公的非专业化。
一般的工作人员通过一些办公软件也能进行熟练的文件处理,所以要完善办公自动化环境,使普通用户可以通过输入数据和知识,然后制作出能读的文件.可以即时检索,瞬间向世界发送。虽然质量上比不上专家,但数量上肯定是很大的。如今发布在互联网的内容大约有数千亿,这样的庞大信息可以通过检索高效选择。
四﹑计算机B/S型结构和技术
B/S(Browser/Server)模式又称B/s结构。
这个模式是随着因特网技术的兴起,是对C/S模式的扩展。在这种结构下,工作面是通过IE等浏览面来实现的。用户通过浏览器向网络上的服务器发出请求,服务器对请求进行处理,再讲用户所需信息返回到浏览器。B模式最大的好处是运行维护比较简单,能实现不同的人员,从不同的地点,以不同的接人方式访问和操作共同的数据。最大的缺点是对企业外网环境依赖性太强,由于各种原因引起企业外网中断都会造成系统瘫痪。
B/S其本质是三层体系结构C/S模式:
第一层客户机是用客户和整体系统的接口。客户的应用程序精简到一个通用的浏览器软件,如软件公司的IE等。浏览器将HTML代码转换成图文并茂的网页。网页还具有一定的教互功能,允许用户在网页提供的申请表上填写信息提交后给后台,并提出处理请求。这个后台就是第二层的Web服务器。
第二层Web服务器将启动相应的进程来响应这一请求,并动态生成一窜HTML代码,其中嵌人处理的结果,返回给客户机的浏览器:如果客户机提出的请求包括数据的存取,Web服务器还需与数据服务器协同完成这一处理[作。
第三层数据库服务器的任务是负责协调不同的Web服务器发出的SQL请求,管理数据库。
基于B/S结构的通信结构,客户机只要安装一个浏览器(Bmwser)。如Intemet Explorer,服务器安装SQL Senver数据库。浏览器通过Web Server同数据库进行数据交互。对用户的技术要求比较低,对前端机的配置要求也较低,而且界面丰富、客户维护量小、程序分发简单、更新维护方便。它容易进行跨平台布置,容易在局域网和广域网之间进行协调,尤其适宜电子商务的应用。
技术。
随着信息流通量迅速增大,导致了商务本质的变化,这促使我们的上作方式也必须随之改变,以适应商务领域的高速成长。理光株式会社提出了时代全新的未来办公窒概念。 已不是单纯的软件话题,而已经涉及到新的商务模式,现在已经有开发的交流的平台,服务器、内容以及各式各样的服务。已经实现了服务的链接,从而提供了更为综合的服务。已经习惯互联网的一代新人,将在这样的环境中建立起他们的生活方式和工作方式。
在缩短企业和用户之间的鸿沟的同时,也改变着我们的办公环境。企业不仅可以借助绝佳的互动性,更好的满足用户的要求。而且企业自身的办公模式也正随着改变。普适计算技术的出现无疑将令随时随地迅速访问到自己所需信息的梦想得以实现,而这更将推动Web时代高效、轻松、愉快的工作方式演进。
五﹑未来办公自动化的发展趋势
计算机技术发展的迅速使得未来的办公室自动化将会有一个难以预测的发展趋势。但是,就目前的计算机技术,网络技术的发展趋势来看,未来的办公自动化将会具有以下的特点:
大量的应用视频技术。
伴随着压缩技术和视频技术的发展,视频会议等诸如此类的方面就会得到大力的推广和使用。通过摄像头,与会者不仅能够通通畅的表达自己的想法,还能够全方位的看到会议的现场情况,以及每一位与会者的表情,并能够进行有效的互动讨论。随着技术的不断的改进,未来的无线视频技术也必将成为办公自动化的重要组成部分。这样极大的减少的会与人员在交通道路上所浪费的时间,为与会者提供了一个更为广阔的信息交流平台,改善了传统的信息交流模式.极大的方便了大家的交流。
无线办公环境。
随着wi-fi技术的发展,网络通讯迅速的在办公领域兴起。这种网络办公使得传统的封闭式办公室不在成为必须,工作者可以利用网络和计算机技术随时随地的进行办公,例如:机场,饭店,异地出差以及家中等等。此外,为了保障企业内部的信息安全,企业可以依据使用权限设置不同的应用级别,设定小同的处理优先权,保障这种网络办公的安全性。这种无线网络极大的提高了办公的效率。改善了办公的环境。
灵活的工作程序。
电子传输的速度远远地大于传统的纸质文件的传输,而且,其不仅仅能够传输文字还能够有效的实现音频,视频的传输,极大的丰富传送的文件的形式,并且其还能够实现永久的保存。却不占用任何的空间。
六﹑结束语
计算机处理信息技术比人手办公更加迅速、准确,对价值信息能实现完善的管理,它可以高效能、大容量地收集、处理文件信息,帮助办公人员及时有效的完成工作,并促进单位掌握管理系统的全面情况,为下一步决策提供数据参考。随着计算机技术的大量使用,人们对办公室的自动化的要求与日俱增,现代办公室自动化与各种信息技术、多媒体技术相结合,为科学管理和决策服务,从而提高工作效率。
近年来,随着全球网际网路技术的普及、计算机技术的迅猛发展、数字技术的瞬息万变,计算机工程在人们生活、生产中的应用越来越广泛。下面是我为大家整理的计算机工程毕业论文,供大家参考。
计算机软体大体分为三类,一种是总述,一种是系统软体,一种是应用软体,系统软体的作用是促使各个硬体按照一定的规律协调工作,保证计算机处于正常运转状态。而应用软体的作用则是为了实现某种使用愿望而开发出来的软体。
1计算机软体工程专案管理的基本概念
工程专案管理的含义工程专案管理主要是业主通过委托从事工程专案管理的企业,签署相关协议,工程专案管理企业有义务和权力代表业主在工程专案进行的情况卜干预和服务。工程专案管理企业可以协助业主同项目工程总承包签订一系列合同,只是起到辅助性作用,不直接与总承包企业或者施工、勘察、供货和设计签署协议或合同,工程专案管理企业有责任在施工过程中监督合同的完成情况。
软体工程专案的概况
管理人员开展有序的专案计划
企业必须把人员管理放在重要位置,在软体工程专案的开发上人员的调配问题是保证工程顺利进行的重要因素,因此,专案能否成功和工作人员的工作能力、写作能力息息相关,针对工程专案的操作类别不同,可以分配成各个研究小组,进行科学合理的针对性开发和高效的协作,有利于工程的快速推进和更加完善。小组内的人员根据自身优势,确定自己的工作内容和工作时间。对专案进行正确的认识和对风险进行评估,与此同时从节约成木的方而出发,形成科学的人力资源调配机制,使专案得以顺利开展。
质量和配置管理工作
软体的质量管理工作是整个专案的核心工作,质量管理决定着计算机软体工程专案管理是否真正的成功,通过一系列保证质量的手段,有计划的编制、控制和保证专案质量。保证专案质量的方式可以通过定期的进行质量评估得以实现,在日常专案管理中要不断的对工作进行考查,对于专案不合格的地方要提出意见并且考虑整改措施,不断完善整个软体配置管理的记录工作,使专案的质量能有一定的检测体系,这样开发者会对专案工程的质量问题有比较深入的了解。
风险评估和管理工作
风险管理大致分为两种工作,一种是风险识别,另一种是风险评估。得到评估结果以后要针对问题提出相应的解决办法,定期检测计算机软体工程的好处是可以减小产生风险的概率,还可以避免一些因疏忽而产生风险,使专案的损失减少到最低,也减少了因专案风险而造成的一些相关责任人的利益冲突。
2计算机软体工程专案管理中存在的问题
管理团队的协作问题
分工合作是我们完成一个专案的基木因素,在软体开发方而更需要每个人的智慧一起凝聚出果实,共同享受成果,而目前在计算机软体工程专案管理方而资讯的交流方而存在一些问题,例如分工不清、团队不合作等问题。
需求分析和实际中的业务存在差距问题
计算机软体工程专案没有结合实际的活动需求,也没有调查有效的资料分析,因此计算机软体工程专案管理在开发出新的产品以后并没有取得理想的业务效果。
风险管理的问题
专案的风险工作是企业需要考虑的很重要的问题,如果风险没有相应科学管理,很容易带来巨大的损失,但是很多员工并不懂得如何规避风险,缺乏相应的专业知识,更是缺少对风险工作的管理,导致很多企业在风险来临时无法做出正确行动,造成巨大的经济损失。
3计算机软体工程专案管理的对策
对风险管理和工作进度进行有效管理
制定风险管理制度。计算机软体工程专案管理的工作人员必须具有一定的风险识别意识和相应的遇到风险的专业知识,并且能有效的控制风险的能力。在平时要做好风险评估的管理报告,针对可能发生的风险要及时预测并且做出相应的解决行动。设定专门的人员对计算机软体工程专案定期进行风险的评估和检查工作。在整个专案中,根据需要进行多次的风险管理工作,因为风险无时无刻都有可能存在,检查的目的是尽量减少风险发生,在一般情况卜处理风险的措施一般有三种:减缓、规避和转移。提高工程的进度,不断的推进工程的工作效率。要制定详细的工作计划表,并且尽可能达到最高的工作目标。工作人员有严谨的工作态度和高效的作息时间安排,管理人员要密切关注工程进度,不断的督促员工完成应做的工作量,有条理、高效的完成对员工的工作任务的监督工作。
建立完善的管理体系针对计算机软体工程的人员日常管理工作,要建立科学有效的管理方案。合理安排人才资源,确保在进行计算机软体专案工程时人员调配顺利进行。专业知识的培训对于工作人员来说
是必不可少的,可以极大的丰富计算机软体工程专案人员的专业水平和实践能力,减少工作上的失误,提高工作效率和工作人员的素质。奖罚制度是对企业员工优劣的衡量标准,所以在计算机软体工程专案管理方而采取奖罚制度可以极大程度上调动员工的积极性,使员工主动为企业创造效益,企业的发展才能有长远的未来。
建立合作的团队
在员工内部建立有效的交流机制。员工的内部工作经验交流是非常重要的,因此要完善沟通方法,开辟多种交流方式和渠道,不断的增强各个部门的沟通意识,使团队的力量不断凝聚起来。明确分工,责任落实到个人。计算机软体工程管理非常复杂,需要的人员也众多,因此必须要使每个员工明确自己的工作内容和范围,清晰的划分自己所需要负责的区域,清楚自己的责任,这样能够确保每一个步骤都井井有条,非常有秩序。调动整个团队的工作积极性。通过一些活动、奖励措施等使每一个工作人员全身心的投入到工作中去,愿意并想要去做的更好,不断激发团队的潜力和员工的协作能力,这样专案不仅会做的越来越好,员工内部也会越来越和谐并且充满正能量,企业的效益也会不断得到提升。
4结语
计算机软体工程专案管理的工作内容十分的复杂,要保证软体工程按照工程原计划进度顺利开展工作,并且要节约成木、保证质量,必须熟练对计算机软体进行操作,在现在的大多数生产计算机软体的企业中最为重要的就是软体工程专案的管理效率,软体工程专案的成功条件是软体专案要具有科学性和高效性,在此基础上企业的合理管理也是企业走向成功的关键。
1现状分析
培养高质量的软体开发人才一直是社会和行业关注的焦点。早在11年前,对于工程教育的迫切性就被人提出来[1]。工程教育本身也作为一个系统问题被讨论[2]。现在从国家层面在战略上建立了软体学院进行专门培养,各个高校也不断推出新的课程、新的措施方案。在这一领域虽然比过去似乎已经有了翻天覆地的变化,但来自企业的呼吁似乎一直反映出诸多不尽如人意。更多的思路希望将企业的力量直接引入到教学,比如实训基地等[3];而国家层面也非常关注实训[4]。但实际效果可能变得流于表面,因为企业往往难以将核心的工作拿给学生做,而其训练的专案也并未从更全面系统的角度去设计,其锻炼效果就有限了。在软体开发这一领域,由于其具有变化迅速,新技术不断涌现的特点,导致不少在教育内容上选择了追逐新技术、新语言、新平台,以能用会用这些流行主流技术为目标。典型的代表就是北大青鸟,有些二本的学生在毕业前专门花钱去青鸟学习,似乎可以看到这种教育的优势。但另一个矛盾的情况是,往往那些关注员工后劲的公司却不愿意招聘青鸟的学生。如果将目光投向国外的顶级大学,例如斯坦福,其教学上并没有去“依赖”校企合作,以及很热门的“实训”。其核心课程依然是过去的传统经典课程。以一个研究生为例,一学期能修2门课是正常,3门就很优秀。它并没有追逐所谓的新技术。但无人质疑其学生的工程能力、科研能力和创造能力。
2什么是计算机工程能力的核心
什么才是我们软体开发教育的核心知识架构,怎样才能培养学生可持续发展的核心竞争力?我们调查过一些非常高水准的软体开发者,发现他们往往在底层软体上持之以恒地进行长时间深刻的锻炼,然后在未接触的新领域才能非常迅速地掌握核心。例如,一个非计算机专业的系统分析员曾经“只”在DOS这种原始的作业系统下玩了10年,甚至自己写过一个汉化的DOS。他只有书本上的一点点网路知识时,就用一两天时间解决了一个学通讯的研究生1个月都不能解决的网路故障。这是一个典型的例子,他并没有“实际的”网路经验,什么使得他如此轻松地进入了新的领域呢?而另一个曾就职于vmware、google等顶级公司的程式设计师,在Unix下只用C语言做了10年系统级程式设计。当用Java,C++甚至是javascript时,其学习时间只是1天,很快就比做了几年专门java程式设计的程式设计师还精通。如何才是软体开发人员的本质力量?什么才能让他们在变化万千的新技术面前屹立不倒,乘风破浪?
计算机工程能力
我们认为计算机工程能力包含两方面的内容:1核心知识架构;2计算机的思维方式。什么是核心知识架构呢?是反应该领域最基本规律和支撑技术的知识。简单地说就是传统的作业系统、编译、资料库。作业系统将硬体、软体、高阶语言和汇编融汇在一起,它几乎包括了软体工程中所有重要的因素。举一个简单的例子,似乎只有面向物件这种“高阶东西”才有的虚拟函式运用,其实在Linux中就有相应的虚档案系统。作业系统是最为复杂的计算机工程之一。编译融汇了大量的演算法,而且能让大家真正看“穿”语言的外表,深入到其内里,体现了最根本的计算机技术。其优化技术,也深刻地和硬体交融在一起,很好体现了底层风范。资料库,不仅是运用演算法最多的地方,甚至是超越作业系统的一个复杂的系统,从快取技术到i/o优化,到索引,再到事务处理,无一不是反映计算机最深刻规律。大家可以发现,所谓核心知识架构,都具有两个特点,反映本质规律,体现软硬融汇交织。也只有这样,才能建立下面谈到的“计算机思维方式”。
核心知识架构
为什么我们没包括一些新兴的语言和技术呢?似乎它们很“实用”。而且已经出现的问题是,按照传统科目和方式学习后,学生在企业什么都不会。这也正是大家关注工程教育的初衷。为什么不强调这些新兴实用技术的教育还在强调“古老”的“基础”。计算机领域一个显著的特点是,表面上知识更新非常快,新技术、语言层出不穷。这很容易导致当我们发现学生能力欠缺时,将问题归罪于新技术的学习不得力,知识结构老化。但其实目前的问题可以从另外一个角度考虑,是否是基础教育不得力?分析国外著名大学,如斯坦福、伯克利的课程,我们发现两个特点:1关键的基础课程,如作业系统、编译原理、资料库,始终是其最重要的课程,并没有过分追逐各种“新潮”技术。2学生一学期能修的课程非常有限,一般为3门课。而国内却呈现相反的状况,比如编译原理被降到了选修课的角色,新潮课程层出不穷,一个学生二年级一学期要修13门课。在这种走马观花的状况下,计算机这种具有强烈“手艺”色彩和工程实践的学科,被完全纸上谈兵化。而一些可怜的实验内容,还被学生的复制拷贝所湮没。我们认为,恰恰是这种情况,使得基础核心知识教育没有工程化,没有充分动手,导致了基础知识教育某种程度上的巨大失败。从以下鲜明的对比可以窥见问题的端倪:国内学生反映作业系统课程是文科课程只需要背条款考试即可;而相对地,国外著名高校作业系统课程要求学生实现“小”作业系统。国内资料库只讲其应用如大量讲解sql等运用,sql即使非计算机专业人士也很容易学习,这也是它被发明的初衷。斯坦福的资料库课程中有一门需要实现一个数据库系统。在笔者走访的计算机工程上优秀的人才,发现其共同的特点就是在诸如作业系统或资料库上都有很深入的学习经历,比如前面提及的自己构建过汉化DOS系统,或者在Unix下,做核心以及驱动很多年等。而当他们接触新技术时,之前深刻的经验和淬炼的思维就让他们如虎添翼,快人一等。更有甚者,国外真正的最顶级专家,都是在这些领域有无与伦比水平的专家,从delphi的缔造者,转战到微软并入主平台的开发,也可看到雄厚的底层知识和能力的巨大作用。所以“老”知识并不是障碍,而是通向天堂的阶梯。究其原因,就涉及到工程能力的第2个方面,计算机思维方式。
计算机思维方式
对非专业人士它是很抽象的概念,而对真正专业人士,这又是一个非常鲜活的概念。这里限于篇幅,我们只举一个简单的例子。面对在C++中外部程式码如何直接修改私有变数的问题,计算机的思维方式就是:物件也是放在记忆体中,只要能拿到物件的地址,并知道物件的布局,那么就可修改。而没有建立这种思维的人,就完全被高阶语言的语法所左右,无从下手。一句话,无法看到本质,没有从下而上的底层思维。核心知识课程的有效深入教学和计算机思维方式建立有何直接关系呢?我们认为核心知识因为其反应了计算机本质规律,而且从底层建立起来,所以对其深入掌握运用后,它从开始的逼迫到最后的陶冶,最终潜移默化地让受众建立起“计算机思维方式”。而这正是计算机工程师安身立命之本,就如同音乐家有其独特的音乐思维方式一样。为什么诸如java之类的课程于建立计算机基本思维不太合适呢?因为它更高层,无法让学生看到最下面。而唯有彻底、深刻和系统的底层淬炼,才能真正建立起“计算机思维方式”。
3如何打造强大的计算机工程能力
大家一方面指责基础课程的“空洞”、“无用”、“陈旧”;另一方面在不断开设的海量新课和技术中压得学生更加远离程式设计,远离实践。即使能培养出熟悉某种语言的学生,也无法看到他们和培训学校有何不同。实训也似乎没有根本解决问题,我们在实践中发现,往往是那些自己醉心于程式设计的学生最后有着卓越的表现。让基础知识能支撑和指导实践,而非仅仅“符号”,并引导学生进行高效的实践。
“3块连一线”,4门基础课程整合打造核心知识架构
我们将4门基本课程进行贯通式整合,着力塑造学生的“计算机思维”。下层的是3门基础课在上一小节探讨了其在工程能力训练上不可替代的重要地位,对软体开发环境产生支撑。而软体开发环境又通过精心的设计和工程实践,从应用角度将3门课程所学的知识串联起来。从而将基础知识和工程开发更有机整合在一起。首先,阐述为什么将以上课程整合在一起的理由。要回答这个问题,必须先回答什么东西支撑了优秀程式设计师。在我们的调查人员中,无一例外地都具有很深厚的底层软体开发背景。有长期从DOS的Hack入手的;有长期从事Unix核心程式设计的;有从Windows的driver起步的;有以反汇编逆向为根基的。长期在最底层的经历,使他们建立了最真实和能触控的系统观,能以计算机的方式思考。所以面临新技术时,他们能透过新形式很快把握其精髓,深刻地把握其实质。“太阳下面没有真正的新事物”,例如号称21世纪最新的重要的软体技术AOPAspectOrientedProgramming,AOP,其实在20世纪60年代就出现在了汇编一级的软体技术中,它本质就是钩子技术的系统化。在底层的软体世界,我们不仅能够用到那些所谓的最新的技术,而且能看到其本质我们可能就是用机器码自己构建出来的,而不被新技术的华丽外衣障目。这些使得具有底层经验的开发者,更有创造力,更能创造,也更能洞察迷乱后的本质,庖丁解牛,解决那些异常复杂的工程问题。举一个笔者遇到的真例项子,一个具有深刻底层经验的程式设计师一直只有C语言和作业系统程式设计经验和一个只有深刻Java经验的程式设计师,在同时学习Javascript的闭包概念时,后者一个礼拜都还有些似是而非。前者很快就能自如运用,且最后指点了后者1个小时,后者顿时豁然开朗。这是典型的“新”与“老”,上层和底层经验在面对新事物时的对比。既然底层软体赋予我们如此强大的能力,那么哪些是底层软体呢?大家公认,作业系统、编译和资料库由来就是计算机工程自身的根基。所以,我们必须将这3门课涉及的知识好好淬炼。而如何将3门课的知识和我们日常的软体开发联络起来呢?如何用它们指导平时程式的开发呢我们大多数是开发使用者级软体,不会开发核心软体,因此许多人认为几乎整个在核心中的作业系统对使用者级软体开发无从指导?另一门课,《软体开发环境》解决了这一问题。它有一条主线,通过反汇编将C语言和汇编串联起来,让系统级的知识从高阶语言的面纱下展现出来。同时用逆向工程这把庖丁之刃,将编译、连结、面向物件等软体开发中的重要知识块剖剔,让底层与上层贯通一气。而逆向的技术技巧,本身也是非常高阶的软体开发技术。因此,我们用“3块连一线”来总结4门课的关系是最好不过了。为什么不纳入语言课程,比如C/C++语言?从我们的工程经验来看,语言只是计算机原理和思想的载体,是表述方式而已。为了表述形式而专门花大力气是不值得的。比如,国外的著名大学很多都不开设语言课,在其他课程作业中必须用C语言程式设计,学生们就在那里锻炼了。真正的语言的力量并非来自语言本身,而是底层知识为支撑的专案锻炼。我们的思路是以构建式完成大量的完整系统的编写,这样就很好锻炼了软体开发和工程能力。同时,“软体开发环境”本身从逆向层面也对语言有了深刻的剖析,这是纯粹的语言课难以完成的。另外,从大纲安排上,我们在大一就会让学生用C语言来初步接触程式编写,这时并不适合放入太高阶主题。而在教学中,语言的力量已经渗透到一个个工程构建中,随风潜入夜了。为什么不纳入演算法课程?从某种程度上,“程式就是演算法与资料结构吗”?我们认为在系统中运用演算法,演算法才具有生命力。而编译、作业系统、资料库以及我们专门设立的一些课程设计将全面运用各种演算法和资料结构。在实战中运用并学习提升才是王道。这也正是构建式学习的精髓所在,这也正是探索式学习培养学生的创造能力的精髓所在。演算法课已经为我们准备了元件,就看你怎么去组装甚至改造。
以构建主义的思路,深度实践的风格改革课程
前面我们论述了底层知识架构的重要性,那么怎么来将它们实际地建立在学生的工程实践中呢?简单地说就是“构建一个具体而微的系统”。讲作业系统就构建一个小作业系统,讲编译原理就构建一个我译器。同时,设计一些跨度较大的课程设计覆盖这些课程的一些重点内容。构建完整系统本身就可真实淬炼工程能力,而这些内容的复杂性、难度以及运用知识点的广度,本身就超越了简单的企业实训专案,在培养人才方面具有系统性、完整性、挑战性独特优点。我们需要的是运用团队的思路和现代软体工程的手段,将其开发过程管理发起来,从而熟悉企业级开发的工具链,将软体工程学到的知识贯通到实作中。这也回答了“和以前相似的强调基础课程教育,什么特点使得我们的做法能获得强大的工程能力?”这一问题。以前更多注重理论知识的学习,而现在的做法是回归计算机工程的自身科学规律———实践为王。
改革考核评价标准,充分强调动手实践
以前我们一直是卷面考试,实验分数只是象征性的点缀。这本身违反了计算机工程的特点。只有改变评价考核标准,才能真正驱动学生充分锻炼工程。在课程软体开发环境中,我们采取了平时的考试结合期末考试的方式,而两者均为软体编写。期末考试在实验室上机编撰指定题目。不强调对一些函式名等死知识点的记忆,可以用线上帮助。这本身也符合软体开发的规律。
4结束语
我们在计算机工程教育上试图做一些回归本质的工作,也取得了一些效果。比如在软体开发环境中,学生普遍认为:“似乎将3年学的程式课全学习了,收获很大”。更有同学,在外企公司的面试中,直接运用了课堂上的知识,这在传统的教学环节中是难以获取的。但整个工作尚在起步阶段,所以仍有很多工作需要做,许多环节需要优化。我们希望在以后的工作中更深入探索工程教育的规律和本质。
171 浏览 4 回答
146 浏览 1 回答
119 浏览 3 回答
131 浏览 2 回答
158 浏览 4 回答
173 浏览 2 回答
168 浏览 2 回答
253 浏览 2 回答
350 浏览 2 回答
122 浏览 3 回答
187 浏览 3 回答
95 浏览 2 回答
117 浏览 3 回答
83 浏览 2 回答
312 浏览 3 回答