




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE12009年全国技工教育和职业培训优秀教研成果评选活动参评论文对技校C++教学方法的探索对技校C++教学方法的探索摘要:C++是计算机程序设计的入门课程,是学习计算机后续课程的基础,在计算机课程学习中具有重要作用。本文从培养学生学习兴趣出发,以提高C++课程教学质量、增强教学效果、提高学生分析和解决问题能力为目的,探讨了不同的教学方法对于C++学习所起到的作用。关键词:C++;程序设计;教学方法《C++程序设计》是计算机专业开设的一门重要的基础性课程,目的在于让学生掌握程序设计的基本方法,逐步形成正确的程序设计思想,同时还能够熟练地使用C++进行程序设计和调试,为其他程序设计课程的学习和应用打下基础。通过长期的教学实践发现学生普遍认为C++枯燥难学、概念复杂、容易出错,由此产生了畏学、厌学情绪,严重影响了课程的进一步学习。为了解决学生面临的这些问题,本文针对课程本身特点,结合各种教学方法以及教学实例对如何激发学生的学习兴趣,刺激学生的求知欲从而提高课程的教学质量,增强教学效果等方面进行了深入探讨。一、明确学习目的,激发学习兴趣学习兴趣就是学生在心理上对学习活动产生爱好、追求和向往的倾向,是推动学生积极主动学习的直接动力。学生只有对所学课程有浓厚的兴趣,才能积极主动和富有创造性地去完成学习任务。可见,学生的学习兴趣直接关系到教学效果的好坏。那么教学中如何激发学生的学习兴趣呢?1.明确学习C++的重要性学习的重要性也就是这门课程的有用性。在社会竞争日益激烈的今天,学生学习更看重的是实用性,是课程学习对以后的工作和竞争所起到的作用。当学生深刻的领会到了课程学习的重要性之后兴趣也就油然而生了。(1)目前市场对软件工程师以及熟练掌握计算机程序设计的其他专业复合型人才的需求缺口很大。C++作为一种通用的程序设计语言,广泛的应用于软件设计和开发当中。熟练掌握C++程序设计语言,必然会成为未来就业竞争中的一个重要的筹码。(2)C++是许多其它商业软件的开发工具。如当今世界上最流行的工程制图软件包AUTOCAD就用C++开发的,另外大家所熟知的UNIX操作系统就完全是由C++编写的。(3)C++是其它面向对象语言以及网络编程的基础。面向对象编程语言如VB,VC++等虽然摆脱了面向过程语言的许多细节,使设计程序轻松很多,但用户对其对象化的事件仍需编写代码来驱动实现。这些代码里面仍包含结构化程序设计的顺序、选择、循环三种基本结构。因此C++的编程思想是面向对象语言程序设计的理论基础。另外,随着Web网页技术的不断普及和发展,人们制作漂亮的、个性化的Web网页并不是件难事。但深层次的网络技术开发仍然必须掌握一定的编程工具如CGI程序、ASP脚本语言,JAVA等等。实际上,这些流行的网络编程语言很多混合了C++的语法,这类语言在数据、运算符、函数的调用、程序语句的书写、循环的控制上都极为相似。因此,学好C++以后再学习这些面向对象语言或网页编程语言就会变得轻而易举。(4)C++编程有助于训练和培养计算机思维。C++的学习不仅是一门纯粹的技术或技能,而且是一种思维训练的工具,有助于锻炼人们的思维。这就像数学对人的思维所起作用一样,使人的思维更精确、更细致。当学生对该门课程的重要性有一个比较深刻的认识的时候,自然会对把C++的学习摆在一个较重要的位置加以重视。这也是培养学生兴趣的一个重要的方面。2.展示C++语言程序设计的魅力,刺激学生的求知欲将抽象的语言形象化,使枯燥的机械性的学习过程转化为一种趣味性的认知过程,将C++语言所拥有的魅力展现在学生面前,让学生感受到C++学习其实也是一项其乐无穷的事情。(1)趣味性问题作为教学实例C++语言的学习过程是一个相当抽象过程,各种各样的语句都是以符号的形式展现在面前,学生难免会对此产生厌倦。此时,可以以趣味性的实例作为教学的例子。在讲解一个新的知识体系前,运用即将学到的知识设计一个吸引学生的小游戏或智力问题。课前首先展示所设计的内容,从侧面引导学生,让他们有“只要我学会了这部分知识也能自己做出来”的信心,这样会大大提高学生的学习热情。比如,在讲解选择与循环结构之前,课堂上给学生展示了一个“猜数游戏”,让学生对此产生兴趣,提高上机的积极性。当他们学习了if语句后就可以编出程序的判断部分了,学习了循环语句后就可完成一次猜数字的过程,而学习了循环嵌套后,则可实现连续猜数字,成为一个完整的游戏。从具体实例切入,由浅入深、循序渐进的教学模式能够很好的调动学生学习的主动性,培养学生对课程学习的兴趣。(2)选择经典的数学问题作为课堂案例正如长篇大论的讲道理往往不如巧妙的使用一个典故或者一句名言更具说服力一样,经典的数学问题作为课堂案例会比一般的练习题更能引起学生兴趣。比如,“百钱百鸡”问题,它是用C++程序解决数学方程运算问题的一个典型实例,用到了程序中典型的算法—“穷举法”。将这样经典数学问题作实例,既学习了算法,同时还让学生体会到运用C++编程解决实际问题的乐趣。又如演示数学中一元二次方程的求解程序,用所学的知识解决现实问题,使学生能够感受到理论在实际中的应用,从而进一步激发他们树立更高、更远的目标。实践表明,这些学以致用的实例能大大激发学生学习C++学习热情。在学习过程中,要让学生体验到成功的欢乐,获得成就感,强化学生的求知欲望,从而使学生学习C++的兴趣和热情能够持久保持。二、多样化的教学方法1.启发式教学法程序设计方法是多种多样的,大多数问题都存在不止有一个解法。因此在教学过程中不要对学生进行刻意的限制,鼓励学生按照自己对问题的理解采用自己认为合适的方法进行处理。教师则对各种方法进行总结,并对各种方法的优缺点进行讲解。通过这种引导启发式的教学方法来调动学生的积极性。例:求100以内的所有偶数之和,可以采用while语句、用do…while语句和for语句。教师在教学过程中先用三种语句写出程序以及运行结果,然后再演示这三种语句的流程图,最后引导学生进行思考和比较,让学生在解决实际编程问题时可以灵活选用多种方法来实现。while语句voidmain(){inta=2,sum=0;while(a<=100){if(a%2==0) sum=sum+a; a++;} cout<<"sum="<<sum<<endl;}do…while语句voidmain(){inta=2,sum=0;do{if(a%2==0)sum=sum+a;a++;}while(a<=100); cout<<"sum="<<sum<<endl;}for语句voidmain(){inta=1,intsum=0;for(a=1;a<=100;a++) {if(a%2==0)sum=sum+a; elsecontinue; a++;} cout<<"sum="<<sum<<endl;}结合上面程序和流程图,使学生明白三种语句之间的内在关系以及各自的特点,使学生真正受到启发,以后遇到相似问题就可以自行选取最适宜的语句来解决问题了。在上机练习中,再给出3-4道类似题目,加强学生的实际应用。这样的教学不仅能够调动学生的主观能动性,而且还能让他们在不知不觉中对所学知识进行一个巩固,加深对C++本质的认识。2.案例比较教学法结合课堂要求,选择恰当案例,采用多个案例演示比较,经过学生的讨论后,及时做出讲评,并再次讲授案例分析中所需要用到的理论知识和技能。通过对各种案例的比较能够让学生深刻领会到不同的语句之间的区别和联系,有助于他们准确的运用。例如,在学习函数这一章时,为了说明函数调用时参数传递的方式,设计如下案例供学生讨论。案例:交换主函数两个变量的值,要求:主函数main中两个变量,采用函数调用实现变量交换后,然后输出交换后结果,用swap函数实现。学生经过分析讨论,得到以下四种方法:程序1:swap(intx,inty){inttemp;temp=x;x=y;y=temp;}voidmain(){inta=10,b=20;swap(a,b);cout<<a<<”,”<<b<<endl;}这个程序中实参向形参传递数据的方式是值传递。当调用swap时,将实参a和b的值复制给形参x和y,并在swap函数的内部完成了x和y的交换,由于形参x、y和实参a、b各自拥有自己的内存单元,因此a和b并没有完成交换,程序运行结果错误。程序2:swap(int&x,int&y){inttemp;temp=x;x=y;y=temp;}voidmain(){inta=10,b=20;swap(a,b);cout<<a<<”,”<<b<<endl;}这个程序中采用的是另外一种参数传递方式:使用引用。此时实参a初始化形参x,实参b初始化形参y,在swap函数中实现了a和b的值交换。程序3:swap(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}voidmain(){inta=10,b=20;swap(&a,&b);cout<<a<<”,”<<b<<endl;}这个程序中采用的是地址传递的参数传递方式。此时通过两个指针p1和p2分别指向变量a和b,在swap函数中通过指针实现了a和b的值交换。程序4:swap(int*p1,int*p2){int*p;p=p1;p1=p2;p2=p;}voidmain(){inta=10,b=20;swap(&a,&b);cout<<a<<”,”<<b<<endl;}这种参数传递方式虽然也是把地址传递给指针变量,但在swap函数中,进行交换的却是两个指针,也就是交换的结果是p1指向b,p2指向a,而a和b的值并没有交换。因此运行结果也是错误的。通过这一案例几种方法的对比、讨论、分析和总结,学生很快就能从理论上掌握函数的调用及参数的传递方法。同时结合上机实践就能更好的理解和运用所学的知识。3.发散思维教学法要在有限的课时内完成相应的教学任务,又让学生掌握必要的知识,只讲语法不行,关键是让学生学会如何活学活用,培养学生的发散性思维。同样的一个问题要引导学生从不同的角度来进行思考,通过自己对问题的理解采取不同的方法来解决。这样不仅有助于学生对知识的巩固,同时还能让学生具有灵活的应变能力,将机器语言真正转化为“自己的语言”。如学习条件结构时,通过对学生成绩评定等级来讲解不同的条件结构和语句。例:从键盘上输入一个成绩,如果大于等于90,输出“优秀”;如果大于等于80小于90,输出“良好”;如果大于等于70小于80,输出“中”;如果大于等于60小于70,输出“及格”;如果小于60,输出“不及格”。方法一:if语句voidmain(){ints;cout<<"请输入成绩";cin>>s;if(s>=90){cout<<"优秀"<<endl;}elseif((s>=80)&&(s<90)){cout<<"良好"<<endl;}elseif((s>=70)&&(s<80)){cout<<"中"<<endl;}elseif((s>=60)&&(s<70)){cout<<"及格"<<endl;}else{cout<<"不及格"<<endl;}}方法二:switch语句voidmain(){ints,i;cout<<“请输入成绩"; cin>>s; i=s/10; switch(i) {case10: case9: cout<<“优秀”<<endl;break; case8: cout<<“良好”<<endl;break; case7: cout<<“中”<<endl;break; case6: cout<<“及格”<<endl;break; default: cout<<“不及格”<<endl;break; }}从上面例子可以看出,同一问题可以有不同的解决办法。用if语句虽然可以实现多分支结构,但比较烦琐;switch语句是专门用于实现多分支结构程序的;用switch语句实现的程序都可以用if语句实现,反之不成立。通过这种发散思维训练,可使学生轻松掌握条件语句的格式和使用方法,深刻体会C++的灵活,激发学生思考和学习积极性。4.互动教学法针对不同专业的学生,可以结合专业做程序设计。在课程进行到一定程度以后,开始搜集学生在学习专业课程中所遇到的各种计算或设计难题,从中寻找适合用C++来解决的问题,由浅入深地教会学生如何运用所学的C++知识来解决自己的专业难题,同时也让他们明白了自己的专业中开设《C++程序设计》这门课程的必要性。下例为统计学中提炼出的计算模型。例:编写一个函数计算1k+2k+3k+…nk,其中n和k在主函数中输入,并在主函数中输出计算结果。提示:可以写两个函数,一个计算nk,另一个调用前面的函数计算机各项和。代码如下:#include<iostream.h>longf1(intn,intk);longf2(intn,intk);voidmain(){longs;intn,k;cout<<"请输入n的值:";cin>>n;cout<<"请输入k的值:";cin>>k;s=f1(n,k);cout<<"1k+2k+3k+…nk="<<s<<endl;}longf1(intn,intk)//求和{inti;longsum=0;for(i=1;i<=n;i++) sum+=f2(i,k);returnsum;}longf2(intn,intk)//求n的k次方{inti;longs=1;for(i=1;i<=k;i++) s*=n;returns;}这道题很多学生在编程过程中,可以运行成功,但结果不对。我通过几个同学的代码比较,发现学生对函数的嵌套调用存在问题,于是就加强讲解和练习,通过与学生沟通,使学生掌握知识点更牢固。实践出真知。作为任课老师也在这种互动教学过程中不断丰富自己的教学资源与程序设计的思想和方法,通过学生将自己不曾涉足过的领域中的一些实践内容加以提炼、汇总,进一步丰富了《C++程序设计》课程的教学内容。三、上机实践与巩固上机这一环节是C++的重要组成部分。针对不同的学习基础和不同的学习要求,部署不同层次和梯度的作业,即保证大部分同学能够完成,也能使基础好的学生的得到相应的提高。因此,可以将作业分为基本笔必做作业和思考作业,这样也是引发学生学习兴趣的一个重要手段。程序设计技能的培养只有通过大量的编程训练和上机实践才能获得。为此,必须提供尽可能多的机时让学生进行程序的编辑、编译、调试和运行实践。以二维数组上机教案为例:=1\*GB4㈠、必做作业1、找出4*4二维数组中对角线上元素的最大值。(课本例题)2、将两个2*3的二维数组中的对应元素的值相加后存入第3个数组中,并输出到屏幕。(课本例题)3、数组a[3][4]共有多少个元素?行下标的下限和上限分别是多少?(二维数组定义理解)4、编程实现数组a[3][4]的引用,即每个元
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年节能、高效干燥设备项目申请报告模稿
- 2025年肿瘤类生物制品项目项目风险识别与评估综合报告
- 2025年脂环烃项目规划申请报告范稿
- 2025年塑料助剂:润滑剂项目项目风险识别与评估综合报告
- 2025年户外功能性照明项目项目风险识别与评估综合报告
- 短视频IP孵化合作协议书范本
- 2025年稀土永磁交流伺服电机及驱动装置项目提案报告
- 北京车牌转让协议书范本
- 高中主题班会 汲取“哪吒2”精神勇闯成长之路 教学设计 高中开学第一课主题班会
- 2025年灯饰照明:户内照明项目提案报告
- MA40系列智能型万能式断路器安装及调试
- 新款h2夜视移动电源
- 《Python数据可视化》教学设计
- 纸箱车间双色水性印刷机作业指导书及质量标准
- 2022-2023年(备考资料)辐射防护-医学x射线诊断与介入放射学历年真题精选一含答案10
- 浅谈班级的文化建设课题论文开题结题中期研究报告(经验交流)
- PMC年终个人总结精编ppt
- DBJ∕T 15-129-2017 集中空调制冷机房系统能效监测及评价标准
- Q∕GDW 11612.41-2018 低压电力线高速载波通信互联互通技术规范 第4-1部分:物理层通信协议
- 闽教版(2020版)六年级下册信息技术整册教案
- 疫情期间离市外出审批表
评论
0/150
提交评论