欢迎来到优发表网

购物车(0)

期刊大全 杂志订阅 SCI期刊 期刊投稿 出版社 公文范文 精品范文

计算机程序设计论文范文

时间:2023-03-22 17:44:54

序论:在您撰写计算机程序设计论文时,参考他人的优秀作品可以开阔视野,小编为您整理的7篇范文,希望这些建议能够激发您的创作热情,引导您走向新的创作高度。

计算机程序设计论文

第1篇

案例需要选取复杂程度适中,学生比较感兴趣的实例,使课堂变得生动活泼。每位同学设计自己的实施方案,鼓励大家去思考、去创造,经过老师的讲解,可以完成整个案例的实现。学生之间可以通过讨论,经验交流,互相取长补短,完善自己的案例制作。当学生完成作品时,教师应当对此次案例的实施进行总结,并且在此基础上,将问题延伸,对其进行完善或改进,根据课时情况,鼓励学生设计并实现。

2与自身专业相结合

为了提高VisualBasic程序设计的实用性,增强学生学以致用的能力,需要将该门课程与学生所学专业有机的结合在一起,这样能够使学生的学习兴趣更加浓厚,提高学习热情。以交通运输专业为例,课程开展至图形图像的使用时,可以选取红绿灯变换例题作为学生的操作案例,如图2所示。在这个案例中,与交通专业的专业知识也许还有一定的差距,但这样一个简单的实例足以吸引学生的注意力,控件要求也比较简单,代码结构并不复杂,但是需要提醒学生注意的是需要对于Image3控件需要添加具有3个元素的控件数组,来存储红、黄、绿三种颜色。类似的案例教师可以通过网络搜索或图书资料等多种方法搜集,难度不能太大,如果太复杂,反而会影响学生学习的积极性,以上就是对于非专业学生,将案例教学法应用于理论教学中的一些建议。

3程序实践教学改革

第2篇

1计算思维的概述

何谓计算思维,即借助于计算机科学基础概念来分析问题、解决问题、系统设计以及理解人类的一种行为。如下图灵奖得主ButlerLampson的报告,这种思维为人自身一种根本且概念化思维方式,是一种思想而非人造物,为数学与工程思维相互融合和互补所形成的一种思想。计算思维自身为抽象与自动化,这种抽象是借助于嵌入、简化、递归以及转换等方式,把某一个较为复杂的问题转变成多个简单的子问题,并实施求解的一个过程。而自动化则是指通过计算机自身所具运算能力的充分利用来分析、解决各种问题,以此来弥补人在计算方面所存在的各种缺陷和不足,这种自动化也在很大程度上使得计算机应用范围更为广泛。基于上述这些内容可知,计算思维其实就是一种人机共存、形式规整以及解答问题的思维。

2基于计算思维培养的C程序设计验教学

2.1教学目标的明确

众所周知,实施教育的主要目标就在于学生综合能力以及素质的培养。目前我国教育部门在计算机教学目标上予以了明确的规定,即计算机基础教学能力培养的目标应包含四个方面的内容,即计算机认知能力、计算机应用能力、网络学习能力以及借助于计算机的一种共处能力,在这些目标中,前两个目标所反映出来的内容及就为计算环境以及问题求解。在计算机这门学科中,C程序的设计就是计算思维中的语言机问题求解。对此,在C程序设计教学过程中,计算思维这一能力不仅仅为其核心能力,同时也是教学中的核心内容。鉴于上述内容,在本次C程序设计实验教学上,教学目标主要为计算机思维的培养,教学主要内容为程序设计方式的讲解,通过上机实践的强化,使学生能够借助于这种实践感受,以及计算问题求解基本方式与思维模式的领悟,为学生创新能力的培养以及综合素质的提高打好基础。下图为C程序的设计的教学模块。

2.2教学内容的设计

在计算机这门学科中,C程序设计这一课程属于理论和实践并重的一门课程,要求教师在教学过程中,必须要把理论教学和实践教学有机结合,从而使理论教学和实践教学能够互相推动。在教学过程中,由于学生对于所学内容缺乏一定的感性认识,对此,教师在实施教学,应综合考虑学生自身的学习情况,结合所要学习的内容,对C程序实验教学内容进行合理且科学地设计,把学生能力的培养、知识的传授以及技能的训练等融为一体,使学生能够在做的过程学到知识,在学习过程中获得相应的操作技能,继而使其能够将自身所学到的内容与知识有效地应用至实践中,并解决在实践中所遇到的各种问题。为达到理论够用实践突出这一目的,在本次C程序设计教学中,把所有的知识点归纳并总结为了九个核心点,根据所学内容的难易程度,把教学过程细化成为三个模块,即基础能力、中级应用以及高级应用,基于由浅入深这一原则,循序渐进地实施教学,把C程序实验教学分为了三个方面的实验,即验证实验、综合实验以及设计型实验,通过这种方式,使学生能够在记忆中来理解所学知识,并在理解中学会怎样应用这些知识,最后使学生在实践应用过程中学会创新。第一,通过验证型实验的实施,使学生能够熟悉该语言的设计环境。学生实施编程以及应用编程的一个基础就是基础能力模块知识,在该模块中,教师必须要求学生学会记忆以及理解,把该模块实验教学内容设置成为验证型的实验,让学生对于C程序设计环境以及步骤有一个基本的认识,使在学生熟悉这一环境后,了解该程序的书写格式、特点以及结构,了解并掌握该程序数据的基本类型、表达式以及运算符等,继而进一步使学生掌握C程序数据的输入以及输出,明白C程序所具备的三种结构,使学生通过验证型实验,可独立解决编程方面存在的各种问题。在实施验证型实验教学时,应要求学生应按照教师解决问题的方式来完成相应的实验内容,这种模拟的方式就是计算思维的模仿,在这一环节中,所强调的是科学内容活动的演示以及证明,注重是学生实验操作、观察、数据处理以及计算等个性化智力技能的培养,在教学过程中,学生借助于验证标准的这一已知程序来理解并学习基础模块中的内容,在理解和学习的过程中,学生可直观且清楚地看到在实际实验程序中各知识点的具体应用,能够更为快速地熟悉这种环境,继而更为地理解以及记忆C程序设计的基本知识。此外,在学生实施验证型实验之前,教师应实适时引导学生对以往所学C程序知识进行回顾,并在基础上对实验步骤实施讨论,提出相关的注意事项,针对学生在实验中容易出错的这些操作方,教师应该事先进行示范,以免在实验中学生出现一些不必要的错误。第二,通过设计型实验的实施,强化学生计算思维能力的培养。所谓设计型实验,就是指不同计算思维方式的综合应用来分析并解决各种问题。设计型实验是基于学生自身已掌握相应的实验方法与技能,通过所学知识的应用,自行提出相应的问题,并在此基础上分析和解决问题,经过算法的分析、程序运行结果的分析处理以及实验结果等,获得正确且规范的研究分析理论。在这一环节中,所注重的是学生团结协作、勇于探索以及的严谨求实精神的培养,在实施设计型实验教学时,教师应事先对程序进行填空、设计以及改错,并提出相关的思考问题,积极引导学生来讨论与分析,鼓励学生提出不同解决方案。第三,通过综合型实验的实施,强化学生创新以及应用意识的培养。在C程序设计实验教学中,为培养学生创新精神以及探索精神,使其计算思维得到扩展与升华,可结合学生自身的学习进度,基于所学内容的难易程度,定期设计一个相应的综合型实验程序题目,鼓励学生在课外课余时间来编程,同时在规定的时间内把所自己的所编程的这一源程序上传至电脑,由教师来进行批阅,对于参与这一活动的学生,教师应该实施相应的鼓励,这样不仅能够进一步激发学生学习的兴趣,同时还可提供学生的实践操作能力,使学生今后能够更好地适应社会市场,在潜移默化中使学生应用创新能力以及计算思维得到培养。总之选择了一些趣味性强、有吸引力的例子和话题以提高学生的学习兴趣,选择一些实用性强的例子和话题,以努力提高高校学生的工程实践能力。精选的“不断提升”的引导性例题、习题和实验题,以及贯穿全书的综合实例,起到了开拓思路、引导读者探究问题求解方法、激发读者程序设计兴趣的目的。

2.3基于计算思维能力培养的C程序设计实验教学

第一,上机操作实验流程的规范。在教学之前,教师应该要求学生对所学内容进行预习,通过题目的分析,明确实验教学中所需的数据结构,对参与运算的这些变量进行赋值,接着应用三种结构来解决问题,将结果输出,进行N-S流程图的绘制,基于该图编写相应的源程序,最后准备好测试程序所需的数据以及预期结果,进行上级调试工作,并归纳总结。通过实验流程的规范,不仅便于学生良好学习习惯以及思维习惯的培养,同时还可提升学生分析与解决各种问题的能力。

第二,加强上机操作过程中的指导与引导。在学生实际上机操作时,教师可借助于提问的方式来引导学生将自身所存在的问题找出来。在程序调试、上机输入以及编辑时,除了系统所引发的问题外,通常情况下,其他问题均由学生自己来独立解决。此外,在教学过程中,教师还还应鼓励学生采用不同的算法,正确引导学生反思这些算法,继而培养学生的计算思维能力。现以“打印水仙花树”以案例说明。

第三,加强实验过程的反思,采取合理且科学的考核评价制度,使学生的计算思维能够得到扩展。在上机完成以后,教师应要求学生对于本次实验实施反思、总结以及归纳,可采取小组的方式来交流和沟通,集思广益,使学生在交流和反思的过程中,拓展其计算思维。此外,还应采取相应的考核评价措施,可采取机考与笔试,结合学生平时学习表现情况,合理且科学地评价,对于学生所获得的成功,不管大小,均应予以相应的肯定,以此激发学生学习的积极性。下面以“打印水仙花数”为例,简要说明基于计算思维的案例设计的基本方法。“打印水仙花数”案例设计步骤(图3)打印水仙花数”案例的具体设计与实施(图4)

3结束语

第3篇

西安理工大学工科非计算机专业和计算机专业虽然都开设C语言程序设计课程,但是前者具有鲜明的专业特点,对该课程的要求明显不同,仅仅按照“面向对象教学”的原则,适当调整教学组织活动和教学内容对于后者是远远不够的。针对目前工科非计算机专业C语言程序设计课程教学实践中所暴露的主要问题,笔者积极开展了非计算机专业C语言程序设计课程教学设计的教改工作。

1.1教学设计概述

所谓教学设计,就是为了达到一定的教学目的,对教什么(课程、教学内容等)和怎么教(组织、方法、媒体的使用等)进行设计。教学设计不等同于传统的备课写教案。教学设计有利于教学工作的科学化,使教学活动纳入科学的轨道。教学设计的意义就在于追求教学效果的最优化,不仅关心教师如何教,更关心学生如何学,注重将人类对教与学的研究结果和理论综合应用于教学实践。教学设计主要包括确定教学目标、组织教学内容、分析教学对象、选择教学形式和方法及教学媒体、设计教学过程、教学质量评价设计等基本环节,其中,设计教学过程是课程教学设计的核心。

1.2该课程教学设计的内容

西安理工大学C语言程序设计课程组于2003年出版了《C语言程序设计教程》及配套的《C语言程序设计教程上机实验与学习指导》特色教材。自2011年开始,非计算机专业选用的教材与计算机专业不同。目前非计算机专业选用《C语言程序设计》(第1版,张毅坤教授,高等教育出版社,2011)作为该课程的教材。非计算机专业C语言程序设计的教学设计是一项复杂的系统工程,主要包括课程教学设计、章节教学设计、课堂教学设计和实验教学设计,以西安理工大学C语言程序设计课程教学大纲为指导,以《C语言程序设计》(第1版)及其配套教材为基础,确定课程教学设计的内容:①将该课程的教学目标确定为“掌握C语言的基本语法和语义,理解结构化程序设计的思想和方法,提高学生的编程能力和调试程序的能力”。②组织教学内容的关键是进行教材的组织呈现,理论教学内容包括《C语言程序设计》(第1版)的第一章至第八章,实验教学体现于该教材的第九章及配套教材。③学生作为教学对象始终是教学过程中的重要角色,工科非计算机专业的种类多,分析教学对象就是掌握学生特点与了解专业背景并重。④重点突出课堂教学设计,传统教学与案例教学有机结合,“讲解+多媒体演示+课堂板书”缺一不可。⑤设计教学过程与“组织教学内容”联系最为紧密,主要包括课堂教学设计和实验教学设计,教学过程设计遵循的总原则是:激发学生兴趣,注重能力培养,合理安排教学顺序,讲清重点与化解难点紧密结合,课堂提高与课后巩固拓展有机统一,并预测教学实践中可能出现的意外情况。⑥将学生评价、同行评价、教学督导组专家评价、主管教学的领导评价和教师自我评价这几种评价的结果综合起来,比较客观的评价教学效果与教学质量。

2教学设计的实践及效果

我们连续多年承担非计算机专业C语言程序设计课程,先后承担过西安理工大学电气工程及其自动化(电力)、水文与水资源工程、印刷工程、包装工程和材料科学与工程等专业的C语言程序设计的理论教学和实验教学任务。始终将上述教学设计的内容贯穿于课堂教学和实验教学之中。C语言程序设计本身是一门实践性很强的课程,加之各个理工科专业的特色鲜明,所以结合学生所学专业特点与需求,同一门课程,针对不同专业的学生,适当调整教学设计内容,并在教学实践中检验教学效果。2012年以来,学生对笔者的教学评分一直在95分以上,也给予了肯定性的评价,例如“采用启发式教学,阐述问题深入浅出,重点突出,能理论联系实际或联系学科发展的新成果”;“对于您的授课方式我们很满意,感谢您对这门课程的热忱,我们会努力学下去”;等等。

3结语

第4篇

关键词遗传算法;TSP;交叉算子

1引言

遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法。总的说来,遗传算法是按不依赖于问题本身的方式去求解问题。它的目标是搜索这个多维、高度非线性空间以找到具有最优适应值(即最小费用的)的点[1]。

基本遗传算法是一个迭代过程,它模仿生物在自然环境中的遗传和进化机理,反复将选择算子、交叉算子和变异算子作用于种群,最终可得到问题的最优解和近似最优解。

2遗传算法程序设计改进比较

2.1基本遗传算法对TSP问题解的影响

本文研究的遗传算法及改进算法的实现是以C++语言为基础,在Windows2000的版本上运行,其实现程序是在MicrosoftVisualStadio6.0上编写及运行调试的。

1)遗传算法的执行代码

m_Tsp.Initpop();//种群的初始化

for(inti=0;i<m_Tsp.ReturnPop();i++)

m_Tsp.calculatefitness(i);//计算各个个体的适应值

m_Tsp.statistics();//统计最优个体

while(entropy>decen||variance>decvar)//m_Tsp.m_gen<100)

{

//将新种群更迭为旧种群,并进行遗传操作

m_Tsp.alternate();//将新种群付给旧种群

m_Tsp.generation();//对旧种群进行遗传操作,产生新种群

m_Tsp.m_gen++;

m_Tsp.statistics();//对新产生的种群进行统计

}

2)简单的遗传算法与分支定界法对TSP问题求解结果的对比

遗传算法在解决NPC问题的领域内具有寻找最优解的能力。但随着城市个数的增加,已没有精确解,无法确定遗传算法求解的精度有多高。一般情况下,当迭代代数增大时,解的精度可能高,但是时间开销也会增大。因此可以通过改进遗传算法来提高搜索能力,提高解的精度。

2.2初始化时的启发信息对TSP问题解的影响

1)初始化启发信息

在上述实验算法的基础上,对每一个初始化的个体的每五个相邻城市用分支界定法寻找最优子路径,然后执行遗传算法。

2)遗传算法与含有启发信息的遗传算法求解结果的对比

当城市数增至20个时,用分支定界法已经不可能在可以接受的时间内得到精确的解了,只能通过近似算法获得其可接受的解。试验设计中算法的截止条件:固定迭代1000代。表2中的平均最优解为经过多次试验(10次以上)得到的最优解的平均值,最优解的出现时间为最优解出现的平均时间,交叉操作次数为最优解出现时交叉次数的平均值。

表220个城市的TSP问题求解结果数据

算法交叉操作

次数最优解

出现时间平均

最优解

简单遗传算法80244.479.4s1641.8

含初始化启发信息的GA79000.237.4s1398.9

从表2中可以看出,当初始种群时引入启发信息将提高遗传算法的寻优能力。同时缩短了遗传算法的寻优时间和问题的求解精度。

2.3交叉算子对TSP问题解的影响

1)循环贪心交叉算子的核心代码

for(i=1;i<m_Chrom;i++)

{

flag=0;

city=m_newpop[first].chrom[i-1];//确定当前城市

j=0;

while(flag==0&&j<4)

{

sign=adjcity[city][j];//adjcity数组的数据为当前城市按顺序排列的邻接城市

flag=judge(first,i,sign);//判断此邻接城市是否已经存在待形成的个体中

j++;

}

if(flag==0)//如果所有邻接城市皆在待扩展的个体中

{

while(flag==0)

{

sign=(int)rand()/(RAND_MAX/(m_Chrom-1));//随机选择一城市

flag=judge(first,i,sign);

}

}

if(flag==1)

m_newpop[first].chrom[i]=sign;

}

2)问题描述与结果比较

下面笔者用经典的测试遗传算法效率的OliverTSP问题来测试循环贪心交叉算子的解的精度和解效率。OliverTSP问题的30个城市位置坐标如表3所示[2]。

从表4、图1中可以看到,贪心交叉算子大大提高了遗传算法的寻优能力,同时也降低了交叉操作次数。在多次试验中,贪心交叉算子找到的最优解与目前记载的最佳数据的误差率为2.7%。而部分匹配交叉算子找到的最优解与目前记载的最佳数据的误差率高达7%。从而可以得到交叉算子对于遗传算法

2.4并行遗传算法消息传递实现的核心代码

1)主程序代码

//接收各个从程序的最优个体

for(i=0;i<slave;i++)

{

MPI_Recv(Rchrom[i],chrom,MPI_UNSIGNED,MPI_ANY_SOURCE,gen,MPI_COMM_WORLD,&status);

}

//计算接收各个从程序的最优个体的回路距离

for(i=0;i<slave;i++)

{

fitness[i]=0.0;

for(intj=0;j<chrom-1;j++)

fitness[i]=fitness[i]+distance[Rchrom[i][j]][Rchrom[i][j+1]];

fitness[i]=fitness[i]+distance[Rchrom[i][0]][Rchrom[i][chrom-1]];

}

//找到最优的个体并把它记录到文件里

for(i=0;i<slave;i++)

{

if(1/fitness[i]>min)

{

sign=i;

min=1/fitness[i];

}

}

fwrite(&gen,sizeof(int),1,out);

for(i=0;i<chrom;i++)

fwrite(&Rchrom[sign][i],sizeof(unsigned),1,out);

fwrite(&fitness[sign],sizeof(double),1,out);

//每九代向从程序发送一个最优个体

if(gen%9==0)

MPI_Bcast(Rchrom[sign],chrom,MPI_UNSIGNED,0,MPI_COMM_WORLD);

2)从程序代码

//将上一代的最优个体传回主程序

MPI_Send(Rchrom1,chrom,MPI_UNSIGNED,0,gen,MPI_COMM_WORLD);

//每九代接收一个最优个体并将其加入种群中替换掉最差个体

if(gen%9==0)

{

PI_Bcast(Rchrom2,chrom,MPI_UNSIGNED,0,MPI_COMM_WORLD);

Tsp.IndiAlternate(Rchrom2);

}

//进行下一代的计算

Tsp.Aternate();

Tsp.Generation();

Tsp.Statistics();

3)并行遗传算法的性能

笔者在MPI并行环境下,用C++语言实现了一个解决TSP问题的粗粒度模型的并行遗传算法。该程序采用的是主从式的MPI程序设计,通过从硬盘的文件中读取数据来设置染色体长度、种群的规模、交叉概率和变异概率等参数。试验环境为曙光TC1700机,测试的对象是OliverTSP问题的30个城市的TSP问题。

正如在测试串行遗传算法所提到的数据结果,并行遗传算法也没有达到目前所记录的最好解,但是它提高了算法的收敛性,并行遗传算法的收敛趋势如图2所示[4]。

图2遗传算法的收敛过程

3结束语

本文通过对基本遗传算法的不断改进,证明了添加启发信息、改进遗传算子和利用遗传算法固有的并行性都可以提高遗传算法的收敛性,其中对遗传算法交叉算子的改进可以大大提高遗传算法的寻优能力。

参考文献

[1]刘勇、康立山,陈毓屏著.非数值并行算法-遗传算法.北京:科学出版社1995.1

[2]IMOliverDJSmithandJRCHolland,Astudyofpermutationcrossoveroperatorsonthetravelingsalesman[C]//ProblemofthesecondInternationalConferenceonGeneticAlgorithmsandTheirApplication,Erlbaum1897:224-230

第5篇

力学、热学课程是师范院校物理教育专业的专业基础课程,在大学一年级开设,而紧跟力学、热学课程而开设的计算机程序设计课程是培养学生计算机程序设计能力的重要课程。物理教育专业学生在计算机程序设计课程学习中,随着课程的深入,递归循环、指针等难度较大内容出现,一部分学生感觉较难理解,更难自己编写计算机程序实现某些略为复杂的算法,容易产生计算机程序设计课程学习无从与物理专业课相联系、枯燥无味的感觉,降低了计算机程序设计课程的积极性、主动性。然而大学物理与与计算机的关系密切,物理教育专业本科毕业论文、物理学科硕士论文,都涉及大量的计算机编程,因为物理学复杂的非线性问题已经无法找到理论精确解,只能利用计算机进行计算、求解、分析、预测,另外计算机仿真实验提供了验证物理学理论、探测真实物理实验方案的可行性、验证物理数据的一种实验成本低廉、快捷的方法[1-3],因此,物理教育专业学生计算机程序设计能力的强弱,直接影响到其本科毕业论文研究以及将来可能的硕士论文研究。现有的教学研究论文中,未见定量分析大学物理基础课程成绩对计算机程序设计课程成绩的影响[4-6]。因此,选取论文作者所授课的广西师范大学物理教育专业4届5个班本科生的力学与热学课程期考成绩、计算机程序设计课程的段考与期考成绩,利用相关系数法定量分析力学、热学课程成绩对计算机程序设计课程成绩的影响。

2实验对象与分析方法

实验对论文作者所授课的广西师范大学物理教育专业4届5个班本科生,其中1997级81人、1999级78人、2000级65人、2001级1班59人、2001级2班55人,选取大学一年级的力学、热学的期考成绩,力热课程开设之后的计算机程序设计课程的段考、期考成绩。利用相关系数法反映计算机程序设计课程成绩与力学、热学课程成绩之间线性关系的密切程度[7,8]。

3实验结果

分析所选取的计算机程序设计课程成绩比例分布,考虑优秀、不及格两端的学生人数相对较少,进行相关分析的误差较大,而良好、中等、及格分数段的学生人数较多,因此将分数S分为优良分数段(S≥80)、中等分数段(70≤S<80)、及格与不及格分数段(S<70)三段,三段中的学生人数相差不大,分别计算计算机程序设计课程成绩全部、优良分数段、中等分数段、及格与不及格分数段与力学、热学课程相对应成绩的相关系数,结果见表1、表2。可以看出,表中所有相关系数均为正值,除个别外主要分布在0.40~0.80之间,绝大部分相关系数均大于0.45,大于0.8的相关系数很少,没有大于0.9的相关系数,说明力学、热学课程成绩对计算机程序设计课程成绩有一定的影响,但影响并不是特别显著,有一定的正相关性,但相关性并不是特别高,计算机程序设计课程成绩还受其它因素的综合影响。

计算机程序设计课程成绩在优良分数段、及格与不及格分数段与力学、热学课程相对应成绩的相关系数几乎都低于全部分数段的相关系数,甚至出现相关系数为0.20~0.39,极低无显著性意义的现象,而中等分数段的相关系数几乎都略大于全部分数段的相关系数,说明中等分数段的计算机程序设计课程成绩受力学、热学课程相对应成绩的影响要比优良分数段、及格与不及格分数段显著一些,即有一些计算机程序设计课程成绩优良的学生未必对应力学、热学课程成绩优良,也即有一些计算机程序设计课程成绩较差的学生也未必对应力学、热学课程成绩较差。力学、热学两门课程成绩各自与计算机程序设计课程成绩的相关系数整体差异不大,影响的显著性相差不大。

第6篇

论文摘 要:计算机程序设计算法在高中信息科技教学过程中是重点,也是难点。程序设计算法的相关概念比较枯燥,理论过于抽象,对学生的逻辑思维能力要求较高,所以在教学过程中往往难以把握,也不易调动学生的兴趣。在传统的教学过程中,学生对这部分知识的掌握比较困难。本文结合课堂教学实践,从三个方面探究运用建构主义教学理论构建计算机程序设计算法教学过程,促进学生对知识的理解和掌握,与传统的教学方法比较,运用构建主义理论教学方法取得更好的教学效果。

计算机程序设计算法作为高中信息科技选学模块的内容,是课程改革的一种新的尝试,旨在培养和提高学生的逻辑思维能力,以及分析问题和使用计算机解决问题的能力。在传统的教学模式下,教师的实践活动在很大程度上受到行为主义的影响。教师的教学任务主要是为学生提供一系列刺激和强化,并引导学生作出适当的反应。教学的目标就是为了让学生模仿适当的行为,教师对学生模仿的结果进行判断和修正。在程序设计算法的教学过程中,这种教学模式难以取得理想的教学效果。[1][2][3]作者介绍了建构主义教学理论及其要义,并对利用建构主义教学理论对教学过程进行改革和优化进行了分析与评价。具体应用建构主义教学理论应用在高中程序设计算法的尝试,还没有查到,因此尝试用建构主义方法应用于计算机程序设计教学效果,具有重要的意义。

一、利用建构主义教学法创设学习情境,激发学生学习兴趣

在计算机程序设计算法教学过程中,教师利用建构主义为学生创设一个学习的情境,以激发学生对所学内容的兴趣,将学生的思维引入到学习情境中。创设情境,即在真实世界中建构知识意义、学会解决问题的经验,尽管在传统课堂教学中,我们无法将学生带到知识应用的现场(而计算机程序设计算法中一些抽象性、逻辑性、数理性的知识也难以找到这样的现场),也没有虚拟现实技术的产品去模拟真实世界,但在教学中,教师要学会运用有效的教学策略和各种可行的技术手段,设法让知识“从情景中走出,又最终走入情景”,即从现实情景中提炼问题,又能设计一些将新知应用于现实情景的实例,从而给予学生解决实践问题的机会。也只有跟现实生活紧密联系在一起的教学活动才激发学生的兴趣,引发学生的共鸣,教学中可以向学生提出生活中的实际问题,激发起学生的兴趣,引导学生针对趣味性问题和生活实际问题进行思考、讨论,从而将学生引入教学情境中来。

二、设置学习任务,让学生主动探索知识

计算机程序设计算法的相关概念比较枯燥,理论过于抽象,对学生的能力,尤其是创造性思维能力的要求较高,所以在教学过程中难以把握,也不容易引发学生的兴趣。在算法的教学过程中,利用建构主义教学理论对教学过程进行改革和优化将取得更好的教学效果。

比如,在介绍排序计算机程序设计算法时,如果纯粹地以数字为例进行介绍,给予学生的印象不会太深刻,而且会显得过于抽象,不通俗易懂。所以针对这一现象,可以充分利用学生对排队这一活动的熟悉程度来引出排序算法,加深学生对排序算法的直观印象,促进学生对排序算法的理解。具体可以这样操作,在提出排序算法之前,教师可在班级内随机抽取五名高矮不一的学生随机站立,然后请这五位学生演示以不同的方法从矮到高的排队过程,教师可在一旁指导学生先按照冒泡排序的方法进行排队演示,并记录他们演示过程中的每一次移动。

这样,在计算机程序设计算法教学中通过任务的设计,改变了知识的传输方式,培养了学生的科学探索精神和实践能力,把静态的教学变成学生主动参与的开放式教学。 转贴于

三、利用建构主义教学评价,强化教学目标

高中计算机程序设计算法包含了数学模型建构、逻辑推理等多方面的知识,学生理解和掌握的难度比较大,不同学生理解和掌握的程度也不尽相同,教师在教学过程中应当及时有效地评价学生的学习过程,从而获取有价值的反馈信息,并根据反馈及时调整教学进度和教学策略。同时,学生也可以反思自己的学习过程,调整认知策略,改变思考角度,加深对学习目标的理解和认识。

评价的过程是学生发现自我、提高自我的过程,也是学生与学生、学生与老师情感交流的过程。有效地教学评价,不仅能够真正确立学生在课堂教学中的主体地位,还能够促进学生在课堂上的积极参与,使得学生充分活动,形成良好教学氛围和师生互动关系,也只有在这样的课堂氛围中,学生才能更好地学习,得到更好的发展。有效地教学评价,也可以让老师更多地了解学生优势和不足,监控学生的学习过程,正确评估自己的教学效果。

四、小结

新课程改革要求以学生发展为本,让学生参与,提高学生的学习兴趣;优化教学环境,加强交流与合作;给每位学生以期望和激励,让学生有成功感;利用建构主义教学理论引导学生对知识的意义建构,从根本上改变了老师和学生在知识学习过程中的地位和角色。在计算机程序设计算法教学过程中,通过情境引入、课堂任务设计,学生能够主动参与程序设计算法数学模型的建构、自主探索、合作交流,乐于参与系统知识的学习过程,充分调动学生学习的主动性,同时更利于学生身心的发展。

参考文献:

[1]陈琦,张建伟.建构主义学习观要义评析[J].华东师范大学学报:教育科学版,1998(1):61-68

第7篇

关键词:计算机程序设计;数学建模;数据;效率;VBA

中图分类号:G712 文献标识码:A 文章编号:1007-9599 (2012) 19-0000-02

随着计算机技术的迅速发展,数学的应用不仅在工程技术、自然科学等领域发挥着越来越重要的作用,而且以空前的广度和深度向经济、金融、生物、医药等新的领域渗透。不论是用数学方法在科技和生产领域解决哪类实际问题,还是与其它学科相结合形成交叉学科,首要的和关键的一步是建立研究对象的数学模型,并加以计算求解。数学建模和计算机技术在知识经济时代的作用可谓是如虎添翼。[1]

计算机技术发展到今天,已经在各个领域产生了许多非常优秀的专业软件,在数学建模竞赛中一定要使用计算机及相应的软件,如Excel,Spss,Lingo,Mapple,Mathematica,Matlab甚至排版软件等。数学建模初期,数据质量通常较差,可以利用计算机进行规范化和目的化处理,这需要较强的计算机程序设计能力,如熟练使用EXCEL中的VBA(Visual Basic Application)。

1 计算机程序设计能力培养意义重大

早在1994年,原国家教委高教司司长周远清同志就提出了层次教育的做法,并且将计算机教育的三个层次依次定为“计算机文化基础”、“计算机技术基础”和“计算机应用基础”,现已将“计算机文化基础”更名为“大学计算机基础”,“计算机技术基础”更为“计算机程序设计基础”,并在2006年后出现“计算思维”的新思想。

我校作为药学类专业重点高等院校,在计算机程序设计方面主要培养学生使用Visual Basic进行程序设计的能力,该语言被微软公司的OFFICE软件等内置,称为VBA(VB应用),也称为宏。

计算机程序设计最基本的应用应该在于数据处理和分析,简化人工操作,提高效率,提升数据的质量和精度,为项目开展争取宝贵的时间。在建模和科研工作过程中,原始实验数据量大、格式不统一、质量不高,甚至无法直接导入计算机专业软件,也就无法进行进一步的处理和分析,所以计算机程序设计的工作是非常重要的。因此,对于认为计算机程序设计就是搞软件开发,药学相关专业的学生不需要太重视这方面知识学习的人来说,是片面甚至错误的。非计算机专业的计算机教育是让学生通过学习掌握计算机相关应用技术,并能利用这些技术为本专业服务的。

以2012年高教社杯全国大学生数学建模比赛中的本科组题目“太阳能小屋”为例,对于基础数据的处理,包括24种光伏电池组件、一年365天的辐射强度(分高于和低于70W、高于和低于200W四种情况)的计算、发电量、价格等,如果没有较好的计算机程序设计能力,在这项工作上将花费1-2天的时间(比赛时间共为3天),而在计算机程序设计VBA的帮助下,只需要在1小时内完成上述工作,只要方法正确,数据的准确度完全可以保障,大大改善了数学建模的工作进程,节省出的大量时间就可以用于问题的进一步分析和求解,得出好的结论。

2 微软公司VBA基本操作

通常情况下,数学建模竞赛的数据都会被存储在EXCEL电子表格中,如何对EXCEL中的数据进行有针对性的处理是常见工作,同样也是科研项目中经常遇到的问题。对于有VB语言基础的人来说,只需要学会如何在EXCEL中操作VBA就可以对这些复杂繁琐的问题快速处理完毕。对于参加数学建模竞赛的学生而言,掌握VBA的使用就应该像会打字一样有必要。

2.1 启动VBA

打开EXCEL数据文件,执行菜单命令“视图-工具栏-Visual Basic”,打开Visual Basic对话框,点击按钮 进入“设计模式”,点击按钮 打开工具栏,添加“按钮”控件到表格上,双击按钮进入代码窗口,编写Click事件过程及相关过程代码。

2.2 对于表格数据操作的基本语句

左侧资源管理器中可以查看当前表格的名称,如果想将Sheet1表格中的第一行第一列的数据复制到Sheet2表格的第一行第一列,可以使用语句如下:

Sheet2.Cells(1,1).Value=Sheet1.Cells(1,1).Value

选定区域单元格的语句如下:

Sheet1.Range("A1:A100").Select

应用函数Sum求和,将A列1~10行的数据求累加和放到第11行,语句如下(中括号中的数据表示相对偏移行或列数,R表示Row,C表示Column):

Sheet1.Cells(11,1).FormulaR1C1="=Sum(R[-10]C:R[-1]C)"

2.3 学会使用录制宏来学习和应用VBA

对于不熟悉的VBA操作,可以通过录制宏的形式来学习,执行菜单命令“工具-宏-录制新宏”,接下来所有在EXCEL中的操作将被自动录制成VBA代码,结束录制后,执行菜单“工具-宏-宏”,选择录制好的宏名,点击“编辑”按钮即可以查看VBA代码。

3 计算机程序设计能力培养的期望

对于教学科研型院校,培养学生的科研能力需全面,学习计算机程序设计应该就像要求学生必须具有打字和论文排版的基本能力一样得到普及和重视,这样才能在科研工作中,提升数据处理和分析的本领,科研工作因得到计算机程序设计的辅助进一步得到改善。

在实际教学过程中,我校对于“大学计算机基础”和“计算机程序设计基础”的课程安排比较合理,但是相对缺少“第三学期”的“计算机应用技术”相关计算机程序设计能力的实践学期,会造成学生学习了知识,但是往往不能很好地应用到数学建模和科研工作中。希望学校能够向其他医药院校一样,考虑增加第三学期计算机技术相关实践课程,这一做法一定对我校数学建模工作,甚至全校科研水平提升和改善有着重要意义。

参考文献: