计算机 毕业 论文是有一定难度的论文,如果不懂一定要参考别人是怎么做的。下面是我为大家整理的计算机毕业论文优秀 范文 ,希望对大家有帮助。关于计算机类论文范文 【摘 要】全球信息化时代的到来,为人们的生活带来的巨大的变化,信息共享、信息交互程度的不断提高,也同时为计算机网络安全提出了更高的要求.如何能够使网络系统中的硬件、软件以及传输数据的安全得到有效的保证,成为信息时代的首要问题. 【关 键 词】计算机;网络安全;信息时代;信息安全 前言 计算机诞生之初功能较为单一,数据处理相对简单,而随着计算机 网络技术 的发展,计算机功能的多样化与信息处理的复杂程度显著提高.网络的出现,将过去时间与空间相对独立和分散的信息集成起来,构成庞大的数据信息资源系统,为人们提供更加便捷化的信息处理与使用方式,极大的推动了信息化时代的发展进程.然而,随之而来的是这些信息数据的安全问题,公开化的网络平台为非法入侵者提供了可乘之机,不但会对重要的信息资源造成损坏,同时也会给整个网络带来相当大的安全隐患.因此,计算机网络安全问题成为当今最为热门的焦点之一,随着网络技术的发展,安全防范 措施 也在不断更新. 2影响计算机网络安全的因素分析 影响计算机网络安全的因素有很多,其中既包括人为因素,也包括技术因素,因此,在计算机网络安全受到威胁时,首先要确定导致网络威胁的因素来源,这样才能够有效的、有针对性的进行解除,从而维护计算机网络信息的完整性、秘密性与可用性. 人为操作失误导致的安全隐患 计算机用户都拥有各自不同的网络使用权限,由于用户安全意识不强经常会给不法分子可乘之机,在用户将 泄露或 设置过于简单的情况下,非法用户很容易侵入网络系统,对网络内的数据信息进行使用或篡改、删除、破坏等.因此,由于合法用户人为保护程度不够而导致的网络安全威胁,是计算机网络安全中常见的隐患之一. 人为的恶意攻击 人为的恶意攻击是目前最为常见同时也是威胁力最大的计算机网络安全隐患,病毒与黑客就是人为恶意攻击的体现.恶意攻击往往具有很强的针对性,因此破坏程度较大,不仅能够截获、窃取和破译重要信息,同时也能够对信息数据造成破坏性的影响,对其的可用性与完整性进行损坏(计算机/计算机网络论文.木马程序是人为恶意攻击的代表性手段之一,它可以伪装成系统程序或其他可执行文件来诱使用户启用,从而为恶意攻击者提供端口信息,为实施进一步攻击带来可能.由此可见,人为恶意攻击的存在使计算机用户很难防范,特别是一般用户遭到恶意攻击的几率要大大高于一些高端用户. 软件本身的漏洞 随着计算机应用软件多样化程度的不断提高,软件开发的复杂程度也不断提高,成千上万的代码构成的逻辑指令,再由繁杂的逻辑指令构建成能够实现用户需求的软件功能,其中程序漏洞的存在在所难免.黑客就是针对这些漏洞来对网络进行攻击的,软件的漏洞甚至可以造成致命的网络打击,黑客的攻击与软件的不断完善是一对长期伴生的矛盾,也成为了不可忽视的网络安全隐患.免费论文下载中心维护计算机网络安全的几点对策. 物理安全维护对策 计算机网络安全包括物理安全与逻辑安全,物理安全往往容易被人忽略,如果能够引起人们的关注,计算机网络物理安全还是能够得到有效保障的.首先,物理安全是针对物理介质层次而言的,明确物理安全范围的界定,对构建物理安全体系非常必要.自然灾害所导致的设备物理损坏或操作失误而导致的硬件设备损毁,都属于物理安全范畴.因此,在计算机设备的维护上,既要做到最大限度的防止自然灾害所带来的破坏,同时更要注意人为操作的规范性,避免因操作不当而对硬件存储设备中的数据造成损坏. 防火墙过滤措施 防火墙技术是网络之间的一道安全屏障,目前所使用的防火墙具有双层式结构,外部防火墙可以实现数据包过滤功能,内部防火墙是内部网络与外部网络连接的一条安全通道.防火墙位于计算机与外部网络之间,实现了限制外界用户对内部网络的访问,同时也将内部用户访问外部网络划分为不同权限.任何接入因特网的用户,开启防火墙进行数据包过滤与内部防护非常重要. 入侵检测技术 入侵检测技术是针对计算机 系统安全 而设计的检测程序,启动入侵检测程序可以及时发现并向管理员 报告 系统中存在的未经授权的入侵或异常状况.入侵检测系统不仅可以发出入侵警告,同时也可以及时做出应对反映,对入侵源进行及时的切断,从而最大限度的保护计算机系统安全,提高计算机的抗病毒入侵能力. 计算机漏洞扫描措施 应用软件的不断更新,功能复杂程度的不断提升与网络复杂性的日益增加,都增添了计算机漏洞的产生几率,依靠人为的漏洞查询显然不切实际,那么如何对计算机漏洞进行查找并改进,就成为了困扰软件开发者的一个核心问题.安装计算机漏洞扫描系统就可以及时查找与发现系统漏洞,并对该漏洞进行威胁等级评估,同时提出修改建议.利用这种扫描工具,可以通过及时安装补丁来完善软件程序,弥补系统漏洞,从而消除安全隐患.计算机漏洞扫描不仅保护了系统的完备性不受侵害,同时也促使软件开发者不断关注软件漏洞,并及时修正程序,是一种促使计算机系统不断完善的有效手段,也是维护网络安全的重要对策之一. 4.结语 构建全球化的信息网络平台已经成为了当今计算机网络发展的共识,实现这一目标的最根本支撑点,就是强大的网络安全保障,因此,针对各种安全隐患而采取的网络安全对策显得尤为重要,应当引起广大信息使用者的广泛关注.无论是在局域网还是因特网都同样存在信息数据的保护问题,在人为因素与技术因素的干扰下,如何实现信息数据的最大化安全成为计算机网络安全技术发展的根本出发点.计算机网络安全对策应当更加全方位的针对各种安全隐患,并充分考虑到各种威胁的特点来实施,这样才能够实现我们保护网络信息数据完整性、可用性与保密性的目标,随着网络安全技术的进步而不断继续完善,是我们今后将继续探讨的核心之一. 参考文献 [1]王玮.小议计算机网络系统的安全维护[J].现代经济信息.2010(5) [2]王永刚.浅谈计算机网络系统安全[J].计算机光盘软件与应用.2010(5) 如何做好档案网站建设 随着Internet的高速增长以及网络的成熟和发展,网站的设计也开始从以技术为中心,即以追求技术的新颖性和技巧的网站设计思想,逐渐发展为以用户为中心的设计思想。网站的可用性及易用性等逐渐成为了网站能否吸引访问者的要点。相信网站的建立者也不仅仅满足于每天数十人次的访问量和下载量,而是思考如何让网站更加符合用户的需求,让用户认同网站的价值。为此笔者综合考虑了我国档案网站现阶段的情况以及以往学者专家的意见,提出自己的一些见解。 1提高档案网站的服务,完善档案网站建设 网络环境下用户需求的显著特点之一就是个性化、差异化,他们不再满足一视同仁的信息内容,而是要求网站能够根据他们的个体需求,提供不同的信息内容,档案网站的服务要立足于“以用户为中心”的宗旨,除了强化档案网站的现有的档案查询、现行文件查询的服务外,档案网站应不断推出更多的特色服务、个性服务。这一方面是档案网站面临的挑战,另一方面也是档案网站提高自身存在价值的良好机遇。 首先,加强民生档案工作,推动民生档案资源体系建设和利用体系建设。必须坚持以党的十七大精神为指导,深入贯彻落实科学发展观,充分发挥档案信息资源在改善民生方面的积极作用;积极争取党委、政府的重视支持,为民生档案工作的发展创造条件;主动加强与各涉民职能部门的协调配合,建立完善工作协调机制,实现各系统民生档案的良胜互动;主动了解群众需要,围绕民生需求,积极调整馆藏收集范围,建立面向民生的多元化馆藏体系;加大民生档案资源的整合力度,实现民生档案信息资源共享;大胆创新服务机制,切实加强民生档案数据库建设,努力构建便捷高效的民生档案服务体系。 其次,增强与用户的交互,利用多种形式与访问者进行广泛的互动,如:①网站论坛,档案网站可以组织网站的访问者(尤其是网站的固定访问者)针对某方面的问题进行广泛的探讨。②标签,利用标签,用户可以链接到相同或相关标签的网站、网页,并且对网页内容按照自己的方式进行描述和分类,这样可以方便信息资源的检索和共享。③档案博客,可以附加评论的个人网页,以个人或群体按时间顺序所作的一种记录,并且不断更新。博客这种形式给档案馆馆员与用户之间搭建互动的交流平台,使档案网站的服务更具个性化和针对性。不仅改善了利用E-mail方式互动中的沟通延时和不透明的弊端,而且这种透明式的互动方式,让关注同样问题的其他用户在浏览时便可以获得解答,减少了重复工作,提高了效率。在线实时交流,专家答疑等。档案网站可以嵌入类似于QQ或MSN等聊天的工具,由专门人员负责在线回答用户提问,解决用户在查询、索取信息时遇到的问题,这有助于让用户在遇到问题时能够得到快速的解决方案。另外网上调查可以让档案馆更好的了解用户对于档案网站的需求。 最后, 生活类 相关的服务。对于一个专业档案网站来说,如果提供相关的档案网站链接并不算新奇和特色的话,提供几乎所有与用户生活相关信息查询的网站链接则可以看作是档案网站强烈服务意识的生动体现。档案网站要吸引众多的访问者,需要提供更多与大众生活相关的服务,不仅包括与大众利益相关的现行公开的文件的查询,还包括实时的便民信息,生活中与档案相关的知识以及生活类小常识的信息,如各大新闻网站、天气查询、火车航空时刻查询、甚至是股市动态等,当访问者进入一个档案网站,也能够看到熟悉的网站的链接,只需选择点击就可进入相关网站浏览相关信息,这样能够给访问者提供贴心温馨的服务。 2加强档案网站日常维护 网站维护主要内容是网站内容的编辑添加,当网站出现问题能迅速解决,网站有什么活动可以随时美化自己的网站。另外,网站隔一段需要改版,改版是对网站总体风格作调整。包括版面设计,色彩搭配等各方面。改版后的网站不仅会让用户感觉改头换面,焕然一新,吸引更多的新用户;而且.是档案网站不断完善不断进步的需要。从档案网站这几年的发展来看,各地档案部门也意识到了档案网站是需要不断的完善和改进的,如上海档案信息网上设置用户对网站改版的看法调查,四川省档案信息网刚刚经历过一次新的改版等。 3建立安全的防护体系 档案数字信息安全不仅是保障档案管理现代化建设的关键,也是档案工作者普遍关注的焦点问题。数据安全在网站维护中是一个重中之重的课题。而要保障数据的安全性,那要从存储安全、系统安全和网络安全三个方面考虑。只有当三层保护连成一体时,才可成为一个完整的保护系统。 首先是信息的存储安全。信息的存储安全常常是被人们所忽视的地方。造成对存储安全疏忽的原因可以归结三个方面:①社会对计算机信息安全的保护系统认识不足,往往认为网络安全和系统安全得到保障以后就可高枕无忧了;②部门缺乏对内部非法入侵的认识和重视;③市场上缺少合适的存储安全保护产品。所以对于档案部门来说必须要建立和完善档案信息安全制度、信息调存的管理制度我国档案网站建设的问题,、对策研究和网站信息、编审制度等,构建档案信息安全体系。加强对从事档案网站维护的人员信息安全制度的培训,并对相关人员的权限进行严格的控制。即使是合法的用户,也应该有严格的访问控制。杜绝内部泄密的可能。另外要加强相关目录的权限设置,有些目录在系统安装时和安装后,web服务器系统后台进程的权限是不同的,必须及时修改,防止暴露某些重要文件信息,甚至重要数据文件被篡改。尽量选用安全性能高的存储设备,增强信息的保密性。 其次是系统安全维护,其实没有完全安全的 操作系统 ,我们要选用尽可能可靠的操作系统和硬件平台,并对操作系统进行安全配置。①检查和确认未知的安全漏洞,及时装好安全补丁。为了系统安全,必须使用正版操作系统或者开源操作系统。要及时使用好操作系统自身的更新机制,还要保证杀毒软件实时更新。②更改系统的默认设置。特别是下载现成的网站系统,下载完成后应该按照程序技术文档说明修改重要信息的路径,尤其是默认的管理员密码、数据库的路径、后台管理页面等信息。③建立详细的安全审计日志。通过日志分析,管理员可以知道系统受到过哪些操作,以便确定这些操作是否是经过授权的,然后采取进一步的安全策略。④加强登陆过程的强制认证,确保用户的合法性,并且应该严格限制登录者的操作权限,将其完成的操作限制在最小的范围内。 再次,加强网络安全维护。保证机密性、完整性、认证性和访问控制性是网络安全的重要因素。①物理措施,保护网络关键设备,制定严格的网络安全 规章制度 ,采取防辐射、防火以及安装不间断电源(UPS)等措施,减少物理方面的隐患。②访问控制,对访问网络资源的用户的权限进行严格的认证和控制。进行用户身份认证,对口令加密,设置用户访问目录和文件的权限。③数据加密,对网络中传输的数据进行加密,待到达目的地后再进行解密还原,以防止非法用户拦截后盗用信息。④采用专用的服务器。将论坛、留言板等资源和重要的档案信息资源分开设置在不同的服务器上。⑤利用网络隔离和防火墙。防火墙技术是通过对网络的隔离和限制访问等 方法 来控制网络的访问权限。在防火墙上可以很方便的监视网络的安全性,并产生报警。网络管理员必须审计并记录所有通过防火墙的重要信息。如果网络管理员不能及时响应报警并审查常规记录,防火墙就形同虚设。 最后,建立档案网站应急机制,为防御自然灾害、战争及日常意外事故,保证档案资源信息的安全与日常档案业务的运行,必须建立档案资源信息应急恢复备份系统,提供可靠的系统备份、应用备份、数据备份和系统恢复能力,提倡异地备份,保证档案网络工作不间断地运行。当网站出现不可预测性错误时,要在最短的时间内把网站恢复到最近备份状态。以保证档案网络系统健康持续的发展。 相关 文章 : 1. 计算机专业论文范文3篇 2. 计算机专业论文精选范文 3. 计算机论文范文大全 4. 有关计算机网络的毕业论文
兄弟,论文要自己用心写。我是过来人,自己写论文只有好处,没有坏处的。
机顶盒上游戏开发可以么,也是用C语言写的目 录第一章 绪论 机顶盒的产生背景 机顶盒的发展及其现状 游戏模块设计的必要性 模块设计需要解决的问题 3第二章 系统开发环境及相关技术介绍 XX-XX硬件平台 XX操作系统 内核 任务机制 消息队列 信号量 C语言的特点 7第三章 开发流程 功能需求分析 可行性分析 模块设计 编码 测试 11第四章 系统设计 游戏模块接口设计 游戏的初始化 游戏的按键读取和转化 游戏的暂停、恢复和退出 游戏算法设计 推箱子游戏设计 俄罗斯方块游戏设计 黑白棋游戏设计 14结 论 16谢 辞 17参 考 文 献 18附录 推箱子游戏源程序 19
近年来,随着全球网际网路技术的普及、计算机技术的迅猛发展、数字技术的瞬息万变,计算机工程在人们生活、生产中的应用越来越广泛。下面是我为大家整理的计算机工程毕业论文,供大家参考。
计算机软体大体分为三类,一种是总述,一种是系统软体,一种是应用软体,系统软体的作用是促使各个硬体按照一定的规律协调工作,保证计算机处于正常运转状态。而应用软体的作用则是为了实现某种使用愿望而开发出来的软体。
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年学的程式课全学习了,收获很大”。更有同学,在外企公司的面试中,直接运用了课堂上的知识,这在传统的教学环节中是难以获取的。但整个工作尚在起步阶段,所以仍有很多工作需要做,许多环节需要优化。我们希望在以后的工作中更深入探索工程教育的规律和本质。
168 浏览 4 回答
113 浏览 4 回答
214 浏览 7 回答
120 浏览 5 回答
254 浏览 5 回答
302 浏览 3 回答
89 浏览 6 回答
156 浏览 6 回答
225 浏览 3 回答
277 浏览 4 回答
105 浏览 9 回答
157 浏览 7 回答
313 浏览 2 回答
155 浏览 6 回答
349 浏览 8 回答