计算机程序设计论文样例十一篇

序论:速发表网结合其深厚的文秘经验,特别为您筛选了11篇计算机程序设计论文范文。如果您需要更多原创资料,欢迎随时与我们的客服老师联系,希望您能从中汲取灵感和知识!

1引言

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

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

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

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

1)遗传算法的执行代码

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

for(inti=0;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问题求解结果的对比

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

1)初始化启发信息

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

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

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

算法交叉操作

次数最优解

最优解

简单遗传算法80244.479.4s1641.8

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

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

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

for(i=1;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

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

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

fitness[i]=0.0;

for(intj=0;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]];

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

if(1/fitness[i]>min)

sign=i;

min=1/fitness[i];

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

for(i=0;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);

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

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实验对象与分析方法

3实验结果

一、引言

近年来,随着科技的进步,各行业对计算机技术的应用越来越普及,为适应社会对高层次人才的需求,各高校也在非计算机专业加强了计算机知识的教学,在一些理工科专业中开设了计算机公共基础课程,并进一步提升了程序设计课程的重要性。另外,程序设计课程是高职高专院校计算机专业的专业基础课程之一,它不仅可以培养学生的编程能力,增强学生的逻辑思维能力,还是学生学习好后续专业课程的前提和保障。

为了将学生顺利地领进计算机程序设计语言的大门,为了培养和训练学生的逻辑思维能力和编程的实际动手能,为了取得较好的教学效果和提高教学质量。笔者通过近年来的教学经验,对程序设计课程教学中存在的实际问题做个分析、在教学思路与教学方法上提出一些建议。

二、教学中存在的问题

1、学习目标不明确,兴趣不浓,积极性不高

由于高职院校学生的入学成绩相对较低,学习基础和学习能力相对较差,对知识的渴望程度有限,在没有明确的学习目标指引下,很难学好一门课程。免费论文参考网。在教学中本人发现,有很多学生不清楚学习程序设计语言课程的重要性,认为程序语言设计课程与他未来的工作毫无关系;有些学生认为学习程序设计语言太枯燥,不如学习多媒体或网络的一些课程;有些学生是因为学习程序设计需要较强的逻辑思维能力和一定的数学、英语基础,因而在学习程序设计时显得力不从心,不能掌握应用计算机解题的基本思维方式,对计算机程序设计产生畏惧感,知难而退。

2、教学方式呆板,教学内容陈旧

教材内容陈旧、枯燥,脱离课程教学目的,脱离实际。有些教师往往把很大的精力甚至是主要精力放在程序设计语言的语法规则和语义上,不自觉地把“程序设计”课变成“程序语言”课,在考查方式上也常常是一张试卷决定该课程的成绩,导致了学生学习精力的偏移教材中的例题和习题大都是立足于程序语言本身的语法规则,与现实生活相差太远,致使部分学生觉得学习编程语言是一件枯燥的事。

3、过于注重理论学习而忽略了编程实践能力

三、提高语言程序设计教学质量的几点思考

1、努力培养学生学习兴趣

对于计算机程序设计语言而言,由于许多学生在进入大学以前并未接触过它,所以,他们会认为计算机语言很深奥、很难学,导致对计算机语言的学习缺乏信心。教师应该采取适当的方式激发学生的积极性和自信心。

“兴趣是最好的老师”,因为高职学生有基础较弱自律性不强的特点,所以在讲授语言程序设计课时更应该优先考虑如何调动学生的积极性,激发学生的学习兴趣,点燃他们的学习热情。所以在上课伊始应该向学生介绍作为21世纪的大学生在计算机应用方面的要求,以及计算机应用对于他们今后就业的影响以及工作中的用途。另外,在刚进行计算机语言教学时,不易涉及难度大、不易理解的内容,要突出趣味性、易学性,降低学生对新事物的困难感。可在课堂上当场编写一些小程序、小游戏,并进行演示,以调动学生的兴趣和积极性。

2、采用灵活多变的教学方法

1)实例教学法

下面以本人C语言课程中“for语句”的教学过程为例,详细阐述一下运用实例教学法如何来实施课堂教学。

①根据本节课在教学大纲中的要求:熟练掌握for语句的使用,利用任务驱动的方式为本节课设定任务。(任务:求1-100之间所有的奇数和)

②精心选择案例程序。

③以案例程序引入本节课的for语句的语法知识,介绍for语句的一般形式,讲解for语句的执行过程。

④通过前面两项的讲解,将所学知识运用到案例中去,画出程序执行的实际过程,从而得出程序运行的结果。

⑤针对案例进行编程思路上的分析,让同学们真正地理解各变量及表达式在for语句中所起的作用,以便于他们今后独立编写程序。

2)比较归纳法

程序设计语言中有很多的定义、概念、语法规则,它们的使用灵活,功能强大,但是难以记忆。教师可以通过比较归纳的方法将这些概念、语法归类,使学生获得的零散知识系统化,对知识理解的更深刻,掌握得更牢固。

下面还是以本人C语言课程为例,在讲解完指针这一章后,及时归纳和总结指针的数据类型是至关重要的。学生们普遍反映这样一个问题,前面的章节学得挺明白的,一到了指针这一章就开始糊涂起来。而指针又是C语言的一个重要概念,也是C语言的一个重要特色,如果不掌握指针就是没有掌握C的精华。免费论文参考网。所以在教学中一定要提醒学生,在学习本章内容时要多思考、多比较、多上机,应用的时候应十分小心。

3、突出上机实践的重要地位,加强操作环节教学指导

为了锻炼学生解决较大型复杂问题的能力,老师在安排实验课内容时,可以布置一个大题目作为长期任务,再按不同功能模块分解开来,形成一个个短期任务。每次实验课要求学生完成其中一个或几个简单的功能模块,这样,每次实验课就好像一条铁链上的一个个铁环,紧密联系。仅以VF语言课程教学中的“学生信息管理系统”为例,把这个系统作为一个长期任务,然后把这个系统划分为若干个小的模块。免费论文参考网。比如输入输出学生信息、添加学生信息、修改学生信息、查询学生信息等模块。这样,当学生完成每一个功能模块后,便发现原来自己实现的是一个复杂的程序。通过这种方法,一方面可以大大降低学生对大型复杂程序的惧怕心理,另一方面也可以培养学生结构化程序设计方法的思想。

四、结束语

程序设计语言课程作为高职院校学生的计算机基础课程,直接影响到学生的后续课程的学习以及未来就业中的实践能力,所以在为高职院校的学生讲授该课程时,一定要从内因和外因两方面进行深入研究学生的状况,合理利用教学环境中的各种教学资源,注重以兴趣为导向设计教学内容,并且采用有效的教学方法,这样就能够使该门课程的教学质量上一个台阶。

[1]谭浩强.C程序设计[M].北京:清华大学出版社,2004.

[2]杨延广.对高职程序设计课教学方法的研究与探讨.高教论坛,2006(2).

二、我校的计算机基础教育新旧课程结构的比较

根据高等教育的发展,对我校非计算机专业的计算机基础教学提出了新的要求,相应的课程体系改革为:计算机基础分为大学计算机基础、计算机技术基础和计算机应用基础三个层次,为必修课或选修课。其中:理工类建议选择C语言程序设计、java语言程序设计等,文科类选择VB程序设计、web程序设计等;第四、五学期各专业可根据专业培养需要选择。同时为了使同学们能更好的掌握知识,将《C语言程序设计》《java语言程序设计》《VB程序设计》《web程序设计》《动漫设计》课程分为两个学期完成,称为《C语言程序设计(1)》《C语言程序设计(2)》,其他课程以此类推。

三、教改具体措施以及效果

(一)全程机房教学,增强动手能力

教学方法是为实现教学目标、完成教学任务所采取的措施。传统的三中心(教师、教材、课堂)教学方法既不适应社会发展的需求,也不符合计算机教育的特色,必须改革。我校的《大学计算机基础》由原来的课堂教学,改为全程机房教学,使同学们在边听教师讲解的同时,可以直接上机进行操作,在学习理论知识的同时,可以立刻得到对计算机操作的感性认识。通过三个学期的教改实践,完善了全程机房教学模式,对同学们使用计算机的动手能力有很大的提高。

(二)配套教学软件,提高学习能力

本课程组为《大学计算机基础》课程开发了一个《大学计算机基础辅导练习系统》,该系统分为抽题模块、答题模块、判卷模块,本系统为C/S结构,当管理员在服务器端设置好本次模拟练习的题型比例后,系统自动生成一套模拟试卷;所有的同学们可以在客户端进行答题,当答卷完毕时,由服务器端自动进行判卷并将本次练习的结果反馈给同学们;该系统可以提供给学习本课程的同学们经过教师的指导后,在课堂内外自行进行练习。以便同学们完成练习后,自己可以评判自身的学习程度,并在下一阶段的课内外学习中调整自己的学习状态。本系统已经提供给2005级大一学生进行了初步使用,体现了较好的作用。

(三)开发网络平台,整合教学资源

(四)编制多媒体课件,增加课堂吸引力

根据我校计算机基础教学的实际情况,我们重新编制了《大学计算机基础》《计算机程序设计A》《计算机程序设计B》的电子课件,使之更符合我校的实际教学情况,更符合浙江省计算机等级考试的要求。其中《计算机程序设计A》课件获得中国计量学院首届多媒体课件竞赛二等奖。改编后的课件具有以下优点:界面清晰、美观,结构清晰,例题丰富、并附有书本外的课后习题。

(五)出版教辅材料,同步教学改革

根据高等教育中对计算机基础教学提出的新要求,和结合浙江省计算机等级考试的要求,本课题组编制了《C语言程序设计实验与习题指导》面向21世纪高等院校计算机系列规划教材,该教材由“科学出版社”出版,并于2005~2006学年第二学期开始投入我校、浙江工业大学等高校使用;根据我校学生应考浙江省计算机等级考试的需要,本课题组编制了《C语言辅导与讲义》、《VB程序设计辅导与讲义》,并与2005~2006学年第一学期开始投入使用,学生们反映良好。

(六)开发考试系统,改革测试手段

计算机基础课程是一门应用技术学科,主要凭试卷来检测大学生的学习效果,并不能完全反映出学生的实际能力。而且试题类型目前多是测试学生对所学知识是否了解,不是考核学生解决问题的能力,并没有挣脱应试教育的樊笼,严重影响了创新型人才的培养。现在这种考试方法,使得学生为了考试而学习,不能提高学生学习的积极性,不能发挥学生的创造力,这种考试方法与素质教育大相径庭。本课题组开发了《大学计算机基础上机考试系统》,本系统具有抽题功能、答题功能、判卷功能、存储功能、输出功能,对其中的实践部分从以前的“纸上谈兵”改为“上机实战”。其中的判卷功能、存储功能、输出功能也使得该课程实现无纸化考试,该考试系统于2004~2005学年第二学期开始投入使用。新的考核方法给了学生一个发挥才能的空间,变被动的死记硬背为灵活的实践操作,使学生成为知识的主人。

四、实际作用与效果

TeachingReforminComputerProgramCurriculum

WuWenyun,DengYaming

(HunanBiologicalandElectromechanicalPolytechnic,Changsha410127)

Abstract:Howtodoagoodjobteachingcomputerprogramistheteachersembarrassingquestion.Inthispapertheauthormanyyearsteachingexperience,teachingonthecharacteristicsofcomputerprograms,teachingproblems,reformneedsofteachingandteachingmethodstomakeplainthereformofareasforreference.

Keywords:Computerlanguage;Logic;Abstract;Process;Object

一、计算机程序课程教学的特点

计算机语言具有很强的理论性、抽象性,学生学习起来难度大,很难激起他们的学习积极性;并且计算机语言发展速度非常快,种类繁多,并且都有各自的适用范围。基于各个学校的实际情况,课堂教学内容也远远滞后于计算机发展速度,只能将那些具有代表性的语言(面向过程程序设计语言如c语言、面向对象程序设计语言如C++等)引入到教学课堂。因此,搞好计算机程序课程教学难度很大,如何上好计算机语言课程也是大家都在探求的问题。

二、目前计算机程序课程教学中存在的问题

(一)教学方法存在有问题

在计算机程序的教学过程中,传统的教法是按照教材编排的顺序讲授,即先介绍一条条语句及语言的语法规则,然后做适当的练习和实训。这种传统的教学方法存在以下几方面的问题:

2.学生不能明确课程的学习目标和方向;

3.按步就班的教学顺序会导致学生的厌学情绪;

4.达不到预期的教学效果。

(二)计算机程序课程教学中存在的客观问题

实际中的语言程序课程教学又存在几大棘手问题:

1.众多的语言规则让初学者望而生畏;

2.灵活多变的使用方法又令人捉摸不透;

4.学生不好的学习态度:学习思维、行为懒惰。

基于以上存在的问题,计算机程序课程教学改革势在必行。我们在教学中应该有的放矢,不断探索新的教学理念和方法。

三、教学改革方法

(一)突破传统的思维方法,根据市场人才培养需求确定课程目标体系

1.认知目标:通过项目实践,掌握程序、程序设计的基本概念、程序设计思路与方法;

2.能力目标:小组合作或独立操作,简洁明快,易于识别,寓意准确,内涵丰富,特征明显,编写精细的应用程序;

3.情感态度目标:培养学生的学习情趣,通过观察,实践,感受成就感,设计感,空间感,体验程序设计的乐趣。

(二)精心选取教学内容

课程教学内容可以模拟一个软件公司的设计部门,以一个普通的设计人员在工作中所遇到的实际问题为主线,将客户的要求转化为实际的任务,要求学生解决。整个教学过程共模拟若干个工作场景,设计教学过程于工作(生产)过程中的职场环境,将课程教学内容和要求都融入到这些案例中。

(三)认真设计并精心组织实施教学过程

本课程基于案例模拟真实公司环境的情景下,以项目案例驱动学生动手操作,进而对项目中的知识点进行总结。具体内容包括:

1.实训项目:可根据课程教学需要来确定

2.实训目标:掌握模块结构设计、面向对象程序设计及程序设计风格,掌握程序基本结构设计及实现方法。

3.基本做法

a参与人员:全体学生(分组)

b实训地点:教室+专业机房

c实训途径:设计+上机操作

4.实施步骤

实施:事前要求学生分组设计模块流程图,设计实施方案,动手设计代码,完成项目,巩固知识点。(巡查学生的掌握程度,对实施过程中出现的问题进行辅导)

总结:小组互评设计的优劣

a紧扣实训目标,总结达标程度。

b思考与互动:你学会了这个实训项目,对你的毕业论文/设计,职业资格证书考试有什么帮助

(5)课程评价

a教学效果考试方式

平时成绩:考察学生的学习态度(20%)

学生自评:紧扣实训目标,总结项目达标程度(20%)

老师评价:理论考试和实训评价(60%)

b教学效果评价:

i组织学生参加软件水平考试的合格率

四、教学改革过程中应该注意的问题

(一)注重学生计算机思维的培养

(二)启发式教学激发学习主动性

计算机语言教学的关键是培养学生的编程思维,我们可以大胆采用启发式教学,引导学生尽快明确编程思路,掌握基本编程方法。在课堂上,可以尝试让学生自己去编程实现,教师只扮演“打字员”的角色,直接把内容输入到语言环境中,一边输入一边和大家交流,如果实在有困难,教师停下来再加以详细分析,直到程序编译、运行和显示出正确结果。启发式教学很容易让学生掌握程序设计的完整过程,也可以大大提高我们授课的效率。

(三)抓住重点、化解难点

讲授重点内容时,应放慢速度、加重语气,从而吸引学生的注意力。当遇到难点时,善于化解,把问题逐渐细化,所有小问题解决了,难点自然就解决了。

(四)强化实践

(五)搞好总结

课堂教学以后,授课教师特别年青教师多写写教学心得体会,多回忆回忆课堂情况,多和授课对象交流反馈,成功的有哪些,不足的有哪些,以后就能做到有的放矢,扬长避短,更好更快地提高我们教学能力和业务素质。

总之,要教好计算机程序课程,不能按照单一的“黑板―书本”教学模式,应大胆进行课程教学改革,采用丰富多彩、满足学生需要的教学模式,精心设计并认真把握各个教学环节。只有如此,教学质量才会有本质的提升。

参考文献:

[1]吴振峰.信息技术基础,北京理工大学出版社,2001,9

[2]彭邵东.信息技术教育研究,湖南师范大学出版社,2002,6

一、物理学与计算机的密切关系

电子计算机是因解决物理问题的需要而产生的,二次大战期间为了快速计算弹道,被公认为世界第一台电子计算机ENIAC于1946年研制成功,万维网的出现是因欧洲核物理学家们进行学术交流的需要而设计出来的。由此可见,计算机与物理学的关系是非常密切的,物理学的发展促成了计算机的产生与发展,计算机的出现是二十世纪最伟大的科学技术成就之一,它延伸了人们的思维能力,成功地解决了很多物理、数学等方面的难题,没有计算机就不可能准确计算出火箭和卫星的轨道位置、就没有今天的航天成就,计算机应用跨越各个学科,在工业技术、企业管理、情报信息处理、国民教育等领域引起深刻的变革,在今天几乎没有哪一个学科能够离开计算机的应用。

作为孕育计算机诞生与发展的物理学,如果说早期物理学应用计算机主要解决人们的计算速度、强度的技术问题,那么到了今天,计算机已在更深刻的层次上促进物理学的发展,由于在物理学很多领域中能够找到精确解的理论问题已经不多了,剩下的是大量的复杂的非线性问题,对这些问题的分析、预测和求解离开计算机,人们几乎无能为力了。另外一个方面,在计算机出现之前,人们只能够通过真实的实验来验证物理理论的正确性、工程中也往往需要耗费巨额资金做实验来探测某些数据和验证方案的可行性。而今天很多实验可以通过计算机仿真实验来完成,达到与真实的实验完全相同的效果,成本低廉且安全环保,用计算机来进行科学实验是科学技术史上革命性的变化。

物理学与计算机科学互相促进、共同发展的情况对我们今天的物理教学提出了更新更高的要求,物理学的教学内容、教学手段和教学方法必须与时俱进,适应新形势的要求。

二、物理教学中结合计算机教学的一些思考

(二)部分物理实验利用计算机仿真课件来进行

1.引言

2014年6月刀日,国务院颁布了《关于加快发展现代职业教育的决定》,指出采取试点推动、示范引领等方式,引导一批普通本科高等学校向应用技术类型高等学校D型。随后,湘南学院加入“中国应用技术大学联盟”。2014年11月,湘南学院成为湖南首批两所转型发展应用技术大学试点高校之一。计算机科学与技术专业作为地方本科高校应用性较强的专业之一,转型发展符合国家和学校的转型政策,培养面向行业企业需求的应用型人才刻不容缓。

本文通过我校参与ACM竞赛的历程,以赛促学,提高学生自主学习的积极性、团队协作能力和实践操作能力,培养适合行业企业需求的应用型人才。

2.地方本科高校计算机人才培养模式存在的问题

随着计算机与通信技术的快速发展,行业企业需要大量的计算机人才,但是地方本科高校计算机毕业生的就业率和就业质量却逐年降低。

第二,地方本科高校的计算机人才培养方案更新较慢,计算机技术发展与应用又日新月异,新的知识与理论未能及时引入到计算机教学中来,出现了授课内容与计算机应用新技术脱节现象。

第三,计算机是应用性比较强的学科,由于专业课时有限,实践训练有待加强,实践教学模式陈旧,缺乏一种学生课外自主学习的激励机制。

第四,教师教育学生的方式仍停留在应试教育阶段,学生学习积极性不高,以致教师所讲授的知识学生未能很好地理解与掌握。

第五,传统的实验考核、作业批阅都由教师人工完成,受限于教师的知识水平和经验,缺乏严谨的数据进行测试,降低了实践与练习效果。

第六,计算机专业课程的考核还停留在纸质试卷上,学生只需通过死记硬背便能获得高分,但遇到实际问题却不能运用所学专业知识来动手解决,出现了高分低能现象。

3.ACM竞赛简介

4.建立依托ACM竞赛的计算机应用型人才培养新模式

计算机应用型人才培养主要由专业教育、素质教育组成。专业教育分为专业教学、实践教学。素质教育包涵其它学科综合教育。依托ACM竞赛优势,将其融入计算机人才培养,可以弥补地方本科高校计算机应用型人才培养模式的不足。

1)ACM在线评测系统开发培养学生创新实践能力

湘南学院ACM在线评测系统设计与实现为湖南省大学生创新性实验计划项目,为学生学习C/C++语言程序设计、数据结构、算法分析与设计、Java等程序设计类课程提供一个学习、练习和交流的平台。学生在项目开发过程中,团队合作、协作分工,巩固了所学的理论知识,系统学习了软件开发理论,并将之贯穿于实践,激发了学生的创新思维和创新意识,促进了学生对科研项目兴趣,提高了学生软件开发水平和学术水平,充分锻炼了学生的创新实践能力、应用开发能力和科技论文写作能力,培养了学生的专业能力。项目实践让学生在提高专业能力的同时,获取了开发实际软件项目的成就感,有利于学生积累项目开发经验,培养学生自信心和价值感,提升学生适应培养行业企业需要的就业竞争力。

2)以赛促教,提高学生的专业教育和综合素质教育水平

培养计算机应用型人才,主要培养学生的动手实践能力。将ACM竞赛引入程序设计类课程日常教学中,可以改革传统实践教学模式和以笔试为主的课程考核体系,学生通过ACM在线评测系统进行实践训练,教师通过答题情况来反馈学生对讲授知识的掌握程度,采用ACM在线测评系统考核结束后的最终排名为主和平时成绩及实验成绩为辅进行课程评价。程序设计类课程作业和实验,随意性大,题意模糊,解答也模糊。而ACM在线评测系统要求非常严格,题意清晰,解答精确。ACM竞赛虽然要求程序运行结果与题意完全符合,但并不限制用何种算法去实现,学生可以尝试各种可以实现的算法,充分锻炼了学生的动手操作能力,提高了实践教学水平。通过实践来巩固理论教学,提高了学生的专业教学水平和质量。ACM竞赛涵盖计算机、数学、英语、心理学等学科,有利于学生的综合素质教育的培养。

3)以赛促学,建立四级竞赛学习机制

4)建立ACM竞赛与人才培养共赢机制

为了充分调动学生、教师的积极性,克服各种困难,取得理想成绩,应建立ACM竞赛与人才培养共赢机制,既可以为ACM竞赛提供源源不断的动力,又能为培养应用型创新人才可持续发展提供保障。具体的举措建议如下:建立ACM在线评测系统,为学生提供学习、训练和交流的平台;成立校ACM协会,通过协会来推动学生的参与,培养学习兴趣;培养学生梯队,实行老队员带新队员,形成互相学习、竞相赶超的学习氛围;完善ACM竞赛激励机制,对获奖的学生按获奖级别及时给予现金奖励和学分减免,对指导教师给予工作量补助和现金奖励、职位晋升、评优评先和职称评定时给予政策倾斜用,对组织参赛的二级学院给予肯定和奖励。

5.依托ACM竞赛,培养应用型人才

依托ACM竞赛建立的应用型人才培养新模式,主要从以下几个方面来培养应用型人才。

1)更新人才培养观念

地方本科高校计算机专业需要更新人才培养观念,将ACM竞赛制度纳人教学体系,成为常规性、制度化的工作,积极探索“以赛促教、以赛促学”的应用型创新人才培养新模式。

2)搭建ACM学习平台,建设ACM开放性实验室

构建ACM在线评测系统,学生可以在校园内随时随地使用电脑在线做题,系统自动返回做题评测结果,有利于学生的自主学习。实验室是培养学生实践能力的重要场所。建设ACM开放性实验室,配备专业素质过硬、动手能力强的指导教师给予适时指导,以开放和包容的态度来满足学生的学习热情和求知欲望,学生通过ACM在线评测系统,自主练习,采用算法分析、程序优化、归纳总结等方式提高学生的实践能力和逻辑思维能力。

3)扩大ACM竞赛的受益面,营造浓厚的学习氛围,

ACM竞赛已经培养了一批高素质应用型创新人才,将ACM竞赛内容列入程序设计类课程作为教学案例,扩大赛后的延伸效益,把ACM竞赛融入程序设计类课程实践教学,培养学生创造性思维和实际设计能力,提高教学质量,促进计算机专业改革和建设。在四级竞赛学习机制中,无论是作业、实验,还是校赛、省赛、企业赛,由于均采用动态排名,客观公正,因此可以激发ACM队员编程兴趣和积极性,逐渐形成良好的学风,营造浓郁学习氛围。

4)锻炼学生的竞争能力,培养良好的心理素质

在四级竞赛机制中,无论是练习还是竞赛,参赛队员都能看见即时动态排名和做题情况,这样给学生带来了较大的心理压力,能否及时调整心态将会起到至关重要的作用。通过平时训练和不同级别的竞赛,可充分锻炼学生的心理承受能力,提升其适应行业企业需求的竞争优势。

5)通过ACM组队集训,培养学生的团队协作能力

为了适应行业企业开发应用软件的需求,按照ACM竞赛规则,采用3人一组共用一台电脑进行组队训练模式,组员之间分工协作,默契配合,有利于提高学生的团队开发能力。

6)提升学生的英语应用能力

由于计算机专业资料大多数是英文资料,按ACM/ICPC规则组织的竞赛基本上是英文题目,这让参加ACM竞赛的学生长期进行英语学习,极大提升了学生的英语应用能力。

6.应用效果

1程序设计语言教学中存在的问题

1.1教学课时少

目前我校计算机专业的学制2+1的模式,学校开设的程序设计语言课程的课时(包括理论课时和实践课时)较少,这就导致实际教学中存在理论课时和实践课时不够的情况,学生只能掌握最基础的程序设计知识,理解书本上现有的一些设计实例,而不能用该程序设计语言进行实际问题的处理。

1.2学生基础参差不齐,学习程序设计的信心、兴趣不足

因为学习程序设计需要较强的逻辑思维能力和较扎实的数学功底,而中职学校的学生普遍数学基础较薄弱,导致在学习程序设计时显得力不从心。由于缺乏对计算机本身解题的认识和了解,有些基础较差的学生还对计算机程序产生一种莫名其妙的神秘感和畏惧感,人为的给自己学习程序设计语言设置了一道门槛。学生对程序设计课程的学习兴趣不高,课堂教学中反常行为较多,如卜课睡觉、讲话、玩手机、不配合老师、不交作业等。学生普遍反映难学,提不起学习兴趣,感觉学不到知识或学的知识没用。

1.3学校对程序课程的重视程度不高

计算机程序设计课程注重对学生的思维能力的训练,这与图像处理,动画设计等培养学生动手能力的课程不同,不能立竿见影的看到学生的学习成果。这就导致一些领导对这门课程不够重视,从而使部分教师对这类课程的教学参与兴趣不浓厚,甚至有些学校以取消了程序设计语言的课程设置。

1.4教学方法落后

中职程序设计语言课程一般采用的教学方法是教师课上讲授加学生实验的形式,学生在上机实验时仅仅是对书本上现有的一些实例进行编辑调试,一旦调试成功就完成任务。这种教学方法实际上只是让学生掌握了一些程序设计的语法知识和调试技巧,而达不到培养学生利用该程序设计语言从一个实际问题人手分析问题、解决问题的能力。

1.5考核方式较简单不能全面检验学生的学习效果

目前的考试方式以试卷为主,无法全面检验学生的学习效果,对学生的实践能力考查无法体现学生的真正学习效果。

2间题分析

是什么原因造成了以上这些问题那随着高中教育不断普及,中职生源及综合素质急剧下降。普遍特点是他们基础薄弱,尤其数学和英语,这是学好程序设计的最大障碍。教材不能适应中职教学的要求。现今中职程序设计语言教材存在的普遍问题是实践性教学和实训内容不足,没有体现教材的实用性和职业性,不能保证对学生实践能力的培养,不能体现技术应用型人才的培养要求,缺少中职教育特色。面对这些问题,我们不能望而却步,一味地去埋怨是起不到效果的,要真正想解决问题,最好就要去不断地摸索,寻找解决问题的突破点,探索适合学生发展的教学方法和教学内容,以充分调动他们的学生积极性和主观能动性。

3解决间题的关键在于教育方法的创新

(1)基于问题的教学。提出问题,以学生独立完成为主,教师只提供必要的辅导,培养学生探索问题和解决问题的能力,更有利于创新能力的培养。

(2)“项目驱动”教学。在理论教学中采用“项目驱动”教学法,整个课程教学围绕一个“工程项目”进行,通过逐步拓展的实训项目和设计,将每一阶段的学习进行小结性的贯穿与能力提高,将知识点都溶化到一个个实训项目的程序编写中。

(3)讨论教学法。在教学过程中,充分发挥学生的积极性与主动性是非常重要的一环。程序设计有一个最大的特点,一题多解。针对这个特点,教师在习题课的教学中,可以采用讨论式教学方法。在此过程中,学生们通过提问、答辩、论证、反驳、判断等激烈的讨论,互相启发、相互协作去分析问题、发现问题、解决问题,总结经验。不仅可以让学生获得课外的知识,同时也利于充分挖掘学生的学习潜力。

(4)归纳教学法编程语言有很多的定义、概念、语法规则,它们使用灵活、难以记忆,也特别容易出错。如果能够引导学生进行归纳,将会起到事半功倍的效果。编程语言的定义、概念、语法规则有许多相似的地方,例如:for……to……与do……while等命令,有很多语法规则是一样的,对它们进行归纳之后,学生只要记住其中一个,另一个自然就会使用了。

VB程序设计是很多高校非计算机专业学生必修的一门计算机基础课程,我们学校也不例外。苏州大学应用技术学院是民办公有本科院校,该学院的非计算机专业理工科学生全部必修VB程序设计,并且要求学生通过江苏省计算机等级考试二级,且与学位挂钩。本人所教授班级学生每年等级考试的通过率均名列全院前茅,受到该院学生和教师的好评。今年在首次实行的由学生选择任课教师过程中,出现了“涨停版”状况,在短短的十分钟内,选我所授VB课程的学生人数爆满,导致后面很多想选修我的VB课程的学生没能选上,事后这些学生私下问我:“如果没选上我的VB课,能不能到我的课堂听课”这件事情给我的触动很大,学生的认可是最高的奖励!通过多年的研究和探索终于摸索出一套适合民办本科院校的程序设计的教学方法。

1教师的人格魅力是吸引学生学好知识的必要条件

2从社会实际状况出发,让学生明确学习目标

目前我国的教育现状是:从小学甚至幼儿园开始,就强调学习、学习再学习!也就是孩子除了学习之外,不能有其他事情可做,只要学习好,什么都好。所谓的“一俊遮百丑”,却忽略了其他方面的培养和教育,虽然政府也正在努力改变现状,但因为社会竞争激烈以及人口众多,一时还难以改变。正因为如此,家长也是为了孩子今后的生存考虑,不得不督促孩子学习、学习、再学习!其他方面的教育等上了大学再说。这就给高等院校的教育带来了很大的压力,大学生存在的问题很多:首先是为什么要学习学习目的不是很明确。其次是学生认为在大学里不用刻苦学习。因为在中学阶段学习很辛苦(这是不争的事实),学校为了升学率,学生为了考大学,甚至有中学教师给学生一种误解:上了大学就可以放松了。导致学生上大学后不爱学习,认为没必要再学习了,因为学习毕竟是一件很苦的脑力劳动。

3采用适合民办本科院校大学生特点的教学方法

(1)消除学习计算机程序设计语言的畏难情绪,给足学生一定能学好这门课的信心。

(2)由浅入深,循序渐进,逐步引导学生步入正确的程序设计大门

在介绍VB内容的时候,教师不一定完全按照指定教材内容组织的顺序给学生讲解,因为教材本身就是一种参考书,教师可以根据大纲要求,把教材内容经过仔细研究、斟酌、提炼、总结和归纳成由浅入深、循序渐进、通俗易懂、简单明了的知识内容,再结合日常生活中的实例展现给学生。如VB控件部分的内容不必在开始时全部讲解,结合实际情况,用到哪些控件再详细的介绍那些控件。首先把窗体、文本框、命令按钮和标签控件介绍给同学就足够使用了,因为窗体是VB程序设计的基石和容器,所有VB的其他控件都放在窗体中;文本框可以用来作为输入和输出界面;命令按钮用来激活代码的运行;标签用来注释。至于其他控件,如图片框、列表框等等可以在后面介绍到数组的时候,作为数组输出界面时再陆续介绍。总之,介绍的内容以实际应用为主,有应用的需求就介绍,理论联系实际,效果会更佳。

对同学们容易出现的一般性错误,尽量用通俗易懂的例子说明语句的含义。因为学生出错的原因就是没有真正理解语句的含义。例如,开始使用VB赋值语句的时候,很多同学容易出现的错误就是把赋值和被赋值对象写错位置。如把x的值赋给y,写成x=y,其错误的原因就是学生把赋值号“=”理解成数学里面的等号“=”了;同样的错误还有,把文本框1中的内容赋给变量a,表达成text1=a。针对这种错误,我们就可以通过日常生活中“借钱”这件事情来举例说明,如名字为x的人向某人y借了500元钱,前提是y一定有500元钱(y=500),我们可以用式子x

在讲解程序设计算法的时候,尽量从学生的角度去分析、理解和判断,最后推出正确的解题方法。先用自然语言分析和阐述正确的算法,然后再用VB语句描述出来,要把分析和表达的全部过程展现给学生,和学生一起分析和判断,最后再把初步写出的VB程序放在VB环境中调试和运行,验证算法是否正确。特别强调的是,有时需要故意设一些陷阱,让学生跳进去,也就是程序不要一气呵成,正确无误。故意留出一些关键性的,容易犯的错误,运行结果出来,发现错误时,学生会很惊讶,在分析的过程中,觉得应该不会出错,怎么最后结果不正确呢这个时候教师也不要急于给出答案,让学生思考几分钟,再慢慢引动学生发现问题,进而想出解决办法,最后教师再给出正确答案。

归根结底,我们在传授知识的同时,最好能够把如何学习新知识的方法传授个学生,这才是我们的教育目的,小之以情,动之以理,由浅入深,循序渐进,慢慢的学生也就走进了VB这个新知识的大门。教师在授课的过程当中适时地出现一些幽默的句子或片断,也会让学生觉得VB程序设计的课堂不是那么枯燥乏味。把学生的情绪调动起来,学习的热情也就随之而来,效果也就可想而知了。

4结束语

民办本科院校的计算机程序设计教学方法的探索与实践是一项复杂和持久的系统工程,无论是在教学理念还是在教学方法上都需要不断的改革和创新。今后我们还要不断的研究和探索,在改进教学方法和教学手段的同时,加强学生实践能力的培养,进一步完善我们的教学机制。

中等职业学校是培养高素质专门技术人才的基地,肩负着向特定的行业和岗位培养合格的操作技能型人才的使命。现代科学技术的迅速发展,促使社会体系、经济体系和教育体系不断地变化,社会对技术人才的需求也在变化,要求越来越高,从过去的对相对单一型人才的需求转变为现在的对多元化、复合型人才的需求。尤其是计算机专业的毕业生,知识结构与能力更是难以满足现代企业的需求,大量的毕业生在社会上找不到与所学专业相吻合的工作。因此,面对严峻的就业形势,教学必须适应社会对人才的需求变化,改变传统的以“知识为本位”的教学目标,代替以“能力为本位”,以“就业为导向”的教学目标,教师应改变传统教学方法,重视对学生能力和创造性的培养,以适应培养学生综合能力的要求。而因地制宜的运用项目教学法就能够培养学生的动手能力、解决实际问题的能力。

一、项目教学法的必要性

程序设计课程是计算机专业课程体系中重要组成部分,也具有较大难度。我校计算机专业开设的程序设计课程主要包括QBASIC、C、VFP、VB、数据结构等。QBASIC是低年级的入门语言,主要是引导学生从算法语言层面逐步认识计算机处理问题的方法,C语言是一种概念复杂,理论性和实践性均很强的程序设计语言,要求学生有较好的程序设计基础。不管是哪一门课程,程序设计教学的最终目的都是要培养学生分析和设计程序的思维方法和能力,也就是要会用语言这个工具去解决实际问题。传统的教学方法大都是从理论入手,虽然能系统完整地讲解各章各节各个知识点,但由于内容比较枯燥,对于基本素质、自学能力和自控能力都停留在比较低的层次上的职校学生来讲,仅能够灌输到一点基本概念和理论,根本谈不上能用语言这个工具去编写实际的程序。笔者在多年的计算机程序设计教学实践中,结合教学内容和教学对象的实际情况,逐步总结出采用项目教学法能够极大地提高学生学习的积极性和主动性,使他们的动手能力、解决实际问题的能力得到很大的提高。

项目教学法是符合建构主义理论促进学生全面发展的科学教学方法。建构主义学习理论认为,知识不是通过教师传授得到的,而是学生在一定的情景下,借助他人(包括教师和同学)的帮助,利用必要的学习资料。通过意义建构的方式而获得。基于建构主义的教学法要求,在学习过程中,要以学生为中心,教师应起帮助者角色,利用情景、协作、会话等学习环境要素,充分发挥学生的主体性和创新精神,使学生有效地达到对当前所学知识的意义建构。

二、项目教学法的实施

项目教学法是师生通过共同实施一个完整的项目工作而进行的教学活动。通过选取工程项目来创设情境,通过协作学习的方式开展学习,通过完成工程项目来达到意义建构。它突破了传统的教学模式,通过解决学生身边的一些现实问题来实现学生对知识的掌握,大大提高了学生学习的积极性和主动性。通过项目教学法学习的学生,他们的动手能力、解决实际问题的能力有很大的提高。这种方法不但适合职业学校的计算机程序设计课程教学,尤其适用于学生水平参差、学生自控能力比较薄弱、课程的应用性比较强的教学。

项目教学法是从职业学校计算机程序设计课程教学中总结出来的,与程序设计模块化的思想相吻合,所以特别适用于培养“软件蓝领”专业的教学。

下面以《C程序设计》课程中函数这一章采用项目教学法教学为例,具体说明该方法基本的教学步骤。

C语言中的函数相当于其他高级语言中的子程序,是C语言中实现模块化编程的基础,也是学生初步形成模块化开发软件的基础。在未学函数这一章之前,学生已经编写了一个成绩处理程序,该程序的主要功能有成绩的输入、输出、求总分、求平均分、求最高分、排序等。在花了5课时讲解了函数的基本知识及概念后,要求学生用所学函数知识将前述程序改写成一个完全模块化的程序。

1、情境设置。创设学生当前所学习的内容与现实情况基本相接近的情境-给出原先所编的学生成绩处理程序,要求用函数部分的知识将该程序进行模块划分,把学生引入到需要通过函数来解决现实问题的教学环境。我所选取的学生成绩处理项目中,有成绩的输入、输出、求总分、求平均分、求最高分、排序等。这是一个贴近实际,学生比较熟悉,难度适合的项目,这样容易调动学生解决问题的积极性。

2、操作示范。围绕当前学习的知识点,以便于学生“知识迁移”的要求,选择合适的小项目,并示范完成项目的过程。我选择成绩输入这个小项目,示范用自定义函数来实现该模块的功能。

4、分组并确定各小组的项目。小组通过研究讨论,并在教师的指导下,将成绩的输出、求总分、求平均分、求最高分、排序等划分好的小项目分配给各小组。

5、协作学习。各小组开展交流、讨论,组员分工协作,调试运行,完成项目。采取分组协作学习的方式时,每组人数应适中,组员的个性、能力方面应采取互补方式搭配好,设立一小组长,协调组内成员分工,有利于同学之间互相学习。最后各小组充分运用其他小组已编写好的模块集成出一个完全模块化的程序。因为本项目中的各个模块即小项目是由各小组分别用函数完成的,最后必须将各小组编写的集成起来才能得到一个完全模块化的程序。

6、学习评价。学生学习的效果直接由完成工程项目的情况来衡量,包括教师评价、学习小组评价和自评三部分。分三级来考核:第一级是由教师对小组完成项目情况进行评定:能否共同协作,实现预定功能;程序的优化;是否具有创新意识。第二级是由各小组成员根据各组员对本小组贡献的情况进行互评,组员的参与意识;第三级是由学生本人进行自评,是否在原有基础上有所提高。综合三级评定情况来确定每一名学生的学习成绩。

三、项目教学法应用注意点

项目教学法是行为引导型教学方法中的一种。在整个教学过程中既发挥了教师的主导作用又体现了学生的主体作用,使课堂教学的质量和效益得到大幅度的提高。但在具体使用时还应重点注意以下几点:

1、项目的选择与教材的处理

项目的选取是学习的关键。选取项目要以教学的内容为依据,可大可小,既要包含基本的教学知识点,又能调动学生解决问题的积极性,让学生既能运用学过的知识,又可以创造发挥。教师和学生可以共同参与项目的选取。作为教师对知识点进行讲解的实例,所选取的项目必须简单和典型,以此实例作为学生初始学习的例子,便于学生对知识的迁移;另外一个项目要有一定的难度,可促使学生学习和运用新的知识、技能,解决过去从未遇到过的实际问题。

教材是一个问题。由于现行的教材基本根据学科知识系统进行编写,教师实施项目教学法时,不能够完全按照教材一章一节地讲授,所以要求教师在设计教学时,必须重点选好示范项目,紧密结合教材内容,适当编写讲义,甚至编写教材。

2、正确处理项目教学法与传统教学法的关系

项目教学法并不是日常教学的全部,它只是教学环节中一个非常重要的部分却不可能替代全部的正规教学,它侧重于对学生能力的培养,在应用性比较强的程序设计课程教学中表现出一定的优势;而传统教学法具有完整的理论体系,所以学生对知识点和知识体系的掌握都比较牢固,这在理论课表的教学中表现出一定的优势。在具体运用中中两者可以交叉使用,重视项目的完成,但不能忽略基础知识的掌握;注意吸取传统教学法的长处,把总目标细分成一个个小目标,每个小目标体现在项目中的小模块上,从而让学生建构一个系统的、全面的知识框架

3、教师的角色定位

在教学过程中,教师的地位是经常变化的,当学生学习新技能时,教师是知识的传授者,当学生运用已学技能时,教师是导航员,当学生自主活动时,教师是观察员,当学生以小组进行活动时,教师又需要充当协调员。

教师应当创设学生学习的资源和协作学习的环境,让学生有多种的机会在不同的情景下来应用所学习的知识,充分运用现代教育技术的手段给学生提供多种学习的资源;协商解决各个难关,使学生群体的思维与智慧为每个学生所共享,从而达到全体学生共同完成意义的建构。教师应当做好对各项目的评估总结,在评估中要指出问题的所在及解决的方法,要总结比较各组的特点,引导他们学习别人的长处来改进和提高自己的设计,使学生的各种能力在评估中得到提高。教师应当发挥好协助作用,让学生根据自身行为的信息来实现自我反馈。

通过项目教学法在计算机程序设计课程教学中的应用与实践,笔者深刻体会到:项目教学法把理论教学与实践教学有机的结合起来,不仅有利于学生加深理解和掌握书本的理论知识,更使他们懂得怎样灵活应用这些知识。项目教学法充分发掘了学生的创造潜能,全面培养了学生分析问题和解决问题的思想和方法,提高了学生对程序设计的意义建构,充分地展示了中等职业学校教学“以能力为本位”的价值取向。

一、课程定位

《程序设计基础》是直接面向程序员职业岗位的一门课程,课程的学习目的是使学生掌握结构化程序设计的基本方法,培养程序设计的思维能力,为后续课程《C#程序设计》、《数据结构》、《WEB程序设计》、《面向对象程序设计》等课程的学习奠定基础。

二、课程设计

为了符合学院提出的“走进校门的是大学生,培养出来的是职业人”的育人理念,和计算机应用技术专业要培养具有优势职业品质与技能,面向现代服务业培养管理、服务第一线岗位的高素质技能性职业人的专业目标,《程序设计基础》的课程设计思路是以培养程序设计能力为目标,以实战项目为载体,实现教、学、做一体化。

在教学过程中以案例为先导,学生完成演练为手段。这门课程要达到的品质目标是以能力与知识相结合、以培养全面发展的具有优势品质与技能的高素质应用性职业人为培养目标,培养学生严谨细致、求真务实的工作作风和良好的团队协作精神。技能目标是掌握结构化、模块化程序设计方法与技能、培养自主学习独立思考能力。知识目标是学会C语言的基本语法,掌握基本的算法、能够编写基本的C语言程序。

课程内容的选取依据计算机程序员岗位需求、典型工作任务、行业技术动态发展趋势、高职学生特点,分为理论教学和实践教学,课时分配是1比1,其中实践教学每一个模块都以项目案例为导向,案例大多选自杭电的ACM平台,同时也配备了为了激发学生学习兴趣老师自己创作的案例,比如剪刀石头布游戏,猜数字游戏等。

高职学生属于高考最后批次,文化基础知识相当欠缺,体现在C语言上,英语出错提示看不懂,甚至有学生反映在C语言中的英语语句关键词都不认识,在数学上同样存在基础相当差的问题,成为学习C语言的极大障碍。学生从小接触计算机就在Windows下运行,习惯了用鼠标,而C语言运行在用键盘的命令行界面上,一个字都不能输错,对初学者有一定难度。这门课程的重点是:三大基本语句程序的设计、数组的定义与引用、函数的定义与参数传递;课程的难点:选择与循环的嵌套、函数嵌套与递归调用、指针等。针对学院高职学生的特点,对于重难点的解决方法是从提高学生学习主动性方面突破首先,要激发学生的兴趣,包括两方面的内容:第一兴趣教学,尽量选取学生感兴趣的题目或项目进行教学,如猜数游戏,石头剪刀布游戏等。第二实用教学,解决学生学了有什么用的困惑,尽量选取贴近生活实际的题目,如百元钱兑换方案、谁是骗子等,让学生感受到学后能解决问题的小小成就感。

三、教学实施

教学实施流程分为三个阶段:准备阶段,实施阶段和总结阶段。在准备阶段中,根据课程标准,主讲教师组织任课教师讨论,选择典型的工作任务,制定教学计划。实施阶段以学生为主体,以教师为主导,以职业能力培养为中心,融‘教、学、做’为一体教学。总结阶段主讲教师组织任课教师讨论,提出存在问题,找出解决方案。

针对课程特点,灵活使用“启发式教学”、“趣味教学”“任务驱动”等方法,突出“理论教学构筑学生的知识结构,实践教学构筑学生的职业技能结构”的教学原则。课程教学全面推行“学中练,练中学”教学思路。

这门课程的教学评价由三部分组成:其中平时成绩和课内实验成绩分别占20%,期末笔试成绩占60%。

四、教学条件

该门课程的教学资源也很丰富,主要包含以下几个部分:教学大纲、授课计划、教材、实验实训项目指导书、多媒体教学课件、网上C语言精品课程、试题库、图书资料等。教材选用谭浩强教授编著的《C语言程序设计》,系周岳松老师自主研发了客观题在线测试软件,该软件分为教师版和学生版,教师版可用于平时随堂测试,学生版可用于学生自主学习,网络资源主要有C语言网等。学院也提供了相应的硬件支持,设有软件开发实训室、大学生程序竞赛实训室等多个实训室。

五、教学效果

校内督导组和校外专家都对《程序设计基础》这门课程给予了充分的肯定,专家评语是以项目为导向,以任务驱动,符合高职教育教学特点,以提高学生的编程能力为宗旨,能较好符合企业对软件人才的需求。

迄今为止,该专业共有一千七百余人修了这门课程,取得了丰硕的成果。我校代表队参加了十届浙江省大学程序设计竞赛,共获32块奖牌,尤其去年今年连续两次获得专科组的特等奖,同时四次获得优秀组织奖。除了ACM竞赛,在蓝桥杯比赛中我系学生也取得了不错的成绩。

通过这门课的学习,锻炼了学生的逻辑思维能力和基本程序设计能力,为以后的工作和创业打下了坚实的基础,2008级计应学生林清瑞,曾经参加ACM竞赛并获得银奖,自主创业,建立了杭州安豆信息技术有限公司,从事手机游戏开发。2003级计应学生黄道笑,自主创立了杭州五角星科技有限公司,从事网站开发。2010年公司销售额超过了200万;2011年被评为杭州市高新技术企业;2012年被评为杭州市雏鹰计划企业。

六、课程特色

这门课程特色:以赛促教,赛教结合。把ACM竞赛平台里面的题目融入到平时的教学过程中,也会把平时表现好的学生充实到竞赛集训队伍里面;教学结合,学以致用,教师指导,学生自主研发一些小游戏,比如石头剪刀布的游戏。

THE END
1.如何编写高效的算法来解决特定问题?精品笑话分享平台在当今快速变化的技术环境中,编写高效的算法对于解决各种问题至关重要。无论是软件开发、数据分析还是机器学习项目,一个精心设计的算法可以显著提高性能和准确性。本文将探讨如何编写高效算法,并分享一些实用的技巧和最佳实践。 ### 1. 理解问题 ### (1) 明确目标 -https://joke.verypan.com/index/index/content/id/107811
2.算法笔记(三)算法学习技巧从开始学习算法已经有两三个多月的时间了,从简单到深入层次展开,层层优化,对算法的理解也在逐渐加深,不在那么片面,虽然现在还是片面一些,对它的了解也仅仅知道冰山一角,还有很多的内容需要我们去学习去挖掘。 思路 在学习前我们要尽可能快速阅读一遍要学习的书籍,这样不仅仅让我们知道了有哪些内容需要学习,同时也在https://www.code456.com/article/3598351.html
3.直击高频编程考点:数学思维知识及经典算法题总结:数学思维在编程中是非常重要的,它可以帮助我们解决各种问题并优化代码。下面是数学思维在编程中的一些应用分析: 综上所述,数学思维在编程中扮演着至关重要的角色。它不仅能帮助我们解决各种问题,还能优化代码和算法,提高程序的效率和可靠性。因此,作为程序员,拥有扎实的数学基础和数学思维是非常有益的。 https://blog.csdn.net/xiaofeng10330111/article/details/106086200
4.企业内部讲师激励制度实施办法1(1)主要是让学生通过用LOGO命令画图,初步感知计算机程序语言的作用;通过对绘图基本命令、过程的定义、保存及调用、带参数的过程等知识的学习,渗透计算机程序语言和编程等方面的知识,培养学生利用计算机语言解决问题的能力和兴趣。 在本单元中主要是让学生掌握LOGO语言基本命令,并能画出简单的图形,最好是能将重复命令用好用http://www.360doc.com/document/24/0806/14/79930059_1130603501.shtml
5.关于数学建模竞赛的一点思考总结和建议南华大学数模中用到的模型还有很多没有说到,例如微分方程模型、数值计算、蒙特卡罗方法等等,学习模型是个长期积累的过程,要多学习,多应用,一个模型只有实际去解决一个问题并得到结果,才能算是真正学会。 7.关于程序员 程序员的任务是把建立的模型用程序求解,还要解决比赛过程中遇到的各类与计算机有关的问题,下面分软件来谈谈https://slxy.usc.edu.cn/info/1076/1439.htm
6.混合运算教学设计作为一名教学工作者,常常要写一份优秀的教学设计,教学设计是实现教学目标的计划性和决策性活动。写教学设计需要注意哪些格式呢?以下是小编精心整理的混合运算教学设计,供大家参考借鉴,希望可以帮助到有需要的朋友。 混合运算教学设计1 教学目标 1、使学生联系具体的问题情境,理解并掌握分数加减混合运算的运算顺序,能正确https://mip.ruiwen.com/jiaoxuesheji/3490861.html
7.小学数学单元整体教学设计(通用14篇)作为一名教学工作者,通常需要用到教学设计来辅助教学,教学设计把教学各要素看成一个系统,分析教学问题和需求,确立解决的程序纲要,使教学效果最优化。那么大家知道规范的教学设计是怎么写的吗?下面是小编为大家收集的小学数学单元整体教学设计,仅供参考,大家一起来看看吧。 https://www.oh100.com/kaoshi/jiaoxuesheji/624801.html
8.怎么样学习编程(精选12篇)(2)完成“单人飞行棋”算法设计——流程图 学习工具向学生提出“算法与程序设计有怎样的联系”的问题,要求根据设计思路在学习网站“算法设计”栏目中尝试完成“简易飞行棋”算法设计流程游戏,学生拖动散乱的算法步骤到流程图中,形成完整算法及分段的程序代码(如图4、图5)。用Flash软件制作的动画,能用很直观的方式帮助https://www.360wenmi.com/f/filefq2v1fwe.html
9.怎么样学好c语言程序c语言如何学习怎么样学好c语言程序 ‘壹’ 怎样才能学好c语言 怎样才能学好C语言 1、学好C语言,你可以很好地应付任何一种编程工具。 2、一定要多上机练习,通过程式了解相关知识。几经反复方得正果。 3、不要把学习C语言当成一种任务,更不要把它看成很难完成的任务。要充满自信,只要是一个智力正常的人都能学好C语言。始终https://www.ultimate-communications.com/zh/language_416673
10.程序算法范文12篇(全文)“算法与程序设计”模块是一个过程性的教学, 是需要学生积累的一个过程。教师可以引导学生经历“理解——模仿——创新”这样的一个学习过程。要知道学生通过理解程序, 才能感知程序要做什么, 以及结果会是什么, 才能体验算法的奇妙, 熟悉程序的流程。理解后学生就可以模仿, 先学会走, 再学会跑, 学好了基础才能灵活https://www.99xueshu.com/w/ikeyfgyipoo2.html
11.怎样成为一个程序高手呢?我每天都要收到很多信,经常有人问我:面对众多的开发工具/语言,我该选择哪一个?怎样才能学好一门语言?怎样才能算是一个真正的程序高手?…… 首先,我不算是一个什么程序高手,我也就半吊子水晃晃荡荡。我不喜欢“程序高手”这个词,这个词比较的装B,--最多,只能算是一名“熟炼的开发者”而已,很多时候亦是半懂https://www.xiaohui.com/weekly/week/20000709.htm
12.上学期教学工作计划13篇难点:准确写出输入语句、输出语句、赋值语句. 三、教学过程: (一)复习提问、导入课题 1.算法的的基本逻辑结构有哪几种? 2.设计一个算法的程序框图的基本思路如何? 第一步,用自然语言表述算法步骤. 第二步,确定每个算法步骤所包含的逻辑结构,并用相应的程序框图表示. 第三步,将所有步骤的程序框图用流程线连接起https://www.liuxue86.com/a/4951923.html
13.做到这一点,你也可以成为优秀的程序员作为一个程序员,我经常会问自己一个问题: 优秀的程序员都具备哪些特质? 我总结过很多特质,例如: 有解决问题的能力 有独立思考的能力 有好奇心、有探索精神 逻辑清晰,能够用通俗的语言把技术问题讲清楚 有良好的英文阅读能力 数学好,算法好 经过一段时间的观察,我发现这上面的所有特质,都可以由一种行为习惯衍生https://www.jianshu.com/p/1359323adee0
14.学习SEO优化最常见的100个SEO问答很多人一直问我怎么才能学好seo或者是应该从哪里开始去着手学习呢?并且对于大多数想学习SEO的朋友们来说,开始的时候SEO是一个很神秘,很新奇的东西,其实说来学习seo是很简单的,但同时也是很困难的,为什么这么说呢? 说简单,学习SEO其实要学的技术尽管不多,但是一定要有清晰的思路,就会很快上手的了;说困难,其实就要https://www.niaogebiji.com/article-32844-1.html
15.程序员修炼手册Java程序的安全需要异常机制,这是必学内容。当然,也非常简单。学习过程中,先不要揪着什么自定义异常不放,学会基本用法即可。 第七步:数组和算法。学习数组时,注重结合循环管理数组。也要从底层内存理解数组,这既是学数组也是复习面向对象;再结合一些算法,比如排序和搜索算法,既练习数组的用法,也学习了算法知识,为https://www.bjsxt.com/xiulian.html
16.15道超高级大厂Java面试题!程序员必看!假设你正在爬楼梯。需要 n 阶才能到达楼顶。每次你可以爬 1 或 2 个台阶,有多少种不同的方法可以爬到楼顶呢? 题解 https://leetcode-cn.com/problems/climbing-stairs/solution/ 分析 和数据结构类似,算法也是程序员的核心素养。像排序、动态规划、递归、迭代、二分、分治、深搜广搜等基础算法,都是面试的重点https://maimai.cn/article/detail?fid=1649360656&efid=pJVyupHO_6Yy0O0WPXArzg
17.什么是算法?程序员怎样可以学好算法?如果你甘心在一家小公司,做简单的增删改查操作,每个月拿几千上万的工资,那没有问题。但如果你想要成为一名真正优秀的程序员,那你还是要好好学习算法。因为算法是程序员的内功,虽然我们很少需要直接去实现某些算法,但我们要知道自己调用的类库、接口的底层算法实现是怎样的,从而做出更好的选择,写出更高效的https://baijiahao.baidu.com/s?id=1772164475063737438&wfr=spider&for=pc
18.c语言学习方法先要明确运算符按优先级不同分类,《C程序设计》运算符可分为15种优先级,从高到低,优先级为1 ~ 15,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序。 二。学好C语言的四种程序结构 (1)顺序结构 顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句https://www.jy135.com/edu/60273.html
19.一个优秀的算法工程师必须具备哪些素质?首先来看一个高度相关的问题:一个优秀的算法工程师必须具备哪些素质?我们给出的答案是这样的: 数学知识 编程能力 机器学习与深度学习的知识 应用方向的知识 对自己所做的问题的思考和经验 除去教育背景,逻辑思维,学习能力,沟通能力等其他方面的因素,大多数公司在考察算法工程师的技术水平时都会考虑上面这几个因素。接https://www.elecfans.com/d/725376.html
20.c语言学习心得15篇3、在编程之前要考虑好程序的算法,写出流程图,这样才能更加快速的、有效的编程。 4、要分清楚各个变量的生存期和作用域,不能发生混淆,以致发生错误。 5、 数组和指针是c语言的经典之处,可以通用,并且互相转换,具有非常强大的功能,但是使用不当的话,会造成程序出错,打乱原有程序的'规律,使可读性明显变差。 https://www.cnfla.com/xindetihui/3222018.html
21.小学数学三年级上册说课稿15篇作为一名优秀的教育工作者,常常需要准备说课稿,说课稿有助于学生理解并掌握系统的知识。怎么样才能写出优秀的说课稿呢?以下是小编为大家收集的小学数学三年级上册说课稿,欢迎阅读,希望大家能够喜欢。 小学数学三年级上册说课稿1 一、教材与学情分析: 人教版第五册第七单元是分数的初步认识,包括分数的初步认识和分数https://www.qunzou.com/jiaoxue/shuokegao/299512.html
22.怎么学习C语言?数字等等,例如dkQW@#$%%04980xvvxvVBC!@#$011.8277RRASdf1, 编写程序,将其中连续的数字找出并https://www.zhihu.com/question/4256913856/answer/48402213075
23.三年级上册数学说课稿作为一名优秀的教育工作者,编写说课稿是必不可少的,说课稿有助于学生理解并掌握系统的知识。那么你有了解过说课稿吗?下面是小编帮大家整理的三年级上册数学说课稿,欢迎阅读与收藏。 三年级上册数学说课稿1 尊敬的各位评委、老师们: 大家好!我今天的说课题目是有除法的四则混合运算 https://www.fwsir.com/ziliao/html/ziliao_20221125171807_2099628.html