资源描述
办特色的公安信息安全专业
摘要:本文通过对中国刑警学院的信息安全专业坚持以打击信息网络犯罪为突破口,进行特色的信息安全专业建设情况介绍,来阐明我国信息安全专业建设如果能突出母体专业和所在高校或行业的特点来办学,将会造就出一批具有各自特色的信息安全专业,为我国信息安全专业办出水平提供了一个有效的样板案例。<br> 关键词:信息安全专业;特色;办学;中国刑警学院<br> <br> 1前言<br> <br> 中国刑警学院信息安全专业是伴随着全社会的信息化程度不断普及和提高,计算机犯罪侦查和电子物证检验工作面临着严峻的压力和挑战的形势下,于2002年2月26日申办成功的,成为继武汉大学后的第二批获批的信息安全专业,也是公安系统第一个具有信息安全专业的本科院校。2002年7月开始招收学生,目前该专业已招收六届本科生,2006年7月首批信息安全专业的本科生和二学位学生已经毕业,2007年7月第二届信息安全专业的本科生和研究生也已经走上了工作岗位,就业率为100%。用人单位无论是网警部门还是刑警部门反馈的信息都表明,学生在工作岗位上,办案能力强,业务全面,上手快。<br> 目前我们的信息安全专业已经发展成以计算机犯罪侦查和电子物证检验为主干,以刑侦和法律为两翼的学科专业教育体系。形成了一个专业特色鲜明、教学计划科学合理、教学内容新颖实用、教学科研办案紧密结合,具有相当规模效应的特色专业。2007年被学院推荐为国家级高等学校特色专业建设点。这样的结果得益于我们制定了特色鲜明科学合理的培养目标和与之相适应的教学计划。<br> <br> 2特色的培养目标<br> <br> 专业建设之初,在制定人才培养目标上,也走过了一段弯路。我们把培养合格的网络警察作为培养目标,而教学计划主要是在武汉大学信息安全专业教学计划的基础上,参考普通高等院校计算机专业的课程而制定的。经过大家的冷静思考,认为搞计算机专业或以密码学为核心课程的信息安全专业,我们和地方院校的相关专业相比没有优势。而且网络警察出口面太窄,目前网络警察主要从地方高校引进计算机和法律专业人才,我们的毕业生从竞争角度也没有优势,这样不利于专业的长远发展。为此,我们把培养目标定位在大刑侦平台上,培养掌握计算机犯罪侦查理论与技能,能熟练进行涉计算机案件的侦查和电子物证检验的刑事警察。这样,不仅可以充分发挥中国刑警学院的专业优势,而且学生毕业分配出口广泛,到网警部门他们具有懂刑事办案、懂法律的优势,到刑警部门他们有计算机专业特色,懂得涉计算机案件侦查和取证方法的优势。为所培养的学生受社会欢迎打下了坚实的基础。从教育理念上,我们占据了优势。有了一个科学的培养目标,才会有合理的教学计划。<br> <br> 3特色的教学计划<br> <br> 2004年,计算机犯罪侦查系对信息安全专业全面修订了教学计划。新计划以培养目标为指导,把“宽出口、实战型”作为教学质量控制的标准;把“点线面体”(主干课程是点、其前导后继构成线、主干课程线之间构成面、专业方向之间构成体)作为讨论计划的过程控制,使新教学计划专家组的讨论意见空前的一致。这一教学计划也得到实战部门的好评,他们只听了教学计划就已经开始“订购”两年后的学生了。<br> 该教学计划,把培养学生作为“大学生”、“警察”、“计算机专业人员”、“刑警”和“计算机案件侦查和取证人员”的基本理论、基本技能为模块进行设计。<br> (1)“大学生”模块<br> 这是教育部规定的所有大学工学本科生必须学习的课程集合。主要包括:大学英语、高等数学、普通物理学、大学生思想道德修养、马克思主义哲学原理、马克思主义政治经济学原理、毛泽东思想概论、邓小平理论与“三个代表”概论、军事理论等课程。<br> (2)“警察”模块<br> 这是作为警察必须学习的课程。如,公安学概论、擒拿格斗、射击、犯罪心理学、犯罪情报学、公安应用写作、逻辑学等课程。<br> (3)“计算机专业人员”模块<br> 本着教学性大学培养应用性人才的这一目标,根据计算机犯罪侦查和电子物证检验的特点和工作需要,对计算机类专业课程进行筛选和调整。如,适当减少原理性课程门数或学时,增加应用性强的课程的设置,特别要强调语言类课程的学习,因为在计算机犯罪案件现场勘查时,如果不知道所遇到的文件类型和基本含义,会极大影响案件侦查的成功,也会丢掉很多线索。在教学计划中,我们先后共开设了C语言程序设计、汇编语言程序设计、可视化程序设计、ASP程序设计、数据库原理与应用、Java程序设计等多门语言课程。但在强调语言的同时,也不能放弃能代表计算机专业特点的专业课程,这些课程可以培养学生的计算机专业功底。如,数据结构、计算机网络、操作系统原理、微机原理与接口等课程。<br> (4)“刑警”模块<br> 该模块是学生作为一名刑警应该掌握的基本原理和技能。我们把刑侦的专业主干课程均纳入了该模块。如,刑法学、刑事诉讼法学、行政法与行政诉讼法、刑事证据学、犯罪现场勘查、刑事案件侦查、预审学、查缉战术、侦查措施、经济犯罪案件侦查、治安案件查处等课程。<br> (5)“计算机案件侦查和取证人员”模块<br> 该模块主要是计算机犯罪侦查和电子物证检验人员所需要的知识。如,信息安全基础、网络安全技术与防范(含密码学) 、计算机司法检验学、计算机犯罪案件侦查、计算机恶意代码原理与识别、常见操作系统分析、计算机信息系统安全法规、信息卡技术与安全等课程。<br> 该教学计划以计算机专业理论和法律应用为基础,以计算机犯罪侦查和电子物证检验技术为重点,以刑事案件办理为特色的实用型教学计划。培养既懂得传统刑事案件的办理,又具有涉计算机案件办理能力的复合型人才。<br> <br> 4特色的课程建设思路<br> <br> 为把信息安全专业办出刑警学院特色,我们将信息安全专业的课程划分为独有课、特色课和共享课。<br> (1) 独有课就是我们学院有,其他院校没有或非常薄弱的,如“计算机犯罪案件侦查”、“计算机司法检验学”和“计算机恶意代码原理与识别”等课程;<br> (2) 特色课就是其他院校有,我们学院有特点的课程;<br> (3) 共享课就是计算机及法律相关的课程,各院校开设的内容基本类似。<br> 对各类课程采取不同的措施和思路。对共享课和特色课中的非特色部分,向重点大学靠拢,以他人之长补己之短,派计算机专业毕业的青年教师到在这些课程方面全国领先的重点大学学习,听一轮课,从中学习和了解他们的教学计划、教学内容、教学方法、教学手段、理论教材、实验教材、实验设备、实验方式等内容;特色课中的特色<br> 在于我们比地方大学有与公安实战联系密切的优势,比其他公安院校有刑警学院在刑侦和刑技方面的优势。要把握好以公安需要、应用办案为教学出发点,以培养实用型人才为教学目标的总体方向;而独有课是我们专业的拳头,要加大力量,选精兵强将,以老中青结合的方式,划分成课程攻关小组,甚至不惜重金聘请专家来共同搞好。<br> <br> 5特色的师资队伍建设<br> <br> 由于信息安全专业是刚刚兴起的专业,一些教师还没有进入角色,新课多,专业性强,任务量大,因此,提出“以课程建设促学科发展,全体动员,学生参与,加快发展”的课程建设总体思路。<br> 将教学计划中的课程划分成课程小组,采取组长负责制,定时间、定任务、定目标。根据课程内容的需要,到重点大学进修加强理论基础,学习教学模式;到公安实战部门锻炼和听专业系的课程,了解公安一线需要,并学习涉计算机案件的办案方法。遇到难点形成科研课题,与各方面的专家共同进行攻关。再将办案方法和科研成果融入教学。这样就很好地实现了以课程建设促教学、科研和办案的发展,即实现了学科发展的目标。<br> </p> <p> <p>由于教师数量少,工作任务重,有许多入门操作阶段的工作,以学生参与科研的模式,充分调动在校生特别是信息安全专业学生的积极性(在这方面已经在毕业论文和志愿者学生中进行了较成功的尝试)。在学生中成立“信息安全俱乐部”,教师为之提供理论和实战需要方面的指导,并提供适当的上机条件,让他们学会使用现有大量信息安全方面的软件,然后以讲座或交流的方式给全院师生讲解。这样不仅使教师摆脱了大量基础操作软件的调试,也极大地调动和提高了全体警院学生办理涉计算机犯罪案件的意识和能力。<br> 为保证教学质量,所有新开课程上课前,课程组要对教学大纲和教学计划共同讨论,提出意见。在信息安全专业正式讲授前如果条件允许要在全院进行讲座或选修课,这样一轮教学过后专业教学就会较为成型。<br> <br> 6特色的实验室建设<br> <br> 根据我院信息安全专业以计算机犯罪侦查、电子物证检验和网络监察与监控为方向的特点,我们建成了全国高校第一个“电子数据取证实验室”和全国公安院校第一个“网络攻防实验室”。<br> “电子数据取证实验室”采用与公安实战无缝对接的思想,即公安实战单位用什么设备我们就学什么设备。这样使学生的动手能力和上手快的特点得以保障。这里不仅包括计算机取证专用机、还包括各种取证平台和取证软件。<br> “网络攻防实验室”重点解决在涉网案件中,网络痕迹的搜索以及网络监控、网络攻防技术演练等需要的实验室条件。该实验室不仅有核心交换机、路由器,还有防火墙、入侵检测系统、无线网络环境。单机上的主机与虚拟机、小组内的成员之间和小组间的攻防演练均可以实现。<br> 这两个特色实验室的建成为专业课教学、为科研和办案提供了物质保证。<br> <br> 7特色的教学科研办案模式<br> <br> 我们在进行教学和科研工作的同时,还进行办案工作。办案工作不仅有教师定期到公安实战部门参与办案执法,还有远程咨询,更有利用现有的电子取证实验室对实战部门送来的案件进行检验的工作。<br> 我们24人的教师队伍中,
<P>程序员如何“突围”</P>向阳生涯的个人咨询客户数据显示,近50%的个人客户为工作年限在3年以内的职场人。虽然他们来自不同行业、不同职位,但遇到的问题却有相似之处——长期在一线岗位上工作,要晋升却找不到突破口,考虑跳槽、转行但不确定因素太多……这些问题其实是职业生涯探索阶段的常见病。 <BR> <BR> 进入IT行业是众多年轻人的职业梦想。然而,一旦身入其中,几年下来后却发觉头顶的光环渐渐散去,职业梦想似乎也不再有当初想象中那么美好。被称为IT蓝领的程序员,工作强度大,整天面对机器感觉自己也像个编码机器,而且信息技术更新换代快,“饭碗”看上去也不是那么稳定。 <BR> 近日,向阳生涯职业咨询机构就接待了一位名叫Jacky的IT公司的程序员。大学时代的Jacky,有近2/3的时间是在校园的机房里度过的。那时的他疯狂地对电脑编程着上了迷。毕业前,Jacky早早地被一家IT公司“锁定”,担任程序员。进了公司后,Jacky拥有火一般的热情,参与了公司很多项目,深得上司欢心。公司的器重,再加上个人的良好表现,Jacky的薪水比以前的同学多了一倍。一晃两年多过去,Jacky在公司里的地位看似稳定,但他自己却越来越感到困惑: <BR> 首先,程序员的工作强度很大,Jacky一直在超负荷运转,工作状态就一个字——累。由于IT行业的特殊性,他还必须不断地更新知识;其次,现在的IT业不比以往,面对大量涌入的职场新人,IT程序员的竞争相当激烈;此外,在金融危机的影响下,Jacky的工资已经很长时间没有涨过,和其他同学相比,他的工资也不再有那种领先优势;还有一点让他感到非常不安,他感觉自己的竞争力在缩水,不知道下一步职业发展去向何方。 <BR> 针对程序员Jacky的困惑,顶级就业力专家、向阳生涯资深职业规划师闫岭认为,Jacky的处境代表了IT行业中程序员群体的问题。向阳生涯的研究发现,近年来,IT人才市场从业人员的整体年龄趋于年轻化,25岁以下的择业者占求职人数的70%左右。年轻人才给市场注入了活力,也使得IT行业的竞争更加白热化——人才流动性很大,岗位相对不稳定;更关键的是,如果在职业生涯最初的3至5年内得不到晋升或转型,随着年龄的增长,程序员很容易因为长期的高强度工作而产生职业倦怠,并且在技术更新的大潮中面临竞争力衰退的残酷事实。 <BR> 为此,闫岭建议,像Jacky一样陷入职业发展困境中的IT程序员应当重新评估自己的职业兴趣、能力及性格,立足个人核心竞争力,积极寻求新的职业发展方向,实现职业生涯发展的“突围”。具体来说,程序员的转型策略可以从以下三大方向寻求职业“突围”。 <BR> <BR> 方向一:向IT培训师突围 <BR> 如今,IT培训市场蛋糕相当大,利润空间可观,行业发展前景看好。科班出身且拥有丰富编程实战经验的IT程序员可朝培训师方向转型。一开始,可以在IT公司内部担任培训工作,积累转型的能力,为将来到IT专业培训机构担任老师奠定基础。与程序员岗位相比,IT培训师的工作压力相对比较适中,且比较稳定,无明显的年龄限制,值得程序员视其为长远发展的目标。 <BR> 但这一转型也要综合考虑自身的优劣势。以上文中谈到的程序员Jacky为例,他的优势是拥有丰富的编程、项目经验,曾参与过许多成功案例,而他的不足是缺少培训工作经验。因此,Jacky如果要向培训师转型,还需要接受一些专业训练,提高培训师所需的职业技能。 <BR> <BR> 方向二:向IT营销人员转型 <BR> IT与其他行业不同,由于技术性较强,营销人员一般也须有较强的技术背景。互联网公司、电子商务公司和
软件公司目前都需要有技术背景的营销人员。另外,电子商务的火爆,使得传统企业开始重视电子商务营销,也需要有技术背景的营销人员。这类工作薪水不低,加上提成应该可以拿到高于一般程序员的薪水,同时也相对比较稳定。 <BR> 以Jacky为例,他的优势是广泛涉猎了各种编程软件和工具,对IT行业也有相对深入的了解,为他转向营销提供了较宽厚的平台。与此同时,Jacky面临的挑战是:过去的工作主要是跟机器打交道,而营销工作恰恰需要跟人打交道,这对Jacky来说是一个很大的挑战。因此,Jacky需要加强沟通与人际交往的能力。此外,最好进一步通过测评和专家深度挖掘和分析,来确认Jacky是否具备营销人员的特质。 <BR> <BR> 方向三:向项目管理挑战 <BR> 如果说前面两条出路转型的不确定因素比较多,那么项目管理可以说是Jacky更便捷的发展之路。软件项目经理是目前人才市场上炙手可热的人才,有丰富经验、外语好的软件项目经理最是抢手。根据向阳生涯管理研究中心的数据显示,在不少大型IT企业中,软件项目主管的薪水是同层次主管中最高的,年薪平均达15万元。不仅如此,优秀的项目经理在组织内朝高层管理人员发展的空间也很大。 <BR> 对Jacky这样有技术、有能力、参与过多个软件开发项目的人,对项目管理也并不陌生。这是Jacky向项目管理方向发展的优势。但是,Jacky虽然以往参与过不少项目的开发,不过一直是项目团队里普通的一分子,没担任过项目主管。而通常企业在招聘项目经理时,都要求有带领团队进行项目开发的经验,这是他的劣势。因此,Jacky需要参加项目管理方面的专业培训课程,增长自己在流程管理、沟通协调等方面的能力,积累资本,逐步向项目管理岗位迈进。 <BR> 向阳生涯职业咨询机构提醒大家,通常情况下,职业发展不可能一步到位,大部分成功的职业经历都是在一次次理性的择业决策中实现的。所谓理性,首先要有明确的职业目标,之后每一次跳槽、转型、充电都是在向着职业的终极目标一步一步迈进。这样的职业发展才能事半功倍。向阳生涯衷心希望,各位IT业迷茫的“Jacky”能够尽快定位自己的职业目标,早做打算。 <BR>
<P> </P>
</p>
摘要:本文针对三类普通高等本科院校毕业设计(论文)水平下降的现状,总结笔者多年指导计算机专业学生毕业设计(论文)的实践工作,对该专业学生的毕业设计(论文)进行分析,给出了其中存在的问题,并从社会、学校、教师和学生等方面分析问题产生的原因,根据计算机专业本科毕业设计(论文)的教学目标,给出相应的对策。实践表明,该对策是切实可行的。<br> 关键词:毕业论文;计算机教学;人才培养<br> <br> 1概述<br> 本科毕业论文是高等教育人才培养的重要教学环节,毕业论文(设计)的质量也是国家教委对高等学校本科教育水平评估的一项重要指标[1]。对计算机专业来说,它更是培养学生实践能力、创新能力和初步科研能力的重要实践环节,对训练学生综合应用所学知识,提高分析问题解决问题的能力有着重要的作用。但就目前来看,特别是对三类普通高等院校的计算机专业学生来说,由于起点低,基础比较薄弱,本科生的毕业设计普遍存在着不尽人意的地方,在一定程度上没有达到计算机专业毕业设计的目的。<br> 计算机专业的毕业设计实践性很强,除了选理论课题的学生之外,其他课题要求学生不仅要写出论文,一般还要做出一个软件或硬件的系统。现在计算机专业学生的毕业设计大体可以分为:理论、软件和硬件。实际上学生的毕业设计多是做软件或硬件的,做理论的不多,即使做理论也要求结合实际问题来进行编程验证。设计涉及的方面一般有:网页设计;网页编程;平面设计;动画设计;网络设计、搭建、调试和维护;网络安全;单片机及自动控制等。<br> 以上涉及的设计工作就是要培养学生综合运用所学的知识的能力,包括软件开发方法、算法设计、<br> 数据库设计、程序编写、程序调试等。最后要求学生对所做系统的开发过程进行总结,写出一篇毕业论文。论文中除了过程的叙述之外,还要对系统的特点和关键技术进行论述,而论述的要好,需要对系统有深刻的理解,另外还有恰当的表达方法和一定的语言功底。学生从查资料到选题,再到查资料、做系统、做论文,是一个非常系统的过程。如何通过这样的系统训练来真正达到毕业设计的目的,培养学生的实践能力、创新能力和初步科研能力,需要学校、指导教师和学生自己三方面的共同努力。<br> 2存在的主要问题<br> 2.1毕业设计的选题具有局限性<br> 每年学生毕业设计的选题多是与上一届大同小异,指导教师一般认为学生科研能力有限,不让学生参与自己的课题。比如学生做管理系统的居多,医院药房管理系统、人事管理系统、学生管理系统等。学生之所以选这些系统来做,也是因为这些系统的实现从技术上来讲其实是大同小异的,系统的实现方法在许多计算机书籍中可以找到,类似的源代码在网上也很容易找到,已经成型的论文也颇多,到时候学生可以把界面一换,就成了自己做的系统,把别人的论文稍加修改就成了自己的论文。<br> 作者简介:乔孟丽(1974-),女,山东泰安人,临沂师范学院讲师,硕士,主要研究方向为人工智能技术、教育管理。<br> 2.2学生所做的多数软件功能不完善<br> 学生一般是按照参考资料上给的实例,实现功能并调试的,其功能是很不完善的,并没有按照软件工程的步骤对问题进行调研,写出需求分析进而对系统进行设计。比如说人事管理系统,只是简单做几个页面,包括管理员和普通用户权限的划分,添加员工,删除员工,查找员工等几个简单的功能,其实用性较差。程序调试也只限于代码是否正确,功能能否实现,对功能的可扩展性,系统的安全性考虑的很少。<br> 2.3论文写作内容空洞,重点不突出<br> 论文从目录看,一般都主要由开发工具介绍、数据库设计、整体设计、详细设计等组成。摘要和前言在内容上重复比较多,英文摘要多是语法不通或不专业的词汇,原因是学生为了省事,用在线翻译或请英语专业的人翻译。论文各部分不符合科研论文的规范[2]。在具体介绍系统时,不能重点写出该系统的特点在哪里,是如何实现的,关键的技术和原理是什么。比如在进行数据库设计时没有突出为什么要这样设计,与通常的设计有什么不同,有什么优点,有什么不足;在表述系统具体实现时,用于论述的语言很少,多是靠粘贴代码充篇幅;结论部分不会写,多是写的自己开发系统的感想;语言表达缺乏科学性,在用词上不够准确;另外,有些学生的论文的格式不规范,用Word排版不过关,图表使用不当或不规范,没有充分结合图表来说明问题。<br> 3问题原因分析<br> 3.1社会大环境的影响<br> 由于近年来本科学生的扩招和教育产业化,特别是对于三类本科院校来说,教学质量正面临着巨大的挑战,由于扩招,势必导致生源素质的起点下降,同时又由于教育的产业化,使得本科生由以前的小班上课变成现在的大教室学习,其学习质量必然要受到影响。指导毕业论文的教师任务很重,每个教师要比以前指导更多的学生。另外,网络上的资源日益丰富,代写,售卖本科毕业设计、毕业论文的网站屡见不鲜,更有甚者还提供售后服务,满足学生的一系列要求,而且价格相对比较便宜,学生往往为了省事直接抄袭、让别人代写或买一个做好的设计和论文了事。<br> 3.2指导教师的选择不当和责任感不强<br> 学院一般是给每个老师分几个学生带毕业设计,学生在选题的时候一般是根据自己的兴趣专长或难易程度来选,比如学生对ASP.net比较熟,就想用ASP.net开发工具来开发系统,但是其指导教师并不一定对ASP.net十分熟悉,这就不能不影响后续对学生程序编写调试时的指导。另外,指导教师往往忙于上课或搞科研,如果学校对教师的指导过程不予以监控,指导教师毕业设计指导的报酬又很低,学生又忙着找工作和考公务员等,诸多原因就造成了学生不主动联系老师、老师忙着也不找学生,对学生的指导不够,到最后老师只是在设计质量和论文写作上把把关。<br> 3.3学生平时的实验训练和知识掌握不够扎实<br> 要想做好毕业设计和论文,既要系统地掌握和运用专业知识,还要有较宽的知识面并有一定的逻辑思维能力和写作功底。比如说用ASP.net做一个动态网站,起码要有软件工程、数据库、平面设计、程序设计与调试的知识。要想写好论文,还要有较好的汉语和英语的语言基础、语言表达能力和Word排版基础。这些知识和能力的培养,要靠平时的积累,不是单单靠毕业设计那一学期获得的。<br> 3.4答辩流于形式,把关不严<br> 由于本科生数量过多,答辩任务很重,而最后一学期的学生还要做其它的事情,比如找工作,考公务员或参加一些社会证书培训等,加之学校在制度上对答辩的监督不够,导致答辩的时候,老师把关不严[3]。这势必造成学生的侥幸心理,觉得不好好做毕业设计也能通过。<br> 4对策<br> 4.1功夫做在平时,夯实毕业设计的基础<br> 计算机专业的课程设置一般先是专业基础课,再是专业课,教师在教授学生基础课时,就应该注意与后续课的联系和为科研训练服务。比如在讲Word排版的时候,就应该讲到如何对论文排版,给出一篇没有排版的论文,让学生按照既定的格式排版。因为论文排版要涉及到Word的一些较高级的操作,如分页符、分节符、页脚内容不一致等操作。这些操作在一般的文章中是用不到的。在专业英语教学时,让学生学会如何翻译论文的英文摘要。对于专业课的教学,平时就注重学生逻辑思维能力和实践能力的培养。如上软件工程课时,让学生选课题,进行调研,写出需求分析报告等。通过平时就布置一些大的作业和小论文让学生做,以培养学生实践能力,培养其科研兴趣和端正的科研态度。<br> </p> <p> <p>4.2加强思想教育,集中进行必要的指导<br> 在让学生做毕业设计之前,一般的做法是学院下发《毕业设计(论文)指导手册》让学生自己看,而学生往往对毕业设计不重视,不仔细看。在毕业设计前,应集中向学生讲清楚毕业设计的意义、毕业设计的评价方法、毕业设计的基本过程和研究方法等,这样不仅可以让学生在思想上引起重视,对毕业设计进行概要的认识,也减轻了指导老师分别给自己学生讲解的麻烦。<br> 4.3设计过程监控,改革评价体系<br> 通常学院对教师的指导过程没有详细的要求,学生毕业设计的成绩也只是根据最后设计成果、论文和答辩的好坏评定。至于学生在整个毕业设计期间所作的工作并没有进行全面的评价和监控[4]。如果学生不是自己做的毕业设计,又在答辩前熟悉了别人给设计的东西,单从答辩环节有时很难看出。一般院校的毕业设计时间安排为十周左右,对于学生查资料,选题,写开题报告,毕业设计到最后论文的完成,这个过程应该设立考评制度,如要求学生写出阅读文献的报<br> 告,要求学生运用对现有的文献资料快速地、大量地阅读、比较。在浏览中勤做笔录,随时记下资料的纲目,记下资料中对自己影响最深刻的观点、论据、论证方法等,记下脑海中涌现的点滴体会。对学生开题报告的质量、需求分析报告的质量、系统设计报告的质量和中期检查的结果也列入毕业设计评价之内。这种过程监控实际上既对学生加强了管理,也加强了指导教师对学生指导的力度。<br> 4.4加强制度建设,为质量提供保障<br> 在指导教师的设立上要力求合理,针对学生的不同选题,可以适当对指导教师进行调整,保证指导质量。学院从制度上对毕业设计进行严格检查,与教师教学评价挂钩,不仅检查最终的毕业设计结果,还要从学生调研、选题直到毕业设计和论文完成的过程进行监控。另外,为调动指导教师的积极性,应该提高指导教师指导毕业设计的报酬,并对于选题新颖,毕业设计质量高的学生和指导老师予以奖励。对于参与毕业设计答辩的老师要进行监控,明确其各自的职责,严格把关,对于达不到要求的学生,对抄袭、买卖设计或论文的学生进行严肃处理,在制度上纠正不良的学风。 <br> 5结束语<br> 毕业设计(论文)是一项综合性的训练,要提高计算机专业学生的毕业设计(论文)的质量,首先要围绕培养目标,在大学前三年就下手,让学生有着扎实的理论基础和程序编制、程序调试等实践能力,这是根治毕业设计水平不高的根本所在,另外在制度上对学生和指导教师实施过程监控,是使学生顺利较好地完成毕业设计任务的保障。<br> 参考文献:<b
摘要:C++是应用最广的编程语言,C++的应用水平代表着一个国家的软件产业发展水平,但是C++是最难掌握的编程语言。本文认为,只有自觉地把C、C++和数据结构作为一个整体,才能解决C++学习难的问题。<br> 关键词<br>本文来自:计算机毕业网 :C语言;C++语言;数据结构;重用程度<br> <br> C++是计算机软件领域中应用最广的编程语言,包括操作系统、设备驱动、编译器、系统工具、图像处理、数据库系统以及通用办公软件等在内的能够代表一个国家软件产业发展水平的基础软件都是适合C++应用的领域,因此,C++的应用水平代表着一个国家的软件产业发展水平。不仅如此,C++具有的既可以针对底层硬件设计又可以面向应用软件设计的功能使它成为我们深入分析、理解和应用其它各种软件的方法,学好C++,再学用其它软件就容易多了,用侯捷的话说,“万千使用者前赴后继的动力是:一旦学成,妙用无穷”。<br> C++也是最难掌握的编程语言。一是内容多:C++新标准出现之后,“一个覆盖面非常广阔的库现在成了标准C++的一部分,其中包括以前称为STL(标准模板库)的内容。新的string类型、一组顺序和关联容器类型(比如vector、list、map和set),以及在这些类型上进行操作的一组可扩展的泛型算法(generic algorithm),都是这个新标准的特性”[1]。二是语法和语义不易理解:C++程序要由C++编译器在语言层面上展开,例如,程序员设计的很多函数并不在程序员程序中被调用,而是在展开之后的内部C++程序表现中被调用,这与传统的结构化程序设计完全不同,令很多人感到困惑,他们抱怨C++编译器说:“它在你的背后做事情”[2],而C++很多令人疑惑的概念都和C++编译器有关。本文认为,只有从C、C++和数据结构作为一个整体出发,才能解决C++学习难的问题。<br> <br> 1数据结构是语言研究的对象<br> <br> 长期以来,C、C++和数据结构都是相互独立的课程:C与C++的联系仅仅限于C++与C兼容,而主要强调的还是它们在方法上的截然不同;数据结构强调不依赖任何编程语言的描述,并且更多的是用类语言即非编程语言描述,即便使用了编程语言,也仅是作为描述数据结构的工具。C++标准的出现,迫使我们重新审视它们之间的关系。<br> 当我们说,数据结构不依赖任何编程语言的描述,或者说,编程语言仅仅是描述数据结构的工具,那是为了不受编程语言的语法细节的影响,以突出典型算法的设计和算法的时间复杂度分析。但是,如果重点研究的是数据结构代码的重用性,那么数据结构不仅必须用编程语言描述,而且还必须研究用什么编程语言描述才能提高数据结构代码的重用程度、使语言能够进一步发展的问题。我们要学习的C++标准库以及建立其上的重用程度更高的泛型算法都是这种研究的成果。在这里,数据结构不再是编程语言描述的对象,而是编程语言研究的对象,是编程语言的一部分。用个比喻来说,研究资本主义生产活动中的人和研究解剖学意义下的人,意义是不同的。<br> 数据结构作为语言的研究对象,要求我们按照语言发展的规律去研究它。语言发展是语言重用程度不断提高:从汇编语言,C语言,到C++,Java的流行,是基础设计方法重用程度的提高;从指令语句到函数,从对象到构件,支持重用的语言机制日渐成熟。按照语言发展规律去研究,就是“从事物的发展、‘自己运动’、变化中来观察事物” [3],即从事物的关系和它的必然发展去观察事物本身。Bruce Eckel教授在他的Thinking in C++(C++编程思想)一书中说:“由于很多人学习走了弯路,因此,我们已经开始探索C程序员转移到C++语言性能层上的方法” [4]。他先用C语言实现一个袖珍C库(一个简化的顺序结构),然后再转换为C++实现,由此进入C++。他认为,“C++的主要设计目标之一是使库容易使用。这意味着,在C中使用库有困难。懂得这一点就对C++设计有了初步的了解,从而对如何使用它有了更深入的认识”[4]。其实,这不仅对C程序员,而且对任何想学好C++的人来说,都是重要的。<br> <br> 2数据结构领我们从C走进C++<br> <br> Bruce Eckel教授从软件发展的角度,揭示了C、C++和结构的联系:C需要创建结构,但是C语言结构不能像语言内部类型一样使用,这不利于软件重用程度的进一步提高,于是,“用户从设计自定义数据类型开始扩展C语言” [5],“C++对C的结构体类型作了实质性的扩充” [5]。可以说,“C++的许多性能都围绕着一个根本的思想:创建新的数据类型的能力”[4]。这里需要阐明结构和数据结构的关系:结构是变量集合体,数据结构指向量、集合、树、图、代数方程、多项式等典型离散结构,也可以说,是典型算法依赖的结构,或者说,是服务于典型算法的结构,数据结构和算法是相互依存的。从语言上讲,结构包含数据结构,从算法上讲,结构指数据结构。<br> Bruce Eckel教授实际上提示了学习C++的一个基本原则:不要从概念出发,要从程序设计的需要出发,而且他选择了具有典型意义的需要——顺序结构的重用性。很多C++教材为了避免数据结构的内容,选择了从数值结构(而且常常是简单的数值结构)向类的转换的学习方法。一个需要是否具有典型意义,要看它在多大程度上反映语言的必然发展。C++的特征可以归结为四个方面:一个更好的C,支持数据抽象,支持面向对象编程,支持泛型编程。顺序结构比数值结构具有更多的需要抽象的内容,以结构串为例:因为它含有指针成员,所以必须创建构造函数、拷贝构造函数、析构函数、拷贝赋值运算符重载;因为有C文本串成员,所以必须创建转换构造函数、转换赋值运算符重载、成员转换函数;因为具有数值计算的特点,所以必须重载逻辑运算符和关系运算符;而且它具有的丰富的、需要封装的函数,其函数代码几乎就是C结构串代码,这使从C到C++的转换更“平滑”、渐进,使我们可以集中研究转换的C++内容;还有,转换后的C++类串是更好的C串;特别是,C++类串是研究C++标准中非顺序结构、面向对象编程和泛型编程的基础。而数值结构因为一般不含指针成员,所以在向C++转换过程中,拷贝构造函数、析构函数、拷贝赋值运算符重载可以创建也可以不创建,没有差别,而且转换后的结果在以后的C++标准的学习中应用很少。<br> 既然C++产生于C程序设计的需要,那么就可以用C语言明确地表达这种需要和满足这个需要的可能的方法,这是人的主观能动性。结果是一组C语句可能被抽象为一条C++语句,或者说,一条C++语句可能被解读为一组C语句,这使我们可以从C的角度反向审视令人困惑的C++语法和语义,困惑被C程序员自觉能动的活动即实践解除了。“凡是把理论引向神秘主义的神秘东西,都能在人的实践中以及对这个实践的理解中得到合理的解决” [6]。以结构串(简化的)为例,表1和表2显示了从C描述到C++描述的部分转换内容。<br> <br> 3学习中的辩证思维<br> <br> 概括起来说,C、C++和数据结构是相互包含的整体。辩证法所说的相互包含或某物中包含他物,并不是指他物作为一个现成的细小的东西包含在某物中,而是作为某物的一个方面、一种趋势、一种因素包含在某物中。C包含C++,是指C包含着C++作为其必然的发展。C++包含C是因为它是更好的C,例如,C++的向量类模板std::vector就是更好的C数组,C++类串就包含着C文本串。“每一种事物都有它的特殊的否定方式,经过这样的否定,它同时就获得发展,每一种观念和概念也是如此”[7]。在这个意义上讲,C、C++和数据结构的学习是统一的。<br> </p> <p> <p>Bruce Eckel教授虽然意识到他自己提出的从顺序结构的C描述到C++描述的转换在引入C++概念时的重要作用,但是他没有理解其中所包含的全部意义,自然也没有完全按照上述的分析去做,而是把重点放在引导读者从C++编译器实现汇编代码的角度反向审视C++的语法和语义。为了使汇编代码简单,他只得使用“玩具例子”,从而让他最初想法中的许多积极因素从中流失了。<br> 在C++的学习或授课过程过程,我们会受到各式各样思想的影响。而要把C、C++和数据结构作为为一个有机的整体,必须坚持辩证思维。我们遇到问题,都有自己的思想,无论愿意还是不愿意,有意还是无意,都受某种哲学的支配,问题只在于,我们愿意接受哪一种哲学的支配。对自然科学的成就,辩证唯物主义不去概括,唯心主义、形而上学等哲学就会去总结。常常是,我们自以为得意的、甚至时髦的观点,其本质却是在几百年前就已经提出了的、早已在哲学上被废弃了的命题。例如,程序设计原理发展之快已经超越了人们的适应能力[5],这是现在流行的、虽然表达多种多样但实质相同的不可知论,它阻碍了我们按照辩证法的要求在程序设计领域内去揭示这个不断的转变过程的运动规律的实践。又例,“世界是由对象构成的,因此,面向对象的程序设计方法用人们看待现实世界的方法来表达计算机程序”[13]。那么请问,世界一开始就是由对象构成的,为什么面向对象的程序设计方
展开阅读全文