计算机编程技术范文
时间:2023-09-19 16:52:17
导语:如何才能写好一篇计算机编程技术,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
关键词:C语言 计算机 软件编程 编程方法优化
1、C语言概述
C语言本身具备着较为优越的功能,而其本身拥有的兼具汇编语言和高级语言特点的能力,也是C语言能够在今天的计算机编程中得到广泛应用的原因所在。C语言发展到今天,已成为各种计算机编程语言的基础,而其具备的灵活方便、简洁紧凑、适用于多种操作系统、可自由书写等特点,更为C语言的广泛应用提供了坚实基础。
2、基于C语言的计算机编程技术
2.1 C语言中的函数
在基于C语言的计算机编程技术中,由于具体的编程过程需要分为若干个模块,这就使得其中每一个模块功能的实现,都需要由函数完成。对于基于C语言的计算机编程技术来说,其本身需要应用多种特有的函数,而这类函数的应用过程,相关编程人员需要进行命名、定义参数名以及定义返回值类型等操作,这样才能够顺利完成基于C语言的模块功能设计。当然由于计算机技术的不断发展,编程人员大多数时候都无需手动输入C语言相关的函数,只需要在编程时输入“#include”指令,就可以使用定义好的函数库完成具体的编程操作。
2.2 变量存贮器类型的合理定义
在基于C语言的计算机编程技术中,对变量存贮器类型进行合理定义也是这一技术的重要组成部分。具体来说,基于C语言的计算机编程往往需要应用不同类型的变量存贮器,而不同的变量存贮器对于编译代码的执行效率也不尽相同,为此编程人员可以在子程序模块编程中尽量选择局部变量存贮器,整个程序模块的编程则可以选择全局变量存贮器,这样就能够较好实现基于C语言计算机编程过程中变量存贮器类型的合理定义。
2.3 算法技巧及位操作
对于基于C语言的计算机编程来说,算法称得上是这一编程语言的灵魂所在,这就使得编程人员在应用C语言进行计算机编程时,必须掌握一定算法技巧,对于基于C语言的计算机编程来说,其本身具备着自然语言和流程图两种算法表示方法。值得注意的是,在应用流程图对基于C语言的计算机编程算法表示中,编程人员能够基于这一表示了解流程图符号的含义,这样就能够保证其较好的进行基于C语言的计算机编程算法技巧应用。
2.4 多重\算次序
在基于C语言的计算机编程中,C语言本身对于变量多重运算求值顺序没有形成统一的规定。有过应用C语言编程经验的人就会了解到,不同C语言编译系统存在着细微差别,而很多C语言编译系统在多重运算次序上存在着一定差别。据笔者调查得知,在我国当下基于C语言的计算机编程中,参数求值顺序从右到左最为常见,这就使得基于C语言的计算机编程多重运算次序大多为先运算最后面,依次运算前面,这种基于C语言的计算机编程多重运算次序选择有着较好的可读性和移植性。
2.5 指针用法
对于基于C语言的计算机编程来说,指针用法也是这一编程的重要环节,在论述这一环节前,首先需要了解基于C语言的计算机编程中指针变量。结合相关文献资料笔者发现,定义指针变量时必须对其进行初始化,否则存储空间操作很容易出现严重错误。值得注意的是,编程人员还可以通过加减数值移动指针位置,完成具体的指针计算。此外,应用函数库中的 void 函数,就能够实现指针变量的定义,最终实现将任意数据类型的地址赋给指针变量。
3、基于C语言的编程方法优化
结合上文内容,对基于C语言的计算机编程技术有了较为直观的认识,而为了保证基于C语言的计算机编程技术能够更好发挥自身作用,笔者结合自身多年编程经验与相关文献资料,对基于C语言的计算机编程方法优化进行了详细论述,希望这一论述能够为相关C语言计算机编程从业者带来一定启发。
3.1 优化函数调用
对于基于C语言的计算机编程技术来时,想要实现自身的优化,优化函数调用属于较为有效的方法。具体来说,在基于C语言的计算机编程技术函数调用的优化中,首先需要禁止函数调用传递结构,之所以需要禁止传递结构的函数调用,主要是由于函数调用传递结构会将整个结构复制到堆栈,这就将大量占用堆栈空间,最终加重整个系统的负担,而为了解决不能函数调动传递结构这一影响,可以采用结构指针解决这一问题,这样就顺利实现了基于C语言的计算机编程技术函数调动优化。
对于基于C语言的计算机编程技术来说,其本身具备着多种能够提高自身编程效率的库函数,但这些函数往往具备着代码量大、效率低的缺点,这种缺点之所以出现,主要是由于库函数需要保证自身的广泛适用性,所以编程人员在具体的工作中,就可以结合库函数,自己设计一段函数程序,这样也能够较好实现函数调用的优化。
3.2 指针在数组中使用
对于基于C语言的计算机编程技术来说,想要实现自身技术的优化,就可以将指针在数组中使用,这样就能够大大提高程序的运行效率。具体来说,一般基于C语言的计算机编程需要多次计算数组地址来获得数组中相应的每一个数值,这就大大影响了程序的运行效率,所以笔者建议将指针变量直接指向数组中元素,这样就能够较好实现基于C语言的计算机编程技术优化。
3.3 优化循环语句
为了能够实现基于C语言的计算机编程技术优化,对循环语句进行优化也是优化的较好选择。在基于C语言的计算机编程中,某些重要的循环直接关系着程序运行速度,所以笔者建议将有些在运算时并不需要加入循环变量的任务置于循环外,这样就能够较好实现循环的优化,大大提高程序的运行速度并降低CPU 的负担。
4、结语
在本文就基于C语言的计算机编程技术展开的研究中,笔者详细论述了C语言概述、基于C语言的计算机编程技术以及基于C语言的编程方法优化,希望这一论述内容能够在一定程度上推动我国计算机编程技术的发展,并为于C语言的学习者带来一定帮助。
参考文献:
[1]刘秀明. 基C语言的计算机软件编程实验研究[J].电子技术与软件工程 ,2014(5):263.
篇2
【关键词】数学算法 计算机编程 思考分析
近年来,信息技术的不断发展,使得计算机技术在人类的日常生活中占据了十分重要的地位。无论是利用计算机进行软件制造、还是大型运算,都需要依靠计算机编程来实现。数学算法作为一项研究数字规律的思想,主要通过利用数字规律来减少工作量,提高工作效率。将其用于计算机编程优化当中,可以有效的解决传统编程代码所无法解决的问题。因此,数学算法在计算机编程优化中具有十分重要的地位,要重视数学算法的存在。
1 对数学算法进行分析
1.1 数学算法在计算机编程中的地位
数学算法就是通过观察与思考,寻找事物中的数字规律,从而利用数字规律来减少工作量的一种方法。通过对数学算法的使用,可以通过最小的代价实现最大的成功。虽然,在计算机编程的过程中,数学算法的作用十分明显,但是,数字算法并没有得到足够的重视。
从目前的情况上来看,所有的计算机编程方式中,数学算法的效率是最高的,而且拥有广阔的市场,使用的人数众多,在计算机编程当中具有举足轻重的作用。在计算机编程中,使用数学算法,不仅可以提高工作效率,还可使用数学算法对不同的计算机程序进行优化。
1.2 数学算法在计算机编程优化中应用的现状
随着科学技术的不断发展,计算机逐渐的被人们所接受,成为了人们生产、生活中必不可少的物品之一,人类文明的迅速发展做出了重要的贡献。因此,在使用数学算法对计算机编程进行优化时,应该先对即将优化的计算机程序进行认真的检查,充分的了解其相关信息,分析其内在规律,并做出简单的假设,在这些前提工作结束以后,便可以使用数学算法的语言和符号对其进行表述,建立结构模型,然而再将建好的数学结构模型放入计算机中进行运算,并结合实际情况对结果进行检验。而此时构建的数学结构模型,我们可以姑且叫他数学模型建模,数学模型建模的应用大大提高了计算机编程的效率,促进计算机编程技术不断的取得新的成就。
2 数学算法在计算机编程领域的应用
计算机技术是当今社会领域中十分重要的科学技术之一,对于人类的工作、生活具有重要的意义。为了充分发挥计算机技术的研究,尽可能的开发计算机技术的潜力,使其更好的应用与人们的生活与工作之中。而计算机的编程技术作为计算机技术中的基础,也是计算机中应用最为广泛的技术之一。但是,即便如此,在进行编程或优化的过程中,依旧需要足够的理论知识作支持,而数学算法则可以为计算机编程提供做够的理论支持,因此,数学算法在计算机编程领域占据了十分重要的位置。
计算机编程的过程中,无论使用哪个国家的语言或者是是哪个国家的技术,都可以通过计算机中的语言翻译系统将其翻译成统一的文字形式,从而产生了许多不同的应用功能。计算机的出现,大大降低了人力工作的难度,复杂且较为繁琐的计算,使用计算机就可以快速、嗜返耐瓿伞3高速的大量计算,是计算机无可比拟的优势之一。由于科学技术始终在不断的发展,计算机技术也要不断地更新,只有不断对计算及进行优化,对其程序进行升级,才能使计算机始终保持高效运转。而数学算法作为一项寻找事物规律,力求化繁为简的理论知识,在优化计算机编程方面作用十分明显。然而,要想使数学算法的优化作用得以实现,就需要努力进取,不断创新,只有通过实践才能论证理论知识的严谨性,只有建立良好的理论基础,才能使其成为实践的依据,而创新则是实践过程中不断探索的结果,也是确保计算机永远有着实用性的必要方法。
3 数学算法与C语言
C语言既是一种高级语言,又是一种基础语言,是通过计算机程序设计而成的一种特殊语言,不仅有着传统计算机高级语言的特点,还有许多其他种类基础语言的特点。在实际的使用当中,C语言的使用还存在着一定的问题。在这些问题当中,受到各界关注最多的就是重复翻译的问题。C语言并非一种简单的语言,而是一种面向整个编程的程序语言,因此,工作人员在试用期进行编程操作时,首先要注意的就是代码逻辑的运行过程,由于C语言自身存在着一定的局限性,导致了其在语言程序的优势方面比较吃亏,造成了程序不整洁的情况出现,对计算机操作的效率影响较大。而数学算法的最大优势便在于,使用最简单的方法,最大化提高工作效率。传统的计算机编程,先要对程序流程的设计进行逻辑分析,然而使用代码进行编程操作;而使用数学算法以后,可以有效的解决了传统编程中使用代码所难以解决的问题。由此看来,使用数学算法对计算机编程进行优化,可以有效的提高计算机计算处理效率,通过建立数学模型的方法解决了传统编程代码需要解决的一切问题,不仅有效的降低了计算机的工程量,还提高了计算机的操作与计算速度。
4 总结
综上所述,本文对数学算法的现状及其在计算机编程中的地位、应用进行了研究与分析,并通过数学算法与C语言之间的关系,证明了数学算法对优化计算机编程起到的作用。数学算法是数学学习中比较简单的计算方法,利用这种计算方法可以有效的降低计算量,提高计算效率与工作质量,也正是因为这个特性,才使其在优化计算机编程过程中起到了如此重要的作用。在未来的发展中,为了从根本上解决传统计算机编程遗留的问题,必须利用数学算法对计算机编程进行优化,提高计算机的工作效率与质量。
参考文献
[1]何稳和.浅谈数学中算法的多样化与优化[J].文理导航・教育研究与实践,2016(07).
[2]淑霞,冉娟,李春青.基于粒子群优化的k-means改进算法实现Web日志挖掘[J].计算机应用,2016,36(S1).
篇3
1 数学算法的含义
数学算法是一种归纳算法,在严格遵循相应数学原则与步骤的基础上,计算工作量,通过挖掘数学模型的规律,以最小的代价、最少的计算工作量、最快速的方法获得准确的结果。其根本思想在于研究并总结事物规律,最大限度减少工作量。计算机编程可以利用数学建模的思想,通过数学算法的选择以达到优化编程的目的,也可以通过数学算法精简代码程序来优化编程,提高程序运行效率[2]。
2 数学算法对于计算机编程的优化
2.1 运用数学算法简化C语言编程
C语言是计算机编程语言的基础,有广泛的应用范围,也是计算机高级编程语言的扩展基础,重复编译是C语言编程中的一个多发性问题,由于C语言是一种过程性程序语言,编程时,需要着重考虑代码逻辑运行过程的问题,但在编译时,会受自身性质的局限。数学算法能够对这一逻辑局限进行优化。通过数学算法对代码进行精简,达到精简代码程度的目的,进而提高过程中的效率。在算法编程前,逻辑分析是首要的工作,分析程序设计流程图,以体现程序运行的逻辑。如在C语言编程中,设计计算机的闰年程序是一个有代表性的编程工作,闰年包括了两个判断标准,即一年有366天或者2月份有29天。在指定一个年份时,要如何直接得知这个年份是否为闰年,就可以通过编译代码程序的形式来实现,并且需要运用数学算法来优化这一代码程序。数学算法中,不能被100整除而能够被4整除的数字就代表是闰年年份,也可以是100或400的倍数,对闰年的相应数学算法进行归类,直接编写为一个程序,以判断是否为闰年。在C语言编程中,数学算法能够将编程语言流程简化,利用数学算法的归纳、抽象思想将流程简单化,使这种面向过程的语言能够避免重复编译,防止时间冗余[3]。
2.2 引入数学模型思想优化面向对象语言的编程
面向对象语言即C++语言,这是一种基于C语言发展而来的编程语言。面向对象程序的设计语言是对对象进行封装,转变C语言在面向过程设计时的语言弊端,提高计算机编程效率的一种语言方式。这种语言利用了类模仿,并将封装原理融入其中,进一步提高了编程效率,类的继承与对象的封装都可以通过?笛?算法优化,以优化编程效率。设计面向对象的程序时,需要定义类、不同类的嵌套、封装和继承,当程序涉及继承处理时,会使编程工作量变得极为庞大。数学算法中建模思想则为精简工作量提供了有效的途径,利用数学模型进行统一计算,以解决问题。建立数学模型就能够将不同的类以统一模型来分类,再利用逻辑继承完成不同模型之间的程序设计,既优化了编程效率,又提高了程序实效性[4]。
3 数学建模与数学算法在优化高级语言编程时的应用
3.1 数学算法在优化计算机编程时的意义
在编写一个高级语言程序时,为减少运行消耗的时间,需要考虑几个问题:数学算法选择的策略、问题的规模、程序编译时生成的计算机代码质量、计算机执行指令时的速度。编译程序不同、计算机不同,都会影响到程序运行效率,因此,程序效率是无法用绝对时间单位来衡量的。除了程序运行相关的计算机软硬件等客观因素外,选择的算法就成了影响程序运行工作量的最大决定因素,通过优化算法达到减少程序运行时间、提高程序执行效率的目的,是一种适用性更高的方法。因此,数学算法是编程优化的关键步骤,为提高程序效率,必须选择合适的算法。评价一个算法的质量需要考虑到时间复杂性与空间复杂性,一个问题有多种算法,在选择算法时,首要考虑的是算法效率,基于算法效率再精简程序,使算法能够和程序有效结合,找出程序简单化与算法合理化之间的最大平衡,寻找最优算法,确保程序中的算法能够满足实际运算的目的[5]。
3.2 利用数学算法优化计算机编程的实例
如,要解决如下问题:1×2×3×……×n(1 000
首先,可以直接从1到n相乘,每次乘完观察一次结果数,将结果数后面的0全部去掉,并计下这些被去掉的0的个数,因为只求后面的0的个数,而不必考虑前面的数值,可以把前面和0没有关系的数字全部省略掉,保留所有有效数字,再相乘n次就能够得出0的个数。根据这种算法编写核心代码即可进行运算,这种算法能够解决问题,但可以看出,需要运算的次数很多,且这个乘法数列中,有很多数字无法生成0,因此,可以直接不考虑这些数字,而直接考虑会对0的生成个数产生影响的2与5的倍数,可以看出,这种算法并非最优化算法。
其次,根据第一种算法中的分析可以得出,1~9的所有位数中只有包含2×5、4×5、6×5、8×5这几个算式的能够生成0,因此,对0的计算个数能够产生的影响的只有5的倍数,含有2的分解数多于含有5的分解数,为简化程序,可以直接考虑这个数列中能够分解出多少个5,就代表能够产生多少个0,以这种算法编写程序较第一种算法减少了80%,较前一种算法更为优化,但从这一种算法的分析可以进一步观察,该数列中包含的5的个数就是相乘后结果末尾0的个数,因此,仍然可以继续对算法进行优化。
再次,直接求解含5的个数即可求解0的个数,采取层层剥皮法,第一次剥皮以5为步长作一次循环,即可求得含5的个数,这样就能将数列从5,10,15,……变为1,2,3,4,……。第二次剥皮以52为步长作二次循环,求解含有52的个数,将15,20,75,100,……通过一次剥皮变为5,10,15,20,……,再通过二次剥皮变成1,2,3,4,……。第三次剥皮则以53为步长作二次循环,求解含有53的个数,直至步长≥n时,就可以退出循环,将包含有5的方数的个数相加,就是0的个数。这种算法也就是最优算法,根据该算法编译核心程序如下:
Long num,i,n;
cout
cin>>n;
i=n;
num=0;
while(i>=5)
{
I=i/5;
num+=I;
}
cout
cout
这3种算法每一次均有一定的优化,第一种方法需要100次外循环求解,而第二种方法则仅需要20次,第一种方法则仅为3次循环,只需要一层循环就能够求解,充分表明数学算法对于编程优化和程序运行效率的重要性[6]。
3.3 重视数据结构的设计,减少算法的空间复杂度
数学算法效率的提高与数据结构的合理性有重要的作用,能够提高算法对于变量访问的效率,降低变量所需存储空间。如,在稀疏矩阵中,当矩阵中存在过多元素时,就可以通过压缩矩阵存储空间来提高算法效率,利用行号、列号和元素三元组存储矩阵,能够大量压缩存储空间,避免二元组存储时对于矩阵中零元素的多余存储,并且能够在遍历矩阵时,降低遍历次数,算法将更为高效。还可以通过变量共享和联合体等方式,多个变量就能够共享同一段存储空间,这样就大大减少了算法的空间复杂度,依次编译程度,将会使程序运算更为高效,空间占用更为简单[7]。
篇4
一、大赛宗旨
旨在培养和激励高校学生的创造力、团队合作精神以及在软件开发过程中的创新能力。同时此次大赛将视为对明年的省高校杯的一次演练,提高广大学生开展计算机软件设计的兴趣和能力,,给广大在计算机程序设计方面有特长的同学提供展示才能的舞台。通过参赛,检验学生在压力下进行开发的能力,展示其创新能力,为加强校内同学间的交流和相互学习提供机会。
二、参赛对象
参赛者均为广东科贸职业学院信息工程系在校学生。
三、参赛形式和报名方法
1.本次竞赛采取团队报名的形式
2、参赛团队填写报名表(报名电子表发送到信工系各班团支书)。
3、由各班团支书负责统一收集参赛团队报名表,并在规定的报名时间内将本班参赛者报名表交到负责人处,逾期不收。
其他详细信息可留意软件协会官方博客:
四、比赛方式及要求
1、本次竞赛的内容是根据拟定项目或者根据现实需要自行设计一个项目参与本次大赛 项目评比。
2、比赛时间为三个星期,参赛团队须在规定时间内完成。
3、比赛期间选手可以翻阅相关的工具书。
4、参赛者应尊重自己的劳动成果,严禁将自己的作品拿给他人抄袭,严禁抄袭他人的 作品。(违反此条例者,将追究其相关责任)
5、比赛期间不局限于参赛者使用何种技术体系,不局限于使用何种开发工具及操作系 统。
项目评比参考:
•项目的稳定性、项目的实用性
•项目使用的技术框架及开发平台
•项目代码编写的标准及是否强壮
结果评定:比赛排名根据项目评比的成绩的总和得出。
五、活动时间安排
3、项目评比:12月下旬
(注:以上时间和地点安排可根据实际情况另行更改)
六、奖项设置
一等奖(1名):500元、荣誉证书
二等奖(1名):300元、荣誉证书
优胜奖(若干):大赛精美纪念品
注:本次竞赛奖项设置为证书和物质奖励
篇5
关键词:建筑工程;工程预算;预算编制
中图分类号:TU198文献标识码: A
引言
建筑工程预算是工程价值的货币体现,是以货币形式对建筑工程施工活动中耗用的费用总和的反映,管理建筑工程造价一定要合理的确定造价,并对其进行有效的控制。工程预算贯穿于整个建设的全过程,主要导向为效益。然而在管理过程中会受市场、人为等因素的影响,不能确保造价预算完全准确,对控制水平产生影响,所以,一定得予以高度重视,采取必要的措施加以控制。
一、建设工程预算的概念
建设工程预算是指根据在不同的设计阶段的设计文件的内容和有关指标、定额及取费标准,预先计算出并确定建设项目中的所需的工程费用的一种技术经济文件。同时它也是对工程投资进行决策、分配、控制、管理、核算和监督的主要依据。建筑工程一般都是由土建、通风、采暖和给排水、电气照明、建筑智能、消防工程等多专业工程所组成。各单位工程预算编制要根据不同的预算定额及相应的费用定额等文件来进行。一般情况下,在充分熟悉掌握定额的内涵、工作程序、子目包括的内容、建筑工程量计算规则及尺度的同时,深人建筑工程第一线,从头做起(可行性研究、初步设计、施工图设计、工程施工)收集资料、积累知识、着手编制。施工图预算编制有两种方法,第一种单价法,第二种实物量法,不管用那种方法都需要依循预算编制程序及步骤。
二、影响建筑施工图预算编制结果的准确性因素
建设单位在实现和完成建筑工程项目所花费的一个预期目标值。在建筑工程项目开始实施前,我们进行的对项目费用的展望和对项目费用的预测,与工程的结算有本质的区别。预算编制一开始自身就存在不可避免的缺陷与问题。
工程的阶段性对预算是有一定的影响的。建筑工程要经历三个阶段,例如决策、设计与实施。建筑施工图设计阶段中的产物是预算,在实施前,就会决定预算的某些局限性。
1、国家政策性调价
国家每一阶段都可能进行政策性调价,建筑工程的阶段性是根据建筑工程的时间所决定的,每一个阶段就会根据一定的步骤进行,不能随意的捣乱顺序,把下一道工序提前进行。
2、预算没有考虑现场签证
建筑施工期产物是现场签证,出现这种问题的原因也是多种多样的。其中包括基坑排水问题、土方坍塌问题、地下障碍问题、文物、自然灾害等。
3、预算没有特殊施工技术措施
由工程实体性消耗的部分和措施性消耗的部分决定的是工程造价。实体性消耗部分是施工图以及所描述工程实体部分的相关计算。措施性消耗的部分,会因为施工的环境的不同而产生差异性。当客观条件发生一定的变化时,建筑设计也需要随时的发生变化,进而适应建设需要,预算不具备预见性,结果会直接导致结算超预算。建筑工程设计受到诸很多的客观条件影响和制约。预算建筑工程量的计算有一定的误差。建筑工程量计算是一个重要环节,建筑施工图纸表达是衡量建筑工程量计算准确性的基础。市政道路安装项目中,材料的用量及工程的量表,在图纸中有明确的标示。材料的用量表以及工程量表的计算方法,需预算人员校核后才能投入使用。
三、建筑工程预算的编制程序
建筑工程预算是依据不同设计阶段、设计文件的具体内容,对建设项目全部工程费用进行预先计算和确定的技术经济文件。在编制过程中往往需根据以下程序和步骤进行:
1、搜集资料,做好准备工作
项目的投资预测要做好需要的资料很多,比如工程所在地的水电路情况、地质状况、主要材料设备的价格、大宗材料的采购地及其现有已建的类似工程的资料。还要收集对于做经济评价的项目设立地的经济发展前景、周围环境、同行业的经营等相关资料。在编制前,预算人员应该先到工地现场对工程现场进行考察,熟悉施工工序、施工要求、技术要求及其新材料、新技术、新设备、新工艺在工程中的应用。
2、详细研究施工图纸
预算在进行前,要对图纸仔细研读,必要的时候要与设计人员进行交流,对于图纸的设计情况要全面了解。
3、各项工程量的计算
工程量的计算是整个工程项目过程中最为复杂的过程,也是非常关键的环节,预算人员一定要严格遵循工程量的计算原则,结合其他工程,统筹兼顾。
第一,计算顺序的合理性。要依照先地下后地上,先内后外。分部工程顺序则要先从混凝土工程中抽取钢筋,再依照砌体、楼地面、屋面、装饰、零星工程的顺序来计算。
第二,计算项目确定的合理性。要相对应的把原始数据与相应部位进行标注,要完整且准确的填写名称,对分布在不同部位的相同做法也要分别的进行标注,为后期的核对减少麻烦。
第三,预算定额的灵活性与准确性。工程量计算完并核对之后,用所得的分部分项工程量套用的单位估价表的定额基价,相乘、累加,得出来的就是分项工程量的合计。在使用定额之前,首先要全面的了解总工程、分部工程的情况,掌握编制的使用范围及依据。
4、注意预算编制说明的编写
应该把预算编制根据与编制过程中出现的某些问题及处理办法,及其整个工程的主要工作量加以系统地说明。编制说明主要包含编制依据、工作性质、设计图纸号、内容范围、编制年份、价格水平年份、所用预算定额、相关部门的调价文号、套用单价以及需要说明的其他问题。预算书封面要填写工程编号、工程名称、工程量、预算总造价及单位造价、负责人、编制单位名称、编制日期、审查人、审查单位名称及审核日期等。
四、控制建筑工程项目预算的措施
建筑工程的造价和每一个环节都有一定的关联,强化工程预算编制迫在眉睫,要想将预算控制好,提高企业的经济效益,可以从下列几方面采取措施进行控制。
1、突出预算编制的工作重要性
预算编制工作的重要性非常突出,合理的进行编制对控制整个工程的造价至关重要,做好工程造价预算编制要把握好以三个方面:第一,预算编制人员要全面的认知现场的情况,对整个工程的情况综合考虑,把预算编制的准备工作做好;第二,施工的图纸要烂熟于心,要保证工程量以及套用定额的单价准确;第三,要客观分析影响价格的因素,为差价调整留出空间。
2、通过招投标竞选
建筑工程招标是以法定方式吸引建设承包单位竞争,从中选择条件优越者完成建筑工程建设任务。在招投标过程中,招标单位可从众多投标者中选出装备精良、管理水平高、社会信誉好、技术过硬、报价合理的优秀施工队伍,为建筑工程投资控制奠定良好的基础。
3、实行建筑工程造价全过程、全方位控制
建筑工程费用贯穿于整个建筑工程项目的全过程,从建筑工程项目建议书开始到竣工投产,建设阶段和决策阶段十分重要,要抓住决策阶段的控制重点,选择最优的设计方案。建筑工程设计阶段,以事前控制为主抓好设计竞选,选好工艺流程,充分调动设计人员的积极性,精心进行设计。建筑工程再实施阶段,对材料、设备采购市场进行调查,对建筑工程施工建设中出现新材料、新工艺、新技术做好技术、经济比较,要确保项目保险期质量,挖掘竣工试运行的潜力,协调工作要做好,将索赔的几率降至最低,倡导节约,减少各个环节上可能出现的浪费。
4、约束建设单位
从目前我国建设单位的现状来看,管理水平不高,管理经验缺乏,责任意识不够,管理不够严格,这就要求建设单位管理人员一定要加强管理,不断的总结经验,采纳合理的建议,约束其行为,提高管理水平。
结束语
综上所述,建筑工程造价编制是一门专业性、政策性、技巧性、经验性、时效性很强的工作。因此造价管理人员要不断的学习新技术与知识,在实践中总结、探索和积累预算编制经验和技巧,才能不断地提高业务水平。
参考文献
[1]陆少霞.建筑工程管理中的工程预算编制[J].中国招标,2013.19:27-28.
篇6
【关键词】计算机系统 说明书 产品流程
目前,商业银行计算机系统的说明书,是按照系统的模块,模块内各个小项,分项说明它们的功能,几百页的说明书,统统都是模块功能。
一、按系统模块功能编写的说明书弊端
商业银行的产品(服务)都需要遵循一定的流程,按系统模块功能编写的说明书对于简单流程操作是适用的,但是对于复杂的流程操作,该种说明书就无能为力了。
对于简单流程操作,该种说明书是适用的。比如客户银行卡挂失,只需要进入核心账务处理系统,启动相应的挂失操作码,然后进行操作即可。操作人员有什么不明白的,通过查看系统说明书内的相应“挂失”模块,即可清楚需要录入什么信息。而相应的挂失需要注意什么,需要审查什么,这些统统都是由规章制度所规范的内容,柜员在操作中需要遵循这些规章制度。这些规章制度有的对系统操作提出了要求,有的则没有,如果有要求的话,柜员需要注意遵守。
对于复杂流程操作,这种说明书并不适用。操作人员需要大量时间去摸索,在操作错误中积累正确的经验。以个人住房贷款为例说明一下:
个人住房贷款的基本流程是:楼盘营销与准入、贷前服务、贷款受理、贷前调查、贷款审核、贷款审批、合同签订、贷款担保、贷款发放、贷后服务。全流程需要录入几十屏信息。
按系统模块功能编写的说明书,造成个人贷款新系统上线或升级之后,摸索怎么做成一笔个人贷款,需要很长的时间,就是摸着石头过河。操作人员摸索的过程中,会出现各种各样的错误。出现这样的错误是难以避免的,因为新的操作系统或者是升级过后,与原系统是有差异的,而我们操作人员的思路还是原操作系统的思路,所以在没有流程操作说明书的情况下,开始出错难以避免。
新系统上线或升级时,通常我们的工作思路是:先让一个管理先进,原系统操作熟练的分、支行,让他们先走一遍流程,在操作错`中积累正确的经验,当他们全流程走通时,总结他们的操作经验,编制一个说明,发给其它的分、支行。并让其它分、支行当业务走不通时,咨询该分、支行。
二、按产品(服务)流程编写的计算机系统说明书
按系统模块功能编写的说明书对于复杂流程的产品指导作用有限,银行需要按产品(服务)流程编写的计算机系统说明书。其说明书的编写思路是:明确产品的流程,产品明细流程需要哪些系统模块的操作以及如何操作,沟通反馈修正。说明书可以采用影像资料、图片与文字相结合的方式。
(一)明确产品(服务)的流程
商业银行提品(服务)都遵循一定的流程,我们要识别产品(服务)的流程。计算机系统是实现产品(服务)流程的必要工具。通过计算机系统,银行可实现流程的电子化。银行的规章制度对于产品(服务)流程都有一定的要求,通过查阅资料能够了解清楚。
(二)产品明细流程需要哪些系统模块的操作以及如何操作
理清产品流程之后,哪些需要计算机操作的?需要运用到系统哪些模块?以及如何操作。这些就是计算机系统说明书的主要内容。
以“贷款放款”流程进行说明:
贷款放款主要的明细流程是:审核放款条件,复核系统录入信息,放款,打印“开立贷款账户通知书”。
审核放款条件,需要放款人员审核抵押是否已经落实,放款人员需要在操作系统中进入“抵押模块”中相应的明细模块中进行查询,看到该笔贷款的权证号码,则该笔贷款符合放款条件。
复核系统录入信息,需要影像件与系统录入信息进行核对,放款人员需进入“影像模块”,点击“身份证明资料”查看身份证信息,进行比对;点击“账户信息”,比对委托扣款账户等等。
放款作业,需要操作人员进入“贷款发放明细模块”,录入相关信息后,点击发放。该作业联动打印“开立贷款账户通知书”;如果打印故障,则可进入“凭证补打模块”。
(三)沟通反馈修正
基层员工在使用计算机系统的过程中,会遇到各种各样的问题,有些是系统本身的问题,有些则是操作问题,解决这些问题,需要有沟通的渠道。在新系统上线或者升级时,往往会有一个临时的项目组负责。该项目组负责搜集问题,向总行提交,并将总行反馈信息下发。在日常工作中,各部门也应该配备相应的岗位人员,该岗位负责系统的维护以及沟通、反馈。
系统维护人员应定期的修正计算机系统说明书,剔除那些过时的信息,使得说明书一直保持最新。
(四)说明书的样式
说明书可以采用影像资料、图片与文字相结合的方式。利用拷屏软件,录制操作人员的操作,形成影像资料,这样更为直观,新手可以根据影像资料,比葫芦画瓢即可。说明书还可以采用图片与文字相结合方式,将流程操作的每一屏拷贝下来,将需要注意的录入项在图片中圈出来,并配文字说明。
(五)说明书应便于查询和获得
系统维护人员应将计算机系统说明书挂在企业网内网中,或者是将说明书内置在计算机系统中,便于操作人员查询。
三、按产品(服务)流程编写的计算机系统说明书是银行规章制度的一部分
篇7
关键词:大数据;计算机;教学改革
中图分类号:G424 文献标识码:A 文章编号:1009-3044(2015)23-0091-02
Discussion on Reform of College Courses in Computer Programming Background under the Big Data ―With "Java Programming" Teaching Reform Case
TAN Xiang-wei, JIANG Hui-yong
(South China Institute of Software Engineering, Guangzhou University, Guangzhou 510990, China)
Abstract: Big Data has opened the third information revolution prelude,in the background of big data, the field of education will have a major change. This article from the computer software programming course "Java Programming" teaching reform to start,discussion on issues of teaching practice based on big data encountered,provide a reference for future Big Data teaching reform.
Key words: big data; computer;education reform
进入21世纪第二个十年以来,互联网真正变得越来越智能化,从诞生之初的满足用户的数据共享需求,到现在根据用户的行为特征来不断创造新的需求,第三次信息化革命的大幕正在徐徐拉开。【2】我们时刻都在感受着大数据浪潮对各个领域的影响,很多传统领域借助大数据与互联网高度融和的特性,不断形成新的增长点与创新点,教育领域当然也不会例外【1】。
随着我国高校信息化建设的不断深入,大部分高校基本实现了教学管理的信息化,可以通过网络、软件、多媒体等渠道对高校开设课程的实际教学进行全方位的管理。但是,在教学实践中笔者发现,除了课程成绩、课程信息、教师信息、学生信息等常规信息会纳入教学管理体系中作为参考指标外,忽略了教学活动开展过程中随之产生的大量有价值的数据,例如:在一次考试中,学生在每道题上花费的时间、最长及最短用时、平均用时等数据;在一次课堂教学中,多少学生进行了预习、有多少学生掌握了课程前导知识、学生掌握一项知识点需要的平均时间、需要进行多少次练习才能掌握……这些数据其实对学生个体掌握知识程度的度量有着重要的影响。为了提高课程的教学质量,针对学生个体的学习特征制定特定的教学策略,具有相当的现实意义与社会价值,笔者拟通过软件工程专业的核心课程――《JAVA程序设计》的教学改革为例,对在大数据背景下的计算机编程类课程教学改革展开探讨,并针对在教学实践中出现的问题提出一些见解。
1 课程信息采集方式的改革
在一门课程教学中开展大数据式的教学改革,数据采集一种是重中之重,传统做法是先由任课老师在教学活动开展前通过教学管理系统将学生、课程的相关信息导出,然后在教学活动结束后整理相关数据反馈给上级教学主管部门。这样的做法使得采集上来的课程数据有一定的倾向性,偏向于结果的分析而不能反映教学过程的真实情况。所以在《Java程序设计》课程教学中,除了从教学管理系统中导出静态数据,还在如下方面进行了采集课程动态数据的尝试:(1)搭建微课视频点播平台,鼓励学生课余根据视频教学内容进行自主学习,平台应统计各个章节视频点播的人次,并且要跟踪点播教学视频的学生用户视频浏览的具体情况,如某章节的视频读取的进度,在什么时间段中断了视频,后续是否继续把相关章节的视频浏览完毕,这类教学视频点播平台可以参照SCORM标准体系进行建设;(2)引入课堂视频信息采集系统,在教室内配备视频监控系统,通过一定的图像分析技术,尝试统计上课期间教室内学生的各种状态数据,如到课人数、做学习无关事情的人数、专心听课的人数等;(3)使用网络信采集技术收集校园网内的课程相关数据,尝试利用网络爬虫技术,在学生管理系统、教学管理系统以及各种校内论坛中定向采集与课程相关的数据,重点采集如学生对课程的各类评价、学生提出的教学建议、学生针对课程提问留言、教师反馈信息等在教学过程中产生的信息,实践中采用开源的Java实现的搜索引擎Nutch中的Web爬虫进行网页数据抓取,并且使用jsoup对抓取到的页面进行解析,取得了较理想的效果。
2 课程教学模式的改革
与传统的按照教学计划、严格按照授课计划进行知识传授不同,大数据背景下的教学模式必定要要求教师在教学方式以及内容编排上进行改革。在《Java程序设计》这门课程中,依据动态采集的数据,首先对教学行政班的整体学习行为进行评价分析,然后该班级对课程知识点的理解程度,对教学进度及内容进行调整;接着通过测试以及学生学习行为数据的细化分析,针对学生个体的学习习惯、学习遇到的难点、给出针对性的学习方案,例如:某同学测试中对Java I/O操作的练习反复出现错误,但是发现其课后并没有在线看相关知识点的微课视频,课堂上也没有认真听相关的教学内容,针对这一情况,应提供一个学习方案给该学生,帮助学生突破这一学习障碍;最后,作为授课的教师,要积极适应大数据背景下的角色转变,要从权威的管理者转变为导演角色,通过合理编排教学内容与教学进度,让学生作为课堂的主体,教学应更侧重于引导学生如何获取知识,教学实践中采取了类似可汗学院的微课辅助教学模式,把各章节关键知识点的讲解录制成视频放到网上供学生自主学习,并通过电子黑板系统与学生进行在线交互,基本能保证学生对于关键知识点的掌握。
3 课程考核方式的改革
传统教学中,学生的笔试成绩是用来度量课程知识掌握程度的关键指标,但是在大数据时代下的教学评估应该是过程性的。在《Java程序设计》的课堂教学中,教师可以通过移动终端接入教学管理系统,方便地记录学生的发言质量、实验完成情况、课堂纪律等情况,系统后台根据教师的反馈,根据特定的数据模型完成平时成绩的生成。根据编程课程的特点,对于动手能力要求较高的综合性实验,采取上机考核+演示答辩的方式来进行,这样既避免了笔试考核带来的片面性,也可以全面检验学生编程技能的掌握情况。
4 教学改革中遇到的问题
以大数据驱动教学活动的开展,在教学实践中,暴露出了如下问题:
1)教育领域产生的大数据普遍存在着噪音干扰问题,大量无效的数据对决策行为产生干扰。在课程大数据的采集过程中,以采集学生课程反馈为例,图1是网络爬虫抓取的学生对课程评价的信息片段,其中有价值的信息较少,需要再次进行提炼才能对教学安排提供参考;
2)针对单一课程的教学数据与其他课程产生的数据融合度较低,例如《JAVA程序设计》课程产生的数据就比较难作为另外一门课程《线性代数》的参考数据,不同性质的课程的学习行为会有特有的显著特征,这样一定程度限制了数据的来源,无形中增加了数据累计的难度;
3)课程中采集的数据可以分为结构化数据与非结构化数据两类,例如:学生的平时成绩、期末成绩、实验成绩、作业成绩、班级、专业姓名等信息属于结构化数据;视频影像、音频等多媒体信息属于非结构化数据。针对非结构化数据分析处理模型的构建要比结构化数据复杂得多,目前很多算法并不成熟,存在种种缺陷,难以对教学行为策略的制定产生关键性的影响。
4)数据背后开展教学活动的载体还是人,无论是学生还是教师都需要转化观念。首先,教师需要把大量的精力放在课后的数据分析上,要形成不断循环的“备课-讲课-实验-分析-改进教学行为”教学工作业务流,在实际操作中发现在数据分析这个环节部分教师重视程度不够,导致改进教学行为存在一定的延后效应;另外,大数据时代的学生学习,对学生参与个性化学习的主动性要求较高,与传统按的部就班、跟着老师学习不同,学生可以选择适合自身进度,通过大量辅质的微课资源对知识点进行自主学习,同时需要根据教师根据学生特点定制的学习方案对自身的学习行为进行调整。实践中发现有少部分学生对这种教学方式较为排斥,例如:某学生按照学习方案应该先在在线平台上看完包含某个知识点的微课视频,但是经教师了解,学生只是为了应付教师检查,把视频放了一遍,其实并没有自觉的观看并且学习。对于学习积极性不高的学生,缺乏外部压力的大数据教学方式使得其学习效率提高程度极为有限。
综上,是笔者在《Java程序设计》课程教学中进行的教学改革尝试,虽然仍存在种种问题与缺陷,但是基于大数据来开展教学的方式必将是未来高校教学的主流。因为在大数据的支持下,做出教学行为的决策更趋于理性,更符合学生的学习行为习惯,使得学生能更好地进行自主个性化学习,体会到学习的乐趣,从而在学习方面取得更大的突破。
参考文献:
[1] 朱建平,李秋雅.大数据对大学教学的影响[J].中国大学教学,2014(9).
[2] 维克托・迈尔-舍恩伯格,肯尼思・库克耶.大数据时代:生活、工作与思维的大变革[M].杭州:浙江人民出版社, 2012.
[3] 徐玮.大数据对高等教育的影响和挑战[J].教育教学论坛,2013(37).
篇8
关键词:汇编语言;BCD数;教学研究
中图分类号:TP312 文献标识码:A 文章编号:1009-3044(2013)32-7257-03
数据在计算机中通常是用二进制数的形式表示的,因为二进制数实现容易、可靠,且运算简单。但是,二进制数不直观,因此在计算机的输入输出时通常还是使用十进制数进行数据的表示。BCD(Binary-Coded Decimal)数即是常用的一种,它是采用二进制编码的十进制数。
目前绝大部分教科书由于篇幅限制,对BCD数运算的十进制调整指令的执行过程和调整的原因很少涉及。鉴于此,该文拟以8086/8088CPU指令系统中压缩BCD数的加法运算为例,对BCD数十进制调整指令的调整原因及执行过程进行分析。
1 十进制调整问题的产生
在8086/8088CPU指令系统中,算术运算指令,如ADD/ADC、SUB/SBB、MUL及DIV等,都是二进制数的算术运算指令。对二进制数的算术运算,无疑都能得到正确的运算结果。但对BCD数的算术运算,8086/8088CPU指令系统并没有提供专门的指令。因此,要进行BCD数的算术运算,还是只能借助于二进制数的算术运算指令。现在的问题是,二进制数的算术运算指令也能适合BCD数的算术运算码?
如图1所示,先来考察三个加法算式的运算结果。为讨论方便,三个算式中的运算数都是以压缩BCD数表示的一位十进制数。
不难发现:
(a)的运算结果是正确的。9的BCD数就是1001;
(b)的运算结果是不正确的。BCD数中没有1111这个数;
(c)的运算结果也是不正确的。(8+9)的正确结果是17,而运算所得到的结果却是11。
以上分析表明:二进制数的加法运算指令并不能完全适用于压缩BCD数的加法运算。对于BCD数的减法、乘法和除法运算也有类似的情况。
2 原因分析
压缩BCD数是以4位二进制编码表示1位十进制数。4位二进制数的编码共有16个,它们是0000、0001、0010…1111。但我们用于表示十进制数的只是前面的10个编码(0000、0001、0010…1001)。而剩下其余6个编码(1010、1011、1100、1101、1110、1111)没有用到,我们把它们称为无效码。
在压缩BCD数的加法运算中,只要BCD数的某一位有下列两种情形之一,它们的运算结果都是错误的:
· 相加结果大于9。说明该位BCD数已进入无效编码区。
· 相加结果有进位,说明该位BCD数已跳过无效编码区。
出错的原因是这样的。我们知道4位二进制数位能表示一个完整的十六进制数,但CPU在执行运算操作时,并不能识别这4位二进制操作数表示的是一个十进制的BCD数,还是一个普通的十六进制数(本质仍然是二进制)。
当情形一发生时,即在两个一位的BCD数相加和大于9(≥10且
第二种情形是,两个一位的BCD数相加有了进位时,CPU是按逢16产生的进位。这样在CPU产生进位操作时,实际上已经比十进制的BCD数多累计了6个,同样也导致运算值比正确结果小6。
总之,以上两种情形,都是运算值比正确结果小6,是两个不同进制数之间的进位相差6,也就是由4位二进制数表示1位十进制数后多出的6个无效码引起的。
3 调整方法
采用+6修正法,把无效码造成的“损失”补回来。设将运算结果保存在累加器AL中,则具体调整操作如下:
· 如果AF标志(辅助进位位)为1,或者AL寄存器的低4位是十六进制的A~F,则使AL寄存器内容加06H,且将AF位置1;
(c)、(b)例即为此情况,应分别+06H调整,可得到正确结果。见图2。
· 如果CF标志(进位位)为1,或者AL寄存器的高4位是十六进制的A~F,则使AL寄存器内容加60H,且将CF位置1;
如:80+90,二进制加法指令运算结果为110,经+60H调整,得正确结果为170。见图3。
需要指出的是,上述调整过程在8086/8088CPU指令系统中是由调整指令DAA,即硬件自动完成的。在执行调整指令前,应当先执行加法运算(ADD或ADC),并将待调整的运算结果保存在累加器AL中,而无需对运算结果进行人为的算术调整。
4 执行过程分析
【实例】设有两个压缩BCD数28和68,分别存放在AL和BL寄存器中。试求这两数之和。
4.1 解题分析与汇编指令序列
先借助8086/8088CPU指令系统中的二进制数的加法指令(ADD/ADC)进行求和运算。本例中是仅对两个两位的压缩BCD数进行求和,且它们已被事先暂存到AL和BL两个字节寄存器中,故应当使用不带进位的二进制加法运算指令ADD,运算结果存放到累加器AL中。
紧接着,用压缩BCD数的十进制调整DAA指令对运算结果进行调整,可得到正确的求和结果。
汇编指令序列如下:
执行DAA指令后结果: (AL)=1001 0110BCD =96D,可见经调整后两个压缩BCD数28与68的和为十进制数96,结果是正确的。AF=1。
除压缩BCD数的十进制调整指令DAA外,8086/8088CPU指令系统还提供了减法十进制调整指令DAS,以及非压缩BCD数的加法、减法、乘法和除法调整指令(AAA、AAS、AAM和AAD)。它们与压缩BCD数的十进制调整指令DAA的使用方法有很多相类似的地方,这里不再赘述。
5 结束语
汇编指令是学习汇编语言程序设计的重要基础。通过以上对BCD数十进制调整指令的分析可见,BCD数的运算之所以要进行十进制调整,原因在于二者是不同的数制之间的运算,BCD数实质是借用了十六进制数的前十个数码,而舍弃了后六个数码。因此,必须通过调整指令对运算结果加以调整修正后才能得到正确的结果。
参考文献:
[1] 周佩玲,彭虎,傅忠谦.微机原理与接口技术(基于十六位机)[M].北京:电子工业出版社,2005.
篇9
小朋友,带上你一段时间的学习成果,一起来做个自我检测吧,相信你一定是最棒的!
一、选择题
(共1题;共2分)
1.
(2分)根据下图列算式正确的是(
)
A
.
B
.
C
.
二、判断题
(共3题;共6分)
2.
(2分)比kg重是1kg(判断对错)
3.
(2分)计算(
+
)×18=
×18+
×18时,运用了乘法结合律。(
)
4.
(2分)
,运用了乘法交换律和乘法结合律。(
)
三、填空题
(共5题;共11分)
5.
(2分)4×
=_______×_______=10
6.
(1分)一条绳子长6米,用了它的
,又用了
米,还剩_______米。
7.
(1分)合唱团有男生54名,女生的人数比男生的
还多5名。合唱团里有_______名女生。
8.
(1分)一个长方形桌面,长
m,宽
m。一个正方形桌面,面积是
m2。长方形桌面的面积比正方形桌面的面积少_______
m2。
9.
(6分)在横线上填上合适的数。
_______
_______×_______×
(_______×_______)×_______
四、计算题
(共3题;共35分)
10.
(20分)下面各题,怎样简便就怎样算。
(1)5÷
×
(2)
+
×24
(3)
×86
(4)(
+
)×3×5
11.
(5分)怎样简便就怎样算
①
×
+
×
②
×(
-
)
③24×
×9×
④30×(
+
)
⑤51×
⑥
+
÷
12.
(10分)看图列式计算。
(1)
(2)
五、解答题
(共3题;共15分)
13.
(5分)人心脏跳动的次数随年龄而变化。婴儿心跳每分钟约135次,青年每分钟心跳的次数比婴儿少
。青少年每分钟心跳多少次?
14.
(5分)小青的体重是42千克,爸爸比小青重
,爸爸的体重是多少千克?
15.
(5分)图书室新进一批图书,其中故事书有81本,科技书有多少本?
参考答案
一、选择题
(共1题;共2分)
1-1、
二、判断题
(共3题;共6分)
2-1、
3-1、
4-1、
三、填空题
(共5题;共11分)
5-1、
6-1、
7-1、
8-1、
9-1、
四、计算题
(共3题;共35分)
10-1、
10-2、
10-3、
10-4、
11-1、
12-1、
12-2、
五、解答题
(共3题;共15分)
13-1、
篇10
关键词:面向对象技术;编程能力;计算机专业;案例教学
0引言
随着云计算、大数据、物联网、移动互联网和人工智能的快速发展,社会对掌握相关技术的从业人员的需求越来越大,同时,对从业人员需要的技能要求也越来越高。然而,计算机技术蓬勃发展的同时也带来编程技术和编程语言的日新月异,更新换代极快,导致编程技术越来越多、越来越复杂,这就要求研究生紧跟时展,掌握最新的编程技术。计算机专业研究生的研究课题大部分是面向实际应用的算法研究,在提出或改进算法的同时,必须编程实现该算法,以验证所提算法的正确性和优越性。因此,编程能力对于研究生两年多的课题研究也至关重要。然而,目前普通高校计算机专业研究生的编程能力普遍较差,分析原因主要包括:①很多学生从三本院校考来或由其他非计算机类专业调剂过来,原有的编程基础较差,没有掌握基本的编程思维和方法,无法满足未来学习和工作需要;②很多学生为了考研,在本科阶段只注重考研理论课程的学习,缺少编程训练和实践。此外,不同研究生的研究方向、兴趣点和熟悉的编程语言各不相同[1]。因此,如何合理安排教学,提高普通高校计算机专业研究生的整体编程能力至关重要。面向对象技术是目前计算机相关行业使用最广泛的编程技术,很多最新的编程框架都是以面向对象技术为基础[2-3],面向对象技术也是计算机专业研究生阶段所开设的与编程最密切相关的一门课程,因此,通过面向对象技术课程建设,提高普通高校计算机专业研究生的编程能力,是一种很好的选择。
1课程改革建设内容
1)开展分类教学。普通高校计算机专业研究生的编程能力普遍不强,而且存在较大差异,有一部分学生的编程基础较好,而个别学生编程能力很差,几乎是零基础。目前一门研究生课程的课时为32课时,无法在有限的时间内兼顾各类学生的个体差异。有的学生反映,由于基础差,原有的讲课内容不好理解;而有的学生则反映讲课内容应该多讲实际案例和最新的编程技术。为了提高研究生的整体编程能力,有必要开展分类教学。教师可以将课程内容分为课堂讲授和课下自学两部分,解决课时不足和学生个体差异的问题。课堂讲授内容是要求大部分学生能掌握的编程技术。课下自学部分主要针对学生基础和个体能力不同的特点,开展高低层次学习:①将最基础的编程技术课件、视频和学习资料放到课程教学平台上,要求编程基础差的学生利用课后时间按照计划提前自学;②将最新的编程技术学习资料放到课程教学平台,供学习能力强的学生课后自主选择学习。2)更新教学内容,紧跟最新编程技术发展。面向对象技术经过多年的发展,已经产生了许多新的技术和方法。虽然这些年也在不断更新教学内容,但远远跟不上技术的发展速度。因此,有必要对授课内容进行梳理,除了讲授面向对象基本分析方法和编程技术,还有必要针对目前流行的Web开发框架、手机App开发和微信小程序开发,讲授相关的编程知识,提高学生对新技术的了解,掌握使用新技术的编程能力。3)探索新的课程考核模式。虽然除了采用传统的笔试外,还可以通过课程作业的方式考查学生的学习情况,但整体上还存在无法真正度量学生编程能力、考核不及时的问题。因此,有必要探索新的考核模式,探索“定期交流汇报—实践过程监督—最后答辩汇报”的考核新模式。通过交流汇报不仅了解学生的学习情况,而且可以增强学生间的学习。通过中间实践环节文档和编程结果的审核考察学生的学习情况,及时发现问题,从而可以有针对性地对学生进行辅导。最后要求学生就所做的课程实践内容进行答辩汇报,既考核了学生的实际编程能力,又锻炼了学生的上台汇报课题能力。4)以实际项目开发需求为导向,以提高实际编程能力为目标,通过案例教学[4],提高研究生的编程实践能力。编程能力的提高要靠实际项目训练,因此有必要在课程的内容设置上,以企事业单位的实际项目为案例,采用最新的面向对象技术,传授最新的编程技术(web开发框架、手机App开发、微信小程序开发、EChart可视化技术等技术),通过编程实现实际项目的一部分功能,锻炼学生的分析能力和实际编程技能。通过对比分析实际可运行系统和自己编程实现系统之间的差异,学生能真正体会如何进行系统分析与设计、编写好的程序代码,从而找出自己不足,提高编程能力。5)建设课程的在线学习和分享平台,实现课程自学和编程技术的开放共享。根据课程的实际需求,开发设计课程在线学习和分享平台。首先,可以将提前准备的课件和视频资料放到平台上,供学生在线自学;其次,实现一些资源分享,包括最新技术介绍、优秀代码分享、历届研究生课程作品展示等。
2实施方案
2.1课程结构安排
课程结构安排的主导思想是通过减少理论授课学时、增加实践环节,提高学生的系统设计与编程能力,而且实践环节选择的内容应该是最近大家比较熟悉、比较热门、可以采用最新技术实现、学好后能够推广应用的课题,从而让学生有兴趣投入精力学习。笔者在有限的32学时内,安排讲授18学时、案例编程实践12学时、课程考核2学时,其中讲授内容又分为基本理论教学10学时和实际编程技术教学8学时;另外安排22学时的自学内容,其中简单内容8学时、高级内容8学时、案例自学6学时。课程教授和实践内容以目前主流的Web开发为主,以手机App、微信小程序开发为辅。案例编程实践安排3个内容,其中第1个案例为简单案例,所有学生必须学会,占用2学时(多余任务由学生课余时间完成);第2个案例为基本案例,完成一个相对完整的简单系统,所有学生能够基本掌握,为中等难度案例,占用10学时;第3个案例为较复杂案例,作为自选任务,鼓励部分学生完成,占用8学时。
2.2讲授内容安排
在课程讲授的18课时安排上,内容主要包括课程概述、软件编程技术发展、面向对象概况和核心概念、面向对象基本思维模式和分析方法、简单多层框架开发模式、MVC模式、SSM(Spring+SpringMVC+MyBatis)框架,以及结合MVC框架需要的基本编程技术。在讲授内容的间隙,要求学生自学一些内容,同时安排案例教学内容,保证理论教学和实践的交叉进行。
2.3自学内容安排
在自学内容安排上,首先面向原来基础较差的学生安排8学时的简单内容,包括Java集成开发环境、调试和部署,面向对象基本语法,前端开发技术JS的基本概念语法等;其次面向编程能力水平较高、学有余力的学生安排8学时较复杂内容,包括EChart可视化技术、App应用开发、微信小程序开发以及手机App和微信小程序应用实践学习。
2.4课程考核模式研究
整体考核分为两个部分:笔试(50%)和案例实践完成情况(50%)。笔试主要考核学生对基本概念、技术的掌握以及对整体项目设计思路的掌握能力,分为填空题、选择或者判断题、简答题、设计题、论述题。案例实践考核又分为3个部分:简单案例1(20%)、基本案例2(30%)和复杂加分案例(10%)。简单案例1是一个基本的实践要求,要求学生必须完成,安排在课程中期,主要目的是通过中期的简单案例,了解各个学生对知识的掌握程度以及设计编程能力,从而督促学生进一步学习,指明学习方向,同时适当调整后续课程内容。学生在规定期限完成案例后,教师逐个检查并打分。基本案例2是一个真正培养学生编程能力的案例,要求学生基于基本需求,扩展内容,设计程序框架,并编程实现一个功能相对完整的系统。学生上交项目文档和源代码,并到讲台进行汇报,汇报项目的主要功能、实现的技术特点、项目的心得体会等。教师对每个项目进行点评,指出优点和不足供全班同学学习与讨论,学生也可以针对项目提问题,鼓励学生相互之间交换代码学习。教师根据汇报情况和项目资料进行打分。复杂加分案例是在基本案例2的基础上,提出更多更难的功能要求,鼓励学有余力的学生完成,根据完成情况加分(0~10分),但加分后总分不超过100分。整体上采用实践过程监督(简单案例1)和最后案例汇报(基本案例2)来考核学生的实际编程能力和上台汇报能力,鼓励学有余力的学生完成更多的实践任务,鼓励学生相互之间学习。
3结语
本文的教学方法改革已经在天津工业大学实行。从最终的实施情况来看,大部分研究生的编程能力得到较大提高,都能做出一个较为完整的应用系统,取得了较好的教学效果。
参考文献:
[1]曹佳.综合实验为驱动的教学法在研究生网络编程类课程中的应用[J].计算机教育,2016(5):44-47.
[2]廖湖声.面向对象程序设计课程的教学改革探讨[J].计算机教育,2016(3):99-102.
[3]阿不来提吉力力,艾则孜阿不都艾尼.“项目驱动教学法”在面向对象程序实践课程中的应用[J].电脑知识与技术,2016(3):113-114.