论文投稿百科

c语言毕业论文打印

发布时间:2024-07-05 15:29:19

c语言毕业论文打印

打印店就可以啊,简单点的就用A3打一个封面,你要是有钱的话也可以选择更好的印刷封面。。不过似乎没那必要吧,那个钱可以去买一本了

学术堂整理了一份标准的计算机论文格式供大家进行参考:(一)题目论文(设计)题目应简短、明确,把毕业论文的内容、专业特点概括出来。题目主标题字数一般不宜超过20个字,可以设副标题。主标题用宋体三号字加粗;副标题用宋体小三号字,均在文本居中位置。(二)摘要及关键词(中文在前,英文在后)论文摘要字数要适当,中文摘要一般以300字左右为宜,“中文摘要”字样为黑体四号字,居中格式。另起一行打印摘要内容。关键词是反映论文(设计)主题概念的词或词组,一般每篇可选3~5个,多个关键词之间用分号分隔。摘要内容和关键词与正文字体字号相同,均为宋体小四号字,行距为倍,但“关键词”三个字字样要加黑,其后要加冒号,左对齐。另起一页打印英文摘要和关键词,英文摘要的内容应与中文摘要相符,一般以200个英文单词左右为宜。空一行后打印英文标题,再空一行居中位置打印四号加黑“ABSTRACT”字样,另起一行小四号打英文摘要。使用的英文应该准确、通顺。“Key Words”加黑并加冒号,左对齐,多个关键词之间用分号分隔。英文全部采用Times New Roman字体。(三)正文毕业论文正文中各级标题顺序为:一、(一)、1、(1)、①。毕业设计可采用下列标题顺序:1、、、①。一级标题即“一”用四号黑体打印,每一部分结束后另起一页开始下一部分。正文内小标题力求简短、明确,题末不用标点符号。。二级标题(一)用黑体小四号字。三级标题1后用点“.”,宋体小四号字加黑。四级标题(1),字体字号同正文,为宋体小四号字,行距为倍。文中如有插图和照片,应比例适当,清楚美观;插图应标明图序和图题,序号和图题之间空一格;图序以阿拉伯数字连续编号,图题一般居中位于图的下方。文中如有表格,应结构简洁,表格应有表序和表题。序号和标题居中位于表格上方,两者之间空一格。表序以阿拉伯数字连续编号。如果表格引用别处,要注明表格的出处和相关信息。文中一行不占页,一字不占行。(四)注释毕业论文注释统一采用页下注的方式,在所需引用或注释处用上标①、②、③……表示,注释内容包括作者、出处、出版年份、页码等信息。注释也可是解释性语句。所有注释采用小五号宋体。(五)参考文献按正文参考文献出现的先后顺序用阿拉伯数字在方括号中连续编号。文献中如果有三位以上作者时,只列举前三位作者,中间以逗号隔开,其余以“等”字表示。在正文后另起一页采用四号黑体打印“参考文献”四字,空一行,采用小四号宋体打印参考文献的内容。“参考文献”字样和内容均采取左对齐格式。每篇论文的参考文献不得少于15条,要注重文献的时效性和权威性。(六)页眉论文的页眉内容为论文题目,宋体小五号字,居中。(七)附录(必要时可加,不必要时,无需附录)对于一些不宜放在正文中,但又具有参考价值的内容可以编入毕业论文(设计)的附录中。按照文中出现的顺序依次列出附录的内容。(八)页码论文页码一律采用页下居中形式。正文前的目录和摘要部分单独编排页码,页码采用罗马文字“Ⅰ、Ⅱ、Ⅲ”等标示,正文独立编排页码,用阿拉伯数字“1、2、3、4、5……”等标记。(九)电子文档要求毕业论文的电子文档,学生应存成以学号和姓名为名字的.doc文件,如一个学生学号035272001叫王波的学生,其文件名为035272001王波.doc。

一、论文字数原则上要求一万字以上(含标题、摘要、关键词、参考文献等部分的字数)。二、论文基本格式包括:标题、作者(含作者单位:专业与班级)、摘要、关键词、正文、参考文献。其排列顺序及格式如下:标题:××作者:× × 单位:××[摘要]:××[关键词]:×× ××(空一行)正文:××(空一行)参考文献:[1] ××[2] ××英文标题:××作者姓名(汉语拼音)英文摘要:××1、标题。标题应以恰当、简明的词语反映论文所研究的问题,所用词语应考虑到便于选定关键词和编制题录、索引等二次文献检索的特定信息。标题一般不宜超过20字(包括副标题和标点符号)。2、摘要。摘要是论文内容的简短陈述,主要说明研究的目的、方法和主要论点,应突出体现论文的新意所在。字数一般在200—300字之间。摘要中不宜出现公式、图表等。3、关键词(中英文)。关键词是为了文献标引工作而从中选取出来用以表示全文主题信息的术语。一般选取3—5个关键词,4、正文。正文是论文的主体部分。一般包括“绪论”(或“问题的提出”)、论证、结论三大部分。5、参考文献。参考文献用以标示论文中引用的他人的研究资料。凡引用其它资料一段原文时,原文部分必须用引号标示,若只是扼要引述他人观点而非原文时,则不需用引号标示。但也必须在参考资料中反映出来。以上两种情况均需在引述结束处的右上角用带方括号的阿拉伯数字加以排序。最后在正文后面一一对应地加以注明。参考文献的排列格式为:(1)引述专著中的文献:作者、专著名称、著作代号[M]、版本、出版社、出版时间、起止页码。(2)引述期刊中的文献:作者、文献名称、期刊代号[J]、期刊名称、年、月、期(卷)、起止页码。当作者超过三人时,只需选取前三名作者姓名,其后加“等”字即可。三、毕业论文打印格式。毕业论文必须打印。一式三份,一份自己留底、一份交指导教师,一份由指导教师转交毕业论文管理委员会秘书长。打印的内容及规格如下:1、封面内容及打印规格:(1) 论文标题:黑体二号,加粗。(2) 作者姓名及学号:宋体三号。(3) 指导教师姓名:宋体三号。(4) 学科门类:宋体三号。(5) 专业:宋体三号。(6) 提交论文日期:宋体三号。2、正文打印规格::(1)页面及版面打印规格:为了便于装订和复制,论文正文部分必须双面打印(以右面为单数页),并且每页的四周必须留有一定空白边距。具体要求是(以WORD98为例):页面设置数据为:纸型—A4;页边距(单位为厘米):上3、下2、左2、右2;装订线—左侧1厘米。版面设置数据为:行间距:倍距离;字符距离:标准。(2)正标题:黑体三号,加粗,居中排列。(3)副标题:宋体四号,居中排列。(4)作者姓名及单位:宋体小四号。(5)摘要与关键词:宋体5号。(6)文中小标题:宋体小四号。靠左边项头排列。标题层次用阿拉伯数字排序,分别为:一级标题:1、2、3…等;二级标题: …等。以下类推。数字编号后应空一格再写标题。(7)正文:宋体5号。(8)正文中图表中字体:宋体5号(或小5号)。(9)参考文献:宋体小5号。(10)英文标题:“Times News Roman”字体,三号,加粗。(11)作者英文姓名:用汉语拼音。宋体四号。(12)英文摘要:“Times News Roman”字体,小四号。(13)计量单位:单位名称及符号一律采用国际通用符号。

各个高校的打印店都有装订成册的服务(因为大家的毕业论文都要订册)。

专注c语言毕业论文

什么是C语言程序设计呀?

要论文自己写嘛,求人不如求己!

c语言毕业论文格式

兄弟,论文要自己用心写。我是过来人,自己写论文只有好处,没有坏处的。

机顶盒上游戏开发可以么,也是用C语言写的目 录第一章 绪论 机顶盒的产生背景 机顶盒的发展及其现状 游戏模块设计的必要性 模块设计需要解决的问题 3第二章 系统开发环境及相关技术介绍 XX-XX硬件平台 XX操作系统 内核 任务机制 消息队列 信号量 C语言的特点 7第三章 开发流程 功能需求分析 可行性分析 模块设计 编码 测试 11第四章 系统设计 游戏模块接口设计 游戏的初始化 游戏的按键读取和转化 游戏的暂停、恢复和退出 游戏算法设计 推箱子游戏设计 俄罗斯方块游戏设计 黑白棋游戏设计 14结 论 16谢 辞 17参 考 文 献 18附录 推箱子游戏源程序 19

论文写作,先不说内容,首先格式要正确,一篇完整的毕业论文,题目,摘要(中英文),目录,正文(引言,正文,结语),致谢,参考文献。学校规定的格式,字体,段落,页眉页脚,开始写之前,都得清楚的,你的论文算是写好了五分之一。然后,选题,你的题目时间宽裕,那就好好考虑,选一个你思考最成熟的,可以比较多的阅读相关的参考文献,从里面获得思路,确定一个模板性质的东西,照着来,写出自己的东西。如果时间紧急,那就随便找一个参考文献,然后用和这个参考文献相关的文献,拼出一篇,再改改。正文,语言必须是学术的语言。一定先列好提纲,这就是框定每一部分些什么,保证内容不乱,将内容放进去,写好了就。参考文献去中国知网搜索,校园网免费下载。 合适采纳

毕业论文格式范文word

摘 要

数据结构算法设计和演示(C++)-树和查找是在面向对象思想和技术的指导下,采用面向对象的编程语言(C++)和面向对象的编程工具(Borland C++ Builder )开发出来的小型应用程序。它的功能主要是将数据结构中链表、栈、队列、树、查找、图和排序部分的典型算法和数据结构用面向对象的方法封装成类,并通过类的对外接口和对象之间的消息传递来实现这些算法,同时利用C++ Builder 中丰富的控件资源和系统资源对算法实现过程的流程和特性加以动态的演示,从而起到在数据结构教学中帮助理解、辅助教学和自我学习的作用。

关键词:数据结构;面向对象;可视化;算法

The Subject of Undergraduate Graduation Project of HEAU

Abstract

外文摘要要求用英文书写,内容应与“中文摘要”对应。使用第三人称,最好采用现在时态编写。

“Abstract”不可省略。标题“Abstract”选用模板中的样式所定义的“标题1”,再居中;或者手动设置成字体:黑体,居中,字号:小三,多倍行距倍行距,段后11磅,段前为0。

标题“Abstract”上方是论文的英文题目,字体:Times New Roman,居中,字号:小三,行距:多倍行距 ,间距:前段、后段均为0行,取消网格对齐选项。 Abstract正文选用设置成每段落首行缩进2字,字体:Times New Roman,字号:小四,行距:多倍行距 ,间距:前段、后段均为0行,取消网格对齐选项。

Key words与Abstract之间空一行。Key words与中文“关键词”一致。词间用分号间隔,末尾不加标点,3-5个,Times New Roman,小四,加粗。

Key Words:Write Criterion;Typeset Format;Graduation Project (Thesis)

目 录

1 引言

计算机与网络技术的高速发展,特别是面向对象技术的出现,使得C++的软件开发得到了迅速普及。

本课题主要 ………………

2 线性表的基本理论知识

线性表的定义

线性表是最简单、最常用的一种数据结构。线性表[1]是n(n>=0)个数据元素的.有限序列。

……。

线性顺序表

线性表的顺序存储结构的特点是为表中相邻的元素ai和ai+1 赋以相邻的存储位置。

三级标题名 三级标题名

1)四级以下标题 2)四级以下标题

线性链表

线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(这组元素可以是连续的,也可以是不连续的)[1]。

……。

3 设计的主体内容

在着手进行上机设计之前首先做好大量准备:应熟悉课题,进行调查研究,收集国内、外资料、分析研究;交互界面的设计和实现。

……。

系统结构的设计

……。

交互界面的设计和实现

„„由公式(1)给出:

线性表的00P序设计

计算机内部可以采用两种不同方法来表示一个线性表,它们分别是顺序表示法和链表表示法。

……。

线性表的顺序存储的实现

…… 以上是顺序表的实现过程,第1-16行包含了list类的说明,接下来是成员函数的定义。 ……。

线性表的链表存储的实现

……

链表的实现包括两个类定义,第一个是link类,第二个是list类。由于一个链表由若干个单独的链结点对象组成,因此一个链结点应当作为单独的link类实现。

.3. 4 结果分析与讨论

例如由于起初未能真正掌握各种控件的功能,我设想是要一个下拉菜单,但是学识肤浅的我试了很多种就是达不到我要的效果,……。

……

关于……的影响如表4-1所示。

5 结语

本课题采用C++语言、面向对象的设计方法实现数据结构的重要算法。 ……

……而且还存在着许多不足之处。如: …… 。

参考文献

[1] 严蔚敏,吴伟民.数据结构(C语言版)[M]. 北京:清华大学出版社,

[2] 沈晴霓,聂青,苏京霞.现代程序设计—C++与数据结构面向对象的方法与实现[M].北京:北京理工大学出版社,

[3] Thomas Connolly Carolyn Begg. Database Systems [M].北京:电子工业出版社,

[4] Roger Bate, Sandy Shrum, CMM Integration Framework[J], CMU/SEI Spotlight

[5] J P Kuilboer,N Ashrafi, Software Process and Produt Improvement[J]. An Empirical Assessment,

[6] 张美金 著. 基于ASP技术的远程教育系统体系结构的研究. /~cddbn/Y517807/pdf/,2003-05-01.

[7]王伟国,刘永萍,王生年,徐晓鹏.B/S模式网上考试系统分析与设计[J].石河子大学学报(自然科学版),2003,6(2):145-147

[8] …

[9] …

[10] …

注 释

致 谢

大学四年的学习生活即将结束,在此,我要感谢所有曾经教导过我的老师和关心过我的同学,他们在我成长过程中给予了我很大的帮助。本文能够成功的完成,要特别感谢我的导师XXX教授的关怀和教导。………。

附录1:附录一题目

附录2:附录二题目

c语言毕业论文总结

机顶盒上游戏开发可以么,也是用C语言写的目 录第一章 绪论 机顶盒的产生背景 机顶盒的发展及其现状 游戏模块设计的必要性 模块设计需要解决的问题 3第二章 系统开发环境及相关技术介绍 XX-XX硬件平台 XX操作系统 内核 任务机制 消息队列 信号量 C语言的特点 7第三章 开发流程 功能需求分析 可行性分析 模块设计 编码 测试 11第四章 系统设计 游戏模块接口设计 游戏的初始化 游戏的按键读取和转化 游戏的暂停、恢复和退出 游戏算法设计 推箱子游戏设计 俄罗斯方块游戏设计 黑白棋游戏设计 14结 论 16谢 辞 17参 考 文 献 18附录 推箱子游戏源程序 19

1.常用编程语言分析 了解常用编程语言的特征和优缺点既是我们进行语言选择的前提,也是保证我们编程工作顺利开展的有效手段。 1.1 C语言:C语言是介于高级语言和汇编语言之间的语言,也被我们称之为中级语言,它集中了汇编语言和高级语言的很多优势。在最初的时候,C语言主要应用于UN IX系统,后来随着人们对其强大性的认识越来越多,到了上个世纪的90年代,这一语言已经成功的应用到了其他操作系统之中。它一直属于最为优秀的编程语言之一。 具体来说,C语言的特点主要可以分为以下几个方面:首先,C语言属于结构化语言,因此,它具有非常清晰的层次,对于我们使用模块化的方式进行程序的组织非常有利,也便于维护和调试。其次,C语言中不仅数据类型以及运算符非常丰富,还能够对内存中的物理地址进行直接的访问,方便我们进行位操作。第三,它的效率非常高,而且移植性比较强,因此,能够移植到各种计算机上,这就方便形成很多版本的C语言。第四,由于可以利用C语言实现位操作以及字节操作,因此,相当于利用这一语言能够实现部分汇编语言的作用。最后,c语言编写的代码具有较高的质量,而且程序在执行起来效率比较高。 1.2 c++语言。1986年,AT&T贝尔实验室开发出来了C++语言,主要是利用数据封装来减少程序变量的不利影响,进而提升程序的可靠性。它的多继承机制可以更好的对对象的行为及属性进行描述,虽然c++属于C语言的扩展,但是,我们可以将其作为一种全新的语言对待。 C++语言的特点主要有:面向对象、封装、继承以及多态性。具体来说,由于C++语言属于c语言的扩展,所以,它具有很多C语言的特点。另外,在c远的基础上,c+十加入了面向对象的编程思想,这就是其能够更好地适应当前大规模项目的需求,举例来说,当前很多系统级编程使用的都是c++语言。 Java语言。Java语言相对于C++语言来说,在简洁性以及安全性有着更大的优势,具体来说,其主要的特点有: 首先,简单性:这一点和c++语言比较类似,但是它减少了C++语言中比较容易导致程序错误的地方,比如指针以及内存管理。其次,Java语言属于完全面向对象语言,这一点和Sm allTal k比较类似,当然相对于Sm al lTalk,它的很多方面又存在着巨大的优势。第三,分布式,在Java语言中,包涵了支持基于TCP/IP协议的子库。第四,健壮性,Java语言中的类型检查可以帮助我们查出很多软件开发初期出现的错误,降低内存出错的几率。第五,结构中立,在使用Java语言编程的时候,会把程序编译为中间文件格式,也就是说只要存在Java运行系统的机器都能够对这种中间代码进行执行。第六,安全,它删除了手动释放内存等,很好的防止了非法的内存操作。 此外,除了以上的优势之外,Java语言还具备可移植性好、解释性强、高性能以及多线程等特点,这里限于篇幅不再对其进行详细的分析。当前,Java语言主要应用在web浏览器以及网络应用系统之中。 1.4 c群语言。这种语言有着类型安全、精确、简单以及面向对象的特点。它属于.net的代表语言。具体来说,其特点是: 首先,完全面向对象。其次,对于分布式有很强的支持,也就是说其处理的过程是分布在服务器以及客户机上的,从这张语言的诞生过程我们可以发现其注定就可以很好的解决分布式的问题。第三,健壮,在检查程序错误以及运行错误方面,c#语言一点不比Java语言要差,它使用的也是自动管理内存机制。第四,灵活性比较高,比如在默认情况下,C#语言是不可以使用指针的,但是如果有必要我们可以将指针打开来使用。第五,安全性比较高,它的安全性是由.ne t平台来提供的。 此外,C#语言还具备可移植性、解释性、高性能、多线程、组件模式等特点,总体来说,它属于Java流行之后的有一种语言,但是由于微软系统的支持,使其在Windows方面相对于Java有着更大的优势。当前,这一语言的主要应用有网络编程、数据库、窗体编程等方面。 1.5 Pascal语言。这是计算机通用的高级程序设计语言,它的主要特点是结构化形式比较严格、数据类型非常丰富、查错能力较高以及运行的效率高等。正是由于这些优势,使得这一语言可以对各种算法以及数据结构进行描述。另外,利用这种语言,可以帮助我们编程者保持一个很好的习惯和设计风格。 总体来说,每一种语言都有其独特的优势和应用范围,在计算机应用软件开发过程中如果能够使用最合适的语言将极大地降低我们的工作量,提升我们的工作效率。 具体参考范文:

兄弟,论文要自己用心写。我是过来人,自己写论文只有好处,没有坏处的。

近年来,随着全球网际网路技术的普及、计算机技术的迅猛发展、数字技术的瞬息万变,计算机工程在人们生活、生产中的应用越来越广泛。下面是我为大家整理的计算机工程毕业论文,供大家参考。

计算机软体大体分为三类,一种是总述,一种是系统软体,一种是应用软体,系统软体的作用是促使各个硬体按照一定的规律协调工作,保证计算机处于正常运转状态。而应用软体的作用则是为了实现某种使用愿望而开发出来的软体。

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年学的程式课全学习了,收获很大”。更有同学,在外企公司的面试中,直接运用了课堂上的知识,这在传统的教学环节中是难以获取的。但整个工作尚在起步阶段,所以仍有很多工作需要做,许多环节需要优化。我们希望在以后的工作中更深入探索工程教育的规律和本质。

可打印毕业论文的打印机

一般采用激光打印机或者针式打印机

可以去打印店打印也可以去学校的打印室打印。

爱普生630K。730,这些都行,只要是平推式的

可以,校园打印店的店铺原有电脑设备上安装印萌自助打印软件,实现店铺学生自助打印,软件智能计价收费,为打印店商家的店铺论文季打印和学生的毕业论文保驾护航,在论文季,印萌自助打印软件为校园打印店开启高校快速的打印模式。进入后有Checkpass(初稿查重)和万方数据(修订稿、定稿查重)两种系统可供选择。让整个查重流程更加自动化,学生操作一目了然,让每一个商家更加省心。

相关百科
热门百科
首页
发表服务