计算机程序设计论文(精选9篇)
篇1:计算机程序设计论文
《计算机 程序设计》 实验报告
姓名:
学号 :
实验日期:
****年**月**日
实验名称
控制结构与基本算法 一、实验目的要求 1.熟练掌握 if 语句和 switch 语句 2.循环控制结构的使用 二、实验内容 1.实验教材 P86 第四题。
2.实验教材 P87 第八题。
3.实验教材 P108 第一题。
4.实验教材 108 页的第四题。
5.选做题:参考实验教材 P104 第六题,做课件上题目:
科大有 4 位同学中的一位做了好事不留名,表扬信来了之后,校长问这四位是谁做的好事.A 说:不是我.B 说:是 C.C 说:是 D.D 说:他(C)胡说
• 文件名格式:学号-姓名-实验 5.doc
• 序号 1-23:tmf77@mail.ustc.edu.cn • 序号 24-45:yunmeng@mail.ustc.edu.cn • 序号 46-67:cys1024@mail.ustc.edu.cn
三、上机程序(算法设计思想)
四、运行结果
五、调试中的问题及解决方法
篇2:计算机程序设计论文
(考试时间120分钟,总分100分)
说明:
1、比赛使用语言:C、C++、VB2、题目完成后,存放在D:Test下以题号名单的文件夹当中
班别:姓名:机号:成绩:
1、输入一个摄氏温度,要求输出华氏温度,公式为F=
C代表华氏温度,结果取两位小数。(10分)
2、输入整数a、b、c,由小到大输出。(10分)
3、计算74和68公约数的和。(15分)
4、一电文(由字母和数字组成)字母按以下规则加密:(20分)
A->Za->z
B->Yb->y
C->Xc->x
。。
即第一个字母变成第26个字母,第i个字母编程第(26-i+1)个字母。
而数字变化规则如下:
0->9
1->8
2->7
。。
即第一个数字0变成9,第数字i变成(9-i)
求编写程序将电文加密
5、接上题,求解密程序。(20分)
6、魔方方阵是指方阵的每一行、每一列、对角线之和均相等,例如三阶的魔方方阵为:816
357
492
魔方方阵数字排列规则如下:
(1)、将“1”放在第一行中间的一列。
(2)、从“2”开始直到N×N(N为阶数)止各数按以下规则存放:每一个数存放行比
前一个数的行数减
1、列数加1
(3)、如果目前该数的行数为1,则下一个数的行数为N(最下面行)
(4)、如果目前该数的烈数为N,则下一个数的列数为1
(5)、按以上规则:如果当要存放数的位置已经有数存在、或者要存放的数是在第一行
时,则把要存放的数放在前一个数的下面。
篇3:计算机自动程序设计研究
围绕程序设计这个目标,很多计算机科学工作者进行了长期的探索和研究,从而推动了计算机科学的发展,形成了整个程序设计的发展链[1]。
(1)从机器语言到高级语言的程序设计
随着编译理论和技术的逐步成熟,程序设计人员摆脱了大量的、繁琐的、二进制机器语言的程序设计,而改用高级语言的程序设计,其中间环节由编译程序来完成。研究的结果则产生了程序设计历史上的第一次飞跃。
(2)从过程程序设计到结构化程序设计
随着方法学(结构化的方法学)的逐步成熟,模块技术(模块间的耦合、模块独立性、模块的扇入扇出、模块内聚)等技术的广泛应用,完成了过程程序设计到结构化程序设计的转换,从而导致了程序设计的综合和变换技术的产生。研究的结果,其结构化的程序设计方法,则促使了程序设计历史上的第二次飞跃。
(3)从结构化程序设计到面向对象程序设计
从80年代起,程序设计的内部结构发生了质的变化,特别是软件的可重用性和可扩充性取得了长足的进步,从而推动了大型科学与工程软件的开发和软件生产的自动化。完成了结构化程序设计到面向对象程序设计的快速发展。研究的结果,产生了程序设计历史上的第三次飞跃。
(4)自动程序设计
到了90年代,并行与智能计算机的进步,推动了面向A-gent程序方法学的发展,它集成了以进程、数据(通讯)为中心的多种程序设计方法的优点,使自动程序设计出现了生机。特别是遗传程序设计的出现,开创了自动程序设计的新局面,给自动程序设计带来了新的希望。
本文介绍了自动程序设计的概念和遗传程序设计的方法,并利用并行计算技术来实现自动程序设计。
1 自动程序设计
为阐述什么是自动程序设计,我们先引进程序结构PS(pr ogr am s t r uct ur e)的概念和遗传程序设计的概念。
1.1 程序结构
一个计算机程序可以用一棵树来表示。例如,计算f(x)=(x+0.1*si n2x)cosx的程序,其树表示如图一所示。
从程序树结构表示可以看出:一个计算机程序是由两种基本程序集合的元素复合成的。一个是运算集合,如树中的非叶节点:+,*,/(算术运算)与cos,si n(函数运算);另一个是数据集合,如树中的叶节点:2,0.1,x(I NTEGER,REAL)。我们把一种程序设计语言的运算集合(包括其内部函数及子程序库),记作0,把它的数据集合(包括数据结构),记作D.任何一种程序设计语言,都需提供该语言的运算集合0与数据集合D。程序设计语言越高级,所提供的运算集合与数据集合的内容越丰富,且运算集合与数据集合的复合映射形成的程序成份也越复杂。
一种程序设计语言的程序结构(PS)为它的运算集合(0)与数据集合(D)的复合体,即Ps=0*D。由于D中可包含逻辑型与字符型等数据,0中可包含(i f-t hen)与whi l e操作等,故程序结构PS包含了该语言的全部基本程序成份,反映了该语言的全部功能。
1.2 遗传程序设计
20世纪90年代初,KozaJ R开创了演化计算[2]的新分支——遗传程序设计GP(genetic programming)[3],它是学习和借鉴大自然的演化规律,特别是生物的演化规律来解决我们面临的各种计算问题的自动程序设计的方法学。它来源于仿生演化算法EA(evolutional gorithm),包括遗传算法GA(genetical gorithm)、演化策略ES(evolution strategy)演化规划EP(evolutionary programming)等。
遗传算法的遗传群体是由一些二进制字符串组成的,而AP(automatic programming)的遗传群体是由一些计算机程序组成的,即由PS的元素形成的程序树组成的。AP从以PS的元素随机地构成的计算机程序的原生软体开始,然后应用畜牧学(animal husbandry)原理繁殖一个新的(常常是改进了的)计算机程序群体。这种繁殖是应用达尔文(Darwin)的“适者生存,不适者淘汰”原理,以一种领域无关的方式来做的,即模拟大自然中的遗传操作:复制、杂交(有性重组)与变异。
复制是一个无性的生殖方法,从旧群体中选择出适应度强的个体到新的群体中。适应度越高的个体被选择的可能性越大。
杂交是生物体的有性繁殖。复制操作能从旧群体中选择出优秀者,但不能创造新的个体。而杂交操作可创造出新的个体。它是通过两个个体的交换组合来产生新的优良品种。即,在群体中任选两个个体,从两个个体中都随机选择一棵子树,然后将两棵子树交换,就可以得到两个新的下一代的个体如图二所示。
变异即基因的突变。变异是用来模拟生物在自然遗传环境中,由多种偶然因素引起的基因突变,它以很小的概率随机地改变遗传基因(即个体中的某一棵子树)。突变点随机的被选择,以这个点为根的子树将被删掉,而后按照个体建立的办法随机产生一棵子树来代替被删掉的子树。通过变异操作,可确保群体中遗传基因类型的多样性,以便能在尽可能大的空间中进行搜索,以获得较高质量的优化个体,也可避免丢失有用的信息。
1.3 自动程序设计
有了程序结构PS的概念和演化算法(EA)。下面就可以讨论自动程序设计AP了。人们可用下面的公式来概括自动程序设计的思想:EA+PS=AP,即
(Evolutionary Algorithms+Program Structure=Automatic Programming)
(演化算法+程序结构=自动程序设计)
下面给出AP繁殖求解问题的计算机程序运行的步骤[4]:
(1)用问题的运算∈O与数据∈D随机地复合(即用Ps的元素)产生一个初始计算机程序群体;
(2)迭代地实施下述步骤直到满足终止条件:
(A)执行群体中的每一个程序,并根据其适应性给它指定一个适应值。
(B)应用下述3种遗传算子创建一个新的计算机程序群体。(这些算子作用在那些根据它(们)的适应概率从已有群体中选出来的个体上)。
(1)繁殖(Reproduction):复制一个已有的计算机程序到新群体中;
(2)杂交(Crossover):从两个已有程序随机地选其部分重组而创造两个新的程序加到新群体中;
(3)变异(Mutation):随机改变一个现存程序的随机选取部分而创造一个新程序加到新群体中。
(3)从计算机程序群体中识别最好的程序作为这次运行AP的结果,它可能是问题的一个解或近似解。
上述过程是实现自动程序设计的基本框架,对不同的问题,它们的差别可以很大。因为对不同的问题,其运算集合与数据集合也不同。一般来说,问题的程序结构越简单,即O与D越小,则问题的程序空间越小,AP求解也就相对容易一些。
2 自动程序设计的并行处理
并行计算技术的发展为自动化程序设计提供了物质基础。自动程序设计的内在并行性为高效地利用并行计算最新成就来实现程序设计自动化提供了可能。自动程序设计是以计算智能(Computational Intelligence)来取代人的智能。应用EA进行自动程序设计的代价是计算机资源的高消费。
现在来分析前面描述的AP繁殖计算机程序的算法的并行性。
算法的控制参数如下:
(1)计算机程序群体的规模m(即群体所含程序个数);
(2)遗传算子的分布概率:繁殖概率PP,杂交概率PC与变异概率Pm;
(3)演化的代数g。
算法的并行度取决于问题的群体规模;算法的粒度取决于程序长度、程序测试集的大小、程序评估方法以及遗传算子的计算复杂性等。
算法的性质除了依赖于并行度与粒度之外,也依赖于遗传算子的分布概率PP,PC与Pm。由于它们一般均大于零,故算法不是完全同步的。
从算法的计算步骤可以看出:步骤(1)产生初始群体的过程是完全并行的,其并行度为m。步骤(2)Ⓐ计算个体的适应值是完全并行的,其并行度为m。Ⓑ进行遗传操作,是完全并行的,但由于杂交运算是对两个个体进行的,故并行度小于等于m。
由此可见该算法是异步并行的,所以适合在大规模MI MD计算机系统及分布式计算机系统上执行。Koza在电路自动设计中,采用的是最大群体规模m=640 000,遗传算子的概率分别为PP=10%,PC=89%与Pm=1%。
他们用一台由64个Power PC601(80MHz)处理机组成的中等粒度的Parystec并行计算机系统执行。64个处理机每个计算10000个个体,故这种方法被称为分布式演化算法。
由此可见,用大规模并行MI MD系统来实现自动程序设计是高效率的,即可以充分发挥大规模并行计算机系统在自动程序设计中的作用。实际上,规模较大的问题,其自动程序设计一般只有采用并行处理方式才可能完成。自动程序设计(AP)算法是并行计算环境下的产物。可以预言自动程序设计方法将随着并行计算的飞速发展而发展。
3 结束语
演化算法(EA)是正在发展着的一种新理论与新技术,本身还存在许多问题。遗传程序设计GP又是一项关键技术。自动程序设计(ALP)拓展了遗传程序设计的思想和方法,把它概括为AP=EA+PS,即,自动程序设计=演化算法+程序结构。
摘要:自动程序设计是计算机科学的中心目标之一,围绕中心目标进行研究是计算机科学工作者的责任。遗传程序设计作为演化计算的分支,具有概率搜索的本质和结构优化的特征,已成为研究计算机自动程序设计的重要工具。文中研究了自动程序设计的概念和遗传程序设计的方法,利用并行计算技术来实现自动程序设计。
关键词:演化算法,自动程序设计,遗传程序设计,并行计算
参考文献
[1]王庆春.自动程序设计的研究[J].电脑开发与应用,2006,(07):87-98.
[2]潘正君,康立山,陈毓屏.演化计算[M].北京:清华大学出版社,1998,7.
[3]KozaJR.Genetic Programming:On the Programming of Computers by Means of Natural Selection[M].Cambridge:MIT Press,1992.
[4]Kang Lishan,Chen Yuping,Pan Zhenjun,et al.Auto-matic Programming Exploration:on Genetic Programming[J].Chinese Journal of Software,1997,182~188.
篇4:计算机程序设计论文
关键词:计算机;程序设计;查找;算法;效率分析
中图分类号:TP301.6
随着社会的进步和时代的发展,许许多多应运而生的新鲜的事物丰富了我们的日常生活。计算机网络就是一个时代的产物,也是一个非常伟大的发明,计算机网络的产生是我们人类发展中的一个重要的里程碑。计算机网络给我们的生活带来了很多的便利,给我们的工作带来了更加广阔的视野,但是就在计算机技术给我们的社会带来了诸多便利的同时,也给我们带来了一定程度上的困扰。任何新鲜事物的产生都会有两面性,这是一个永远都不发避免的问题。对于计算机网络来说,如何来完善其功能来更好的为人们服务哭然重要,但是如何更好的避免弊端的发生也同等的重要。下面我们就一起来探讨一下计算机查找中存在的问题,以及如何来应对这些问题。
1 计算机程序设计中的查找算法
1.1 查询的概述
查找简而言之就是找寻某种人们需要的东西。在人们现代的生活当中,查找是很常见的行为举止之一,比如人们遇到不认识的单词的时候需要查询字典,不知道电话区号的时候需要查询电话薄等。人们在日常生活中对于查询的需求促使了许多的信息查询系统应运而生,例如考试成绩查询系统、火车时刻查询系统等等。在系统管理当中,查询系统是一个重要的部分,是整个系统正常运转的关键所在。查询系统完备能够有效的提高整个系统的效率,从而使得我们的生活和工作得到更好的便利。在查询系统当中,查询算法是对于查询效率起关键
1.2 几种常见的查询算法
1.2.1顺序查询。顺序查询,将待查找记录的关键字和查找表中记录的关键字逐一比较,可以从表头到表尾,也可以从表尾一直向前到表头。查询会产生两种结果,一种是在某个位置找到我们所需要的信息,即说明查询成功另一种就是在领域范围之内没有我们需要的信息,即说明查询失败。对于关键词不是很长的,而且关键词是无序排列的这种就可以选择顺序查询法来进行查询。
1.2.2 折半查询。折半查找又叫二分查找,其基本思想是将待查找记录的关键字K首先和查找表中中间位置记录的关键字相比较,如果相等,查找成功;如果K较小,则在查找表的前半个子表中继续折半查找;如果K较大,则在查找表的后面半个子表中继续折半查找。因为每经过一次比较,查找范围都缩小了一半,所以被叫做折半查找。如果查询的关键词以形成查询表且查询表为按顺序存储,这时就可以采用折半查找的方法来进行查找。
1.2.3 分块查询。分块查询是顺序查询的一种延伸,所以在进行查询的时候需要满足分块有序的原则,即查找表中记录按关键字分成若干子表,后一子表中记录的关键字均大于前一子表中所有记录的关键字的值,除了查找表之外,还需建立一个索引表,存储每个子表中的最大关键字及起始位置。如果查询表能够符合分块有序的规则,那么就可以采用分块查询法。
1.2.4 哈希查詢。哈希查找是一种利用哈希函数来实现的一种查找算法。哈希函数是在记录的关键字和记录的存储位置之间建立一种对应关系,这种对应关系我们称之为哈希函数。哈希函数的优势就是构造非常的灵活,构造方法也很多,如直接定址法、数字分析法、平方后取中值、折叠法、除留余数法、随机函数法等,除此之外可以根据关键词来进行自行的设定。
2 查询算法中存在的问题
在人们的日常生活和工作当中,查询为人们带来了便利,但是有些时候也会给人们造成一种误导。据调查显示,在如今的计算机程序查询中,常常会出现搜索的关键词与搜索出现的内容不符的一种情况,这也是目前对于查询算法来说,存在的最主要的一个问题。查询算法是一种为人们服务的一种方式,如果在查询的过程中查不到我们想要的问题答案,那么查询就失去了意义。对于计算机程序的设计也不存在帮助,对于计算机技术的发展存在着很大的制约性。随着科技的发展,必须要解决这一问题,从而使得查询更好的为使用者来服务,从而便利现代的生活。
3 查询的优化算法
查询扩展可以根据查询的关键词,添加与搜索关键词关联的词语,从而得到更加准确的搜寻结果。这种方法对于查询内容与查询词语不符这一问题能够提供有效的帮助。对于查询系统来说是一种很好的辅助查询的方式。这种方法需要人为的参与,属于一种手动筛选的一种检索方式。
此基础之上,研究者有发明了一种不需要检索人员参与的一种纯自动化的一种查询扩展的方式,这种方式叫伪相关反馈。伪相关反馈是对于相关的关键词来进行搜索,搜寻出的相关的信息等整合到一块,然后再其中选择出十到二十个的关键词加到原来的关键词当中,在进行进一步的搜索,从而得到更为精准的信息。
自动提取词可以利用语言处理器来提取有关的关键词语,可以将语句当中含糊不清的语句利用统计学和机器学习把术语条目从候选列表过滤出来。过滤出来的术语条目基本不会产生歧义,而且精确度极高,对于知识领域的概念化很有帮助,还能够支持领域本体的创造。词聚类是一种获得词的很好的方式。词聚类分析就是把类似的对象分在同一组,这其中包含了很多不同的算法和方法。聚类分析是一种以一种方式来把不同的对象进行分组的,从而确保同组中的不同的对象之间的相关度为最高的一种探索性的数据分析工具。聚类分析的优点在于可以在无需提供解析的情况下找出数据的结构。
4 结束语
在社会发展迅速的今天,计算机技术的应用已经覆盖了我们的生活和工作。在计算机程序设计中查找的使用率是非常高的。如何提高查找的效率就成为了一个摆在计算机程序设计中值得思考的一个问题。除了选择适当的查找方法来提高查找效率之外,对于查找算法的优化也是一种很好的途径。世界在发展,社会在进步,计算机技术处在一个不断的革新当中,革新的速度也是十分惊人的。那么对于查找算法的更新和发展也应该与时俱进,不断的在实践之中,发现问题,并及时的解决问题。从而以适应人们对于查询功能的更多的需求。从而更好的推动计算机的发展。
参考文献:
[1]朱如龙.SQLServer数据库应用系统开发技术[M].北京:机械工业出版社,2008.
[2]严蔚繁,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2008.
[3]严蔚繁,陈文博.数据结构及应用算法教程[M].北京:清华大学出版社,2011.
[4]赵彦.数据库原理与应用技术开发[M].北京:清华大学出版社,2009.
[5]钟敏娟,林亚平,陈治平.基于分类和关键词组抽取的信息检索算法[J].系统仿真学报,2004.
[6]王长,杜亚军,张培英.形式概念分析中的查询扩展元优化[C].信息融合技术高级研究所,2010(07).
[7]郭佳峰,徐古,李煌.用于查询优化的统一的判别模型[C].第三十一届信息检索研究与开发国际信息检索年会会刊,2010.
[8]杨凌鹏,李东红,汤立.基于全部及局部词的文档重排.第三届SIGHAN汉语言处理会刊,2004.
作者简介:杨殿生(1963-),男,汉族,安徽明光人,华中农业大学硕士,副教授,主要研究领域为:计算机基础、算法及教学管理。
篇5:计算机程序设计实践任务书。
时间: 2014年上学期 第14-16周;18-19周班级:指导教师:
一、实践目的和要求
1.巩固C++基础知识,了解基于对话框应用程序、文档/视图应用程序的框架结构及其运行机制,初步掌握创建MFC应用程序的方法、过程。
2.掌握常用控件的重要属性、主要消息、常用成员函数,并能熟练地应用这些控件设计应用程序。
3.了解绘制图形的方法、定时器的使用,鼠标消息处理函数和键盘消息处理函数编写。
4.掌握对话框使用和菜单设计的技术,培养学生独立设计综合程序的能力;同时培养自学能力;训练小论文撰写能力。
二、设计任务
从下列5个设计方向中选择一个或多个,将程序所有功能用菜单整合在一个项目中,要求达到预期效果、并写出实践报告。
1.计算程序设计。如:计算器;一元二次方程的求解;华氏温度和摄氏温度之间转换,十进制与二、八、十六进制之间的转换;求字符的ASCII码、阶乘、最大公约数、最小公倍数;素数、水仙花数、完数、回文数等数的判定等等。
2.文本编辑程序设计。
3.绘图程序设计。如:吹泡泡程序、曲线等图形绘制。
4.多媒体程序设计。如:音频播放器、FLASH动画播放器等。
5.信息管理程序设计。
三、考核与成绩评定方式
采用百分制,实践课总评成绩取下列3个百分制成绩的加权和:平时考勤和表现成绩×20%+实践报告成绩×20%+设计项目成绩×60%。其中,每部分成绩满分均为100分。最后折算为五个等级:优、良、中等、及格和不及格。
四、参考文献
篇6:计算机程序设计课程教学方法探讨
本文结合VB语言程序设计课程的教学实践与理论思考,分析了教学过程中的`一些实用方法,从培养学生学习兴趣,教学方法和考核方式等方面阐述了如何提高VB课程教学的质量.
作 者:董立祥 作者单位:长江大学后勤集团教室管理中心 刊 名:法制与社会 英文刊名:LEGN SYSTEM AND SOCIETY 年,卷(期): “”(12) 分类号:G633.98 关键词:VB程序设计 学生学习兴趣 教学方法 考核方式
篇7:计算机程序设计大赛活动策划书
四川师范大学成都学院学生社团联合会
计算机科学与技术系社团部计算机科技协会
计算机程序设计大赛活动策划书
一、活动背景:
信息社会计算机事业发展尤为迅速,而程序设计也如雨后春笋,蓬勃发展。举办本次程序设计大赛有利于学院软件人才队伍健康成长;有利于高校因材施教,深化教学改革,促进我院软件产业的发展。本次活动定位于初级编程爱好者,是联系初级编程爱好者与软件开发者的一条不可或缺的纽带,旨在提高广大在校学生的学习积极性、创新意识和勇于实践的科学精神,进一步培养我院学生的综合素质和创新能力,挖掘出更多优秀软件人才。
二、活动地点:学院1201、1219实验室
三、活动目的及意义:
1.推动学院科技活动发展,响应学院的号召,继承学院“科技节·软件设计大赛”的精神,培养学生创新和实践能力,提高全院学生的科学素养。
2.为学生的个性发展搭设平台,使学生在全面发展的基础上,展现个性,探索科学奥秘,体验创造与成功的快乐,激发对科学的求知欲望。
3.以本次活动为载体培养科技人才,加大协会建设力度,践行协会宗旨,与E时代俱进。
四、活动对象:四川师范大学成都学院全院在校学生
五、主办单位:四川师范大学成都学院院团委
六、承办单位:学生社团联合会计算机科学与技术系社团部计算机科技协会
七、人员安排:
组委会成员:石彬(计协指导老师)、李明君(计科系团总支书记)、杨志军
(计协会长)、王九林(活动部部长)、代黔君(活动部副部长)
裁判组成员:
组长:石彬、杨志军
成员:刘静、罗国峰、徐冬冬、胡俊峰、彭海岩、吴强、冯锐
1.阅题成员(组委会成员)
2.宣传成员:协会宣传部负责展板制作,海报制作,宣传资料打印,外联部
协助宣传(协会干部联系学生会相关部门配合工作)
3.组织、监督人员(协会监察部和活动部)
八、比赛方式:
(方案一)
组委会统计好报名名单后,把众多报名者进行分组(具体分组情况根据
总报名人数和可利用的电脑数目而定),方便比赛的顺利进行。
初赛阶段:
我协会组委会选定题目后(相对简单),全院所有报名选手不分年级高低,都在这些题中抽选题目,进行上机答题。在规定时间内完成,并且程序优秀者胜
出,我们将在这些胜出者中挑选一部分人进入决赛。
决赛阶段:
也按照如上形式,只将题目难度相对加大,在规定时间内完成答题且经组
委会审定程序最优秀者获第一名,依次决出第二和第三名。
(方案二)
活动分组:根据学院学生的专业知识水平,本次活动将分为两组参加比赛,06、07级学生为一组,08、09级学生为一组,再将两大组参赛选手分批次到实验室参加上机比赛。
活动说明:
1、活动分为初赛和决赛,决赛人数为初赛人数的30%,2、决赛评出一等奖名,二等奖名,三等奖名。
3、程序设计大赛相关题型为上机题
九、活动流程
(一)宣传阶段:(包括以展板的形式,在各个公寓楼下面张贴海报,到班级宣
传)。
(二)1、协商期间(11月日):
与校方协商活动的具体事宜(各方面取得校方的支持),选定比赛场地(暂定
于学院1201和1219实验室)。
2、赛事准备期(11月日):
组建赛事组委会进行初期的问卷调查及赛事宣传(发布此次大赛的问卷调查
表,在校内进行比赛内容的相关调查),赛事初期宣传同时进行(后附详系宣传计
划),回馈问卷调查表,整理资料.确定比赛题目及比赛方式,制定比赛规则(后附参考),开始报名并分组,全面开展赛事宣传(后附详系宣传计划),组建赛事裁判组。
3、活动开展时期(11月日):
组委会连同计协其他成员全面做好赛事组织工作(包括每场比赛的组织和监督以及对突发事件的应对),与参赛选手保持联系,组织做好赛事报道工作
4、活动后继11月日):
颁奖(可做成颁奖晚会,也可决赛后立刻进行颁奖,邀请参赛选手和主办方对本次活动进行讨论总结,共同探讨<学生设计程序>的问题,引导同学正确对待程序设计,共同建设有益学习向上的校园风气(可做成讲座形式,对同学开放可进行旁听)。
对获奖选手的作品我们将组织有兴趣的干部和会员学习,也将放在协会网站上进行宣传。
十、经费预算
宣传横幅:8米*8米/元=64元
资料打印:30元
奖金:一等奖名奖金元
二等奖名奖金元
三等奖名奖金元
十一、比赛说明
1.本次活动有异于学院的软件设计大赛,难度降低许多。
2.本次活动紧跟学院软件设计大赛步伐,响应学院号召,定位于初级编程爱好者,在学院程序教育事业和软件设计人才之间起不可或缺的纽带作用。
3.本次程序设计大赛所有题目由组委会制定,题目没有标准答案。
4.本次活动均采取上机答题的方式,在规定时间内完成竞赛题目,提交试卷方可离开。
5.答题不限制使用何种编程语言,只要能解决题目提出的问题,给出答案,均算通过。
6.组委会阅题将根据所编程序的具体情况(如实现难易程度,代码耗时长短,是否有出错判断等)给分,从而选出优胜者。
十二、注意事项
1.竞赛者在比赛过程中不得交头接耳、左顾右盼,抄袭他人答案,一经发现
此类情况,立刻取消竞赛资格,情节恶劣者交由学校处理。
2.竞赛者不得夹带与比赛相关的资料到现场,一经发现立刻取消竞赛资格。
3.竞赛者不得将任何通讯工具带入竞赛现场,一经发现立刻取消竞赛资格。
4.竞赛过程中如出现计算机意外罢工,请竞赛者及时联系我们负责当场比赛的裁判团成员。
5.参加竞赛者需保持比赛现场的情节卫生。
6.每位工作人员的言行都代表着我们计协的形象,因此在整个维持秩序的活动中一定要注意自己的一言一行,注意礼貌问题。
7.工作人员必须按照要求,认真负责完成工作,活动期间要求各个部长担起责任合理安排人员,认真执行任务,做到井然有序
8.相关工作人员必须按照要求,认真负责完成工作,做好整理工作
9.在活动期间,由于组委会负责人员调动,人数如果不能满足需要,其他部门将尽力配合活动部做好相关工作。
10.活动资料整理后交由办公室存档
11.竞赛后安排干部打扫比赛现场
四川师范大学成都学院学生社团联合会
计算机科学与技术系社团部计算机科技协会
篇8:《计算机程序设计》课程建构心得
《计算机程序设计》是理工科专业的一门重要的基础课,是多门后续课程的基础,在整个课程学习中占据非常重要的地位。不同于软件工程开发类程序设计,理工类基础课程教学更侧重知识的理论性和连贯性,本门课程的教学以介绍编程算法和编程语言为主,培养学生的程序思维,具有鲜明的教学特色。本文根据实际教学经验讨论面对信息化时代学生C语言程序设计教学中存在的一些问题,融入建构主义给出了解决问题的方法,以更好的适应教学要求,培养更多扎实的精英人才。
1 已有教学模式及其利弊分析
1.1 传统教学法
传统教学法是教育界使用最为广泛的一种教学手段,归纳起来可以分为“提出概念—解释概念—举例说明—归纳总结”四个步骤,这种教学模式以课本为主,思路清晰,节奏平稳,但不利于发散性思维,因此对《计算机程序设计》这样实践性强、内容变化非常丰富的课程来说显然是不适用的。
程序设计课程除了要求学生掌握C语言的语法基础,还要求学生培养一定的编程思想,传统教学法在课堂上把所有学生的思维都定位到了一种方法上,从而会导致在后续实验作业中大家都照搬硬套,采用同样的思路,同样的算法,甚至同样的变量定义,束缚了学生编程思维。另外,学生生源范围广泛,基础差异很大,例题难易程度和作业难易程度很难在课堂中把握,这也正是传统教学法很难兼顾因材施教而造成的弊端。
1.2 项目教学法
项目教学法是理论与实践相结合的一种比较受欢迎的教学方法,最早提出是教育专家弗雷德·海因里希教授在“德国及欧美国家素质教育报告演示会”上提出的一则实例,首先由学生或教师在现实中选取一个相关项目,学生分组对项目需求进行分析讨论,并写出各自计划书和完成实施,然后通过各自的演示阐述机理,最后由教师对学生作品进行评估,学生从中取长补短。这一教学法是师生通过共同实施一个完整项目工作而进行的教学活动,将理论转换为实际需求来让学生上手,在很大程度上可以发掘学生的创造潜力,使他们能更好的理解和把握课程要求的知识和技能,并促使其提高动手能力和实践能力,目前在地方部分高校的程序设计课程中推广,教学效果非常好。
但是,对于部队院校《计算机程序设计》课程来说,此教学法的推广空间却很有限,特别对于部分教学班存在生源范围广、落差大、基础薄弱的情况,学生接触面并不广泛,缺乏工程锻炼。项目教学法对于完全没有程序设计知识概念的学生来说,所架设平台和要求过高,学生很难在短时间内达到完整项目实现的高度,而且课后时间有限,接触项目资料有限,没有太多借鉴、参考和学习的余地。
2 关于《计算机程序设计》课程的几点思考
2.1 更新观念,明确目标
军队高校的教学目标和普通高等本科院校、高职院校的教学目标不同,尊重学习者的选择、注重通识教育、注重学生创新能力与合作精神的培养等等。因此,《计算机程序设计》教学的关键不能仅仅停留在教师教和学生学的层面上,必须进一步更新观念,从传统的教学模式中解脱出来,树立与社会发展和未来高技术战争需要相适应的新思想,确立信息时代的人才观:“只有那些拥有创新意识,具备创新能力,能实现创新成果价值的人,才是信息化时代我军最需要的人”。
2.2 注重方法,因材施教
因材施教的教学理念在我国千年教育传统中早就被提出,对待不同的学生,要用不同的方法进行教学和沟通。孔子提出,研究人的方法是以承认人与人存在的差别为前提的,作为师长,他队每个学生的性格和特点都很了解,并要求学生学和思、学和行结合起来,这也正体现了现代教书育人的精神。
教师应该尊重学生的个性,发挥学生专长,通过因材施教来塑造学生动手能力的融会贯通。随着教学条件改善,传统教学模式已经由“光说不做”发展为“先说(课堂理论教学)后做(验证性实验)”,这要求我们在教学中必须因材施教,在“实验实践环节与理论教学相融合,抓实验实践教学促进学科理论知识学习”的教学方法基础上,注重不同层次学生的水平划分,并有针对性的采取措施,激发其自主学习的动力。
2.3 以人为本,创新教育
马克思主义哲学是以人为本的哲学,他认为现实世界,人是本,对于人来说的实践和感性活动也是本,没有实践就没有人;人是实践的主体,世界是人的实践,实践是包含人在内的全部世界的根基所在,而知识,是实践的产物。
在当今社会,素质教育、创新教育和精英教育等思想已成为主导,其中创新教育是以人为本的教育理念融合各种思想的产物。所谓创新教育,实际上就是以培养人的创新意识、创新精神、创新思维、创新能力及创新人格为实质的教育,创新教育是为了知识经济时代的到来和未来竞争的需要,响应胡总书记的号召,充分发挥教育是培养国家创新体系建设,全面推进素质教育的实施而提出来的。
3 建构主义实践心得
因材施教、创新教育是重要教学手段,如何具体实现是教学实施过程中的一重大课题。笔者通过承担多个不同对象的《计算机程序设计》课程教学班,融入建构主义模式思想并讨论比较分析改进,取得了一定的教学效果和推广经验。
3.1 建构主义教学思想
建构主义学习理论是伴随着对认知心理学的批判和发展,于20世纪90年代出现在心理学领域的一个重要分支,其核心就是以学习者为中心,强调学习者对知识的主动探索和对所学知识意义的主动建构。
建构主义理论为指导的教与学的过程中,学习者必须以自己主动、互动的方式学习新的知识,教学者也由此发生相应的变化,不再是知识的提供者,而是一个“协助者”,给学生机会去发现新、旧知识的差异(纵向)以及身边环境中与优异者的差距(横向),从而鼓励和激励学生自主学习。
3.2《计算机程序设计》课程建构分析
《计算机程序设计》是一门实践性很强的课程,既要掌握概念,又要动手编程、上机调试运行,任何活动,实践是获取知识的有效途径,对于这一点无论是首次承担《计算机程序设计》课程还是有多年教学经验的的教师来说是深有感触。尽管承担的教学班级不同,学生水平差异明显,但从教学效果来看,无论原来基础怎样,最终知识掌握牢固的一定是那些善于总结算法、认真调试程序、不断探索实践的学生。
在传统的教育理念下,通常教师会成为教学的“引导者”,而在建构主义教学的模式中教师应该成为教学的“协助者”,以上机实践为例,教师在布置作业到修改作业的过程中要完成的工作包括:选择适合学生能力要求的作业例题;要求学生在上机前弄清上机实验的指导思想和要求,编好程序、认真检查、反复思考;上机时输入程序并完成语法检查,再运行程序,检查运行结果;同时记录下在程序调试过程中所遇到的问题及解决办法,实验结束后检查实验报告。此过程的重点是培养调试程序的过程及经验总结,逐步积累调试程序的经验。从讲解算法到指导学生调试,到帮助学生独立完成程序设计,教师都应该扮演从旁协助的角色,这样才能充分调动学生实践的积极性,最后再提出让学生进一步优化自己的算法和程序,帮助他们进一步提高实践能力。
3.3 建构实践环节的实现
建构主义的学习不是让学习者被动的接受外在的信息,而是主动地根据先前认知结构注意和有选择性的感知外在信息,构建当前事物的意义。因此《计算机程序设计》课程的教学中,教师在传授科学知识前,要认真的考虑学生已有的知识经验,使学习的科学知识落在学生可能的建构区范围内,并与学生的经验紧密结合,只有这样,才能引起学习者有意义的学习。
在建构实践教学过程中,笔者有以下几点体会:
(1)对于课程理论课时多于上机课时,学生实践时间不够的情况,教师应提醒并要求学生在上机前仔细思考,形成思路,以流程图或类C语言的形式将算法写在实验报告上,上机直接敲入调试,而不是等到上机课再一边想一边敲入代码,这样提高效率的同时还可以提高学生思考问题的能力;
(2)针对学生在编译调试过程中出现的错误和警告,应该是传授有效的调试方法如分步调试法、等价类划分法、边界值调试发、安插测试语句等,而不是直接帮助学生修改程序,帮助学生在实践中认识错误改正错误;
(3)实验结束后,要求学生上交完整规范的实验报告,包括算法思路、源代码、调试数据和结果,特别是调试中出现的错误、发现的原因和修改的过程,以及最终的体会,这样即使学生最终因时间关系没有调试成功某个程序,也可以在实践中学到一定的知识;
(4)对于基础教好,动手能力较强的学生,可以再其完成课本制定实验后,发放一些有难度、算法相对复杂的综合性实验题目供其选择性学习,扩展思维能力。
4 结束语
《计算机程序设计》课程作为一门非常重要衔接课程,不同的教学目标对应不同的教学手段,老师的教学方法直接影响最终的教学效果,在明确目标的同时,寻找适合我校学生的学习方法因材施教是教师必须考虑的问题。通过亲历教学和实践证明,建构教学法可以由学生自己搭建自己的知识体系,充分调动了学生的主观能动性和实践动手能力,更重要的是让学生学到的不仅是知识,更是学习知识的方法。在今后的教学中,我们会不断推广并吸取更多的经验,为培养更多更优秀的学生而努力。
参考文献
[1]殷士勇.谈C语言的学习[J].电脑知识与技术, 2008, 3 (7) .
[2]陈则芝.C程序设计教学方法探讨[J].电脑知识与技术, 2008 (21) .
[3]C语言课程的教学实践[C].理工大学教学研究文集, 2008.9.
[4]杨立力.建构主义教学设计中学习策略的应用[J].黑龙江科技信息, 2009 (16) .
篇9:计算机程序设计论文
关键词:程序设计;实验教学;教学改革
中图分类号:G424.31文献标识码:A 文章编号:1009-3044(2007)12-21738-01
College Computer Programming Courses in Experimental Teaching
TANG Wei-jun
(Colleges of Mathematics and Computer Science,Chongqing Three Gorges University,Wanzhou 04000,China)
Abstract:This paper analyzes the current college for computer programming courses under the experimental teaching, described the teaching reform ideas, and to some experimental teaching program design as an example, this procedure to the experimental design courses teaching mode were discussed.
Key words:program design; Experimental teaching; Teaching Reform
1 引言
程序设计课程是高校计算机专业及其相关专业的核心课程,通过程序设计课程的教学,不仅要让学生掌握一门或者多门程序设计语言,还要让学生奠定分析问题,解决问题的基本能力,并且加深对计算机系统结构的理解。而实验教学,又是让培养学生以上能力的重要环节。随着计算机学科的发展和信息社会对人才素质的要求,该课程的实验教学暴露出了诸多不足,本文结合笔者当前的教学实际,对程序设计课程的实验教学环节做一些探讨。
2 程序设计课程的目标和任务
根据高校的教学大纲,程序设计课程实验教学的教学目标和任务一般是:第一,掌握程序设计基本方法和技术;第二,掌握某种程序设计语言的基本语法,和相应工具的使用;第三,掌握对问题领域进行抽象并加以解决的基本思路和方法。显然,实验教学是达到这几点要求的必备环节。因此,在实验教学过程中培养学生的动手能力和创新能力,就是实验教学任务中最迫切的目标。
3 目前程序设计实验教学的不足
3.1 片面追求“广“而忽略了”精“
目前许多高校的程序设计实验课程的安排中,学生通过C语言来学习基本的程序设计方法,而在随后的教学计划中,涉及程序设计的课程却多达3门~4门,如VB,DELPHI, JAVA以及汇编语言程序设计等。在一味地追求“广”的前提下,却没有让学生真正学“精”。这就走入了一种片面的误区,而忽略了计算机专业教育的目标。结果是当学生学完了多门语言的程序设计后,没有一门语言能够熟练运用,更别说用来解决实际问题了。试想一下,以一到两学期的频率换一次语言课程,要到达教学目标,必然要求实验教学课时的增加,而对许多高校的教学任务来说,一味增加实验教学的实践实践是不现实的,这就要求当前应以”精“为主,以”广“为辅。
3.2 实验教材较为单一,实验内容较为陈旧,无法反映该问题领域内多元化解决方案和最新研究成果
实验教学中实验教材的选择是很重要的一环。但遗憾的是目前许多课程的实验教材,都不同程度地存在知识老化,和内容单一的问题。以某种流行的C语言实验教材为例,里面的范例还遵循的是C语言89年标准,很多地方已经不符合现在的C语言编程惯例。又例如一些C++语言实验教材,里面的范例和习题除了添加一点类的概念,与C语言的版本基本没有区别,既看不到C++最重要的“资源获取即初始化“的能力运用,也看不到异常,模板这些在现代C++工程中大量运用的语言特性。
3.3 选择语言工具存在盲目性,不提高学生的基本动手能力
与实验教材内容过于陈旧相比的另一个极端是,许多高校的实验教学在语言工具的选择上盲目追求最新版本的流行软件,在具体教学过程中,往往片面强调社会的需求,将学生变成流水线的工人,只会亦步亦趋地按照实验教材点图标,选择命令,输入代码,而忽略了教授学生基础通用的方法。经过这样的实验教学出来的学生往往不知变通,完全被语言工具奴役,经常在实践中换一个版本的软件就手足无措,甚至还出现过计算机二级考试中不知道怎么复制,粘贴文件的奇怪现象。又比如一些高校使用的J2EE平台的实验教材,一味单调地教授学生怎么使用Eclipse自动生成项目文件,自动部署到服务器上,每次实验课程,人人都照着书上都完成得很漂亮。可这样并非真正掌握了知识,充其量只是熟悉了一种套路而已,一旦让一些学生从零开始建立项目或者修改服务器某些配置,那就都不知道该干什么了。
3.4 教学手段过于单一,实验目标零散而枯燥
目前实验教学方法上多数是传统式的“灌输法”,为了在有限课时,有限资源下让学生掌握最多的东西,往往是把许多实验习题和解答集中在实验指导书里面,教室照着指导书把实验演示一遍以后,就让学生自己动手做。尽管这些指导书在帮助学生理解概念、增强程序阅读能力、开阔视野等方面起到了积极的辅助作用,但它增强了学生的依赖性,从而导致学生分析问题、解决问题的独立能力得不到充分提高。另外,许多实验课程的实验目标零散而枯燥,数学问题多,而实际问题少,虽然数学问题能培养学生的抽象思维能力,但另一方面来说,学生往往得不到解决问题的乐趣,也不知道掌握了这个实验方法究竟有何实际作用。许多学生实验过程往往就是照着实验手册把代码打完,然后运行,哪怕有一点点标点错误,自己也无法独立解决。
3.5 没有一个特定于学生的远期规划目标
这里所说的规划目标不是指课程教学的目标,而是指对于每个学生来说,他应该主要精于什么语言开发,以此来奠定整个计算机课程学习的基础。许多学生由于没有一个主要的学习方向,往往学到大四还不知道这个计算机学科有哪些内容,哪些对他来说是基本的,哪些对他来说是次要的。这样的学生,进行毕业设计以及随后就业的难度可想而知。而一些自己确立好学习方向的学生,平时成绩也许并不一定很好,但临毕业的表现都很出众。
4 对程序设计课程实验教学改进的探讨
4.1 教学中存在的问题,必须对该课程在教学目标、教学内容、教学方法等方面进行改进。但在如何改进上,却有相当大的争议。许多教学改革失败的例子告诉我们,有好的出发点并不一定能取得好的效果,对实验教学的改革,必须谨慎而小心。笔者认为,如果在大的教学目标不能改变的情形下,可以由教师灵活掌握改进的幅度和具体内容。
4.2 程序设计课程实验教学的改进
4.2.1 以实验教学长远目标为主
在课程安排上面要有长远目标,培养学生什么能力,达到什么要求,是理论强还是实践强?是底层编程还是应用程序设计?是搞网络管理还是写Web页面?如果是非计算机专业,那么应该能用什么语言工具解决本专业的什么问题?这些都应该體现在课程编排里面。出于激发学生兴趣的需要,应该多讲授一些学科现状,让学生主动地去学习自己感兴趣的东西。一个比较好的方式是加入课程设计。笔者所在的学院已经试着进行这样的教学改革,每学期学院会安排一些已结束的语言课程的课程设计,让学生分成小组选做,以加深和巩固学生对已完成的程序设计课程的掌握。
4.2.2 实验教学改革应坚持理论与实践相结合的原则
在程序设计课程中,首先要强调基本算法在程序设计中的核心地位;为了学生就业需要而增加新的技术应用课程是可行的,但必须建立在让学生具有踏实的分析问题,解决问题能力之上。在实验教学中,要多让学生自己动手解决现实工程中的实际问题。实验课除了一般练习性的实验外,教师还应在一定条件下安排源自实际問题的大型实验,使学生体会到与所谓“玩具代码”完全不同的应用程序。
4.2.3 多讲基础方法,少讲工具使用;多讲算法思路,少讲语法语义
实验教学过程中有两种极端,一种只讲语言工具使用,一切由工具来自动生成;另一种只讲语法语义,不联系实际例子。毫无疑问,这两种做法培养出来的学生离教学目标相去甚远。首先,应该把程序设计与程序语言结合起来,以程序语言为载体来讲解程序设计的算法思路;其次,对语言工具,应该先把它们后面的原理,自动做的工作讲解透彻,然后再讲解怎么使用工具。例如,笔者在讲授J2EE课程时不从集成开发环境开始讲,而是讲解手动部署的要点,这样如果在集成开发环境中出了问题学生也能自己解决。
4.2.4 坚持学难易用的原则
牢牢把握“学从难处学,用从易处用“,使学生知其然更知其所以然。例如,笔者在讲授C语言时,一开始并不让学生使用TC,VC++之类的软件,而是让他们通过命令行进行编译链接。虽然他们也许并不能够熟练掌握,但至少知道了各种集成开发环境在背后做的工作,以后编译C程序时,就没有被限定在一种工具上面。
4.2.5 在实验教学中言传身教的原则
在实验教学中要多讲授例题,但不要给出完整的解决方法后再对学生讲解代码,最好边讲解边写代码,并说出自己对于该问题的想法。许多教师往往害怕在写的时候出错,殊不知出错后纠正错误,才能让学生真正了解解决问题的思路。笔者在讲解数值计算实验或者演示UML建模时,往往就采用这种方式。
4.2.6 针对不同的程序设计课程采取不同的教学手段
目前高校的程序设计课程大致有三类:基础类(如C,C++,Java);快速开发类;(如VB,Delphi);Web类(如ASP.net,J2EE)。许多高校的同一类程序设计课程的教学内容往往惊人地一致,甚至连习题也是换了个语言来表达。诚然,算法是独立于语言的存在,但这样的重复内容编排,经常让学生以为所有的程序语言都是换汤不换药。失去了新鲜感,那又有多少学生能激发出对这些课程的兴趣呢?事实上,每一种程序语言的设计都有独到之处,每一种程序语言都有自己擅长的领域。教师如果能根据程序设计语言的优势与劣势设计教学内容,扬长避短,势必能让学生感受到计算机科学的独有魅力。笔者在讲授C++的时候,一开始就从如何使用标准容器开始讲起,让学生摆脱了在C语言中比较底层的思维方式,能直接使用标准库来写一些实用程序。
5 结束语
程序设计课程的实验教学是计算机专业及其相关专业教学的核心内容之一,是联系计算机理论科学与实践学科的重要通道。为了给将来的计算机课程学习打下坚实基础,必须在实验教学环节中加大关注力度,确实利用实验教学培养学生抽象问题,解决问题的能力。
参考文献:
[1]邱建林,王波.计算机程序设计语言教学的探索[J].牡丹江大学学报,2001(4):14-15.
[2]牟连佳,等.高校非计算机专业计算机基础教学改革的研究与实践[J].高教论坛,2005.
由小编星星抓不住整理的文章计算机程序设计论文(精选9篇)分享结束了,希望给你学习生活工作带来帮助。