“C++程序设计”教学方法与体会

来源 :中国电力教育 | 被引量 : 0次 | 上传用户:jm8888jm8888
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:针对“C++程序设计”这门课程的特点,本文介绍了一些教学方法和体会。通过五年的教学实践,证明这些方法收到了良好的教学效果。
  关键词:C++语言;教学方法;面向对象;程序设计
  作者简介:刘灵丽(1977-),女,湖南郴州人,湘南学院计算机系,讲师,工学硕士,主要研究方向:图像处理、模式识别;曹菊英(1975-),女,湖南郴州人,湘南学院物理与电子信息工程系,副教授,工学硕士,主要研究方向:信息安全和计算机网络。(湖南 郴州 423000)
  基金项目:本文系湖南省自然科学基金(项目编号:07JJ6107)、湘南学院2009年院级教改课题青年项目(项目编号:09Q002)的研究成果。
  
  随着面向对象技术的广泛推广,“C++程序设计”课程被越来越多地选为高校计算机及相关专业的基础课程。[1]但由于一些原因使教学效果并不理想。如何在有限的学时内使学生尽快地掌握C++,是每位任课教师都面对的难题。笔者在实际教学过程中,经过不断探索,积累了一定的教学方法与体会,希望能起到抛砖引玉的作用。
  一、灵活运用多种教学方法,提高课堂教学质量
  1.实例演示,激发学习兴趣
  C++语言概念较多,语法比较复杂,如果只是就理论讲理论、照本宣科只能使学生厌倦疲劳,昏昏欲睡,学生不但记不住知识点,还会产生厌学情绪。因此,不妨在讲解本次课的内容之前,先演示一些实例,让学生先在感性上得到认识,[2]接着让学生带着问题去听讲,这样可以调动学生学习的积极性和主动性,活跃课堂气氛,激发学习兴趣。
  比如在介绍嵌套的if-else分支语句时,如果只是单纯地讲解该语句的语法和执行过程,学生听起来就觉得比较枯燥,但是如果先向学生演示一个通过输入成绩来决定输出等级是“优秀”、“良好”、“及格”还是“不及格”的程序,学生们的好奇心和学习的欲望就会被调动起来。然后借助演示程序,第一步,给学生们分析该程序的功能,提出实现该功能所需要使用的语句;第二步,在程序中讲解新语句的使用方法和注意事项。采取这种方法会使学生很快了解嵌套的if-else分支语句的功能和使用方法,并有一定的成就感,从而对程序设计产生浓厚的兴趣。
  根据需要,教师演示实例时,有时可以故意设置教学陷阱让学生的思想活跃起来,引导他们积极思考和探索,以达到教学目的。比如讲循环语句时,演示忘记修改循环变量的值,使出现死循环的现象。
  2.循序渐进的启发式教学
  C++知识系统性较强,新旧知识间环环相扣,联系紧密。教学过程中应注意通过复习旧知识来讲授新课程,分析它们之间的内部联系,比较它们的本质特点,发现它们之间的异同,对学生进行循序渐进的启发诱导,激发学生的学习兴趣,使学生易于接受新知识。
  比如关于拷贝构造函数,主要的知识点包括:[3](1)什么是拷贝构造函数?它的功能是什么?(2)什么是缺省的拷贝构造函数,它的功能是什么?(3)拷贝构造函数在什么时候被调用?(4)什么是浅拷贝和深拷贝?它们的作用分别是什么?我们如何引出这些知识点并让学生一一理解呢?
  首先通过例题复习“构造函数”的教学内容。接着修改例题,提出问题:如果要用一个已经存在的对象来初始化一个新对象,还是调用以前的构造函数吗?如果不是,它又调用了什么函数呢?引出拷贝构造函数这个新概念。接着通过例题讲解拷贝构造函数的定义和功能,并说明每个类中如果不显式定义拷贝构造函数,都会有一个缺省的拷贝构造函数。继续提问:拷贝构造函数是不是只在用已有对象初始化新对象时被调用,其它情况就用不着了呢?为了验证这个问题,提醒学生在拷贝构造函数中增加输出信息来判断何时被调用。接着增加一个重载运算符“+”的函数,完成两对象相加的运算,让学生通过分析输出结果,得出结论:当对象作为形参和返回值时也调用了拷贝构造函数。
  讲完了前三个知识点,教师总结两点:1)例题中的拷贝构造函数都是实现对象数据成员之间的逐域拷贝;2)如果没有定义拷贝构造函数,缺省的拷贝构造函数仍然能够实现逐域拷贝。那么是不是就不需要显式定义拷贝构造函数呢?由此引出第四个知识点。
  3.理论联系实际,用事例来解释抽象概念
  C++中很多概念比较抽象,难以理解。教师在教学中应尽量使用一些形象、直观、学生熟悉并且最能反映概念本质的例子来解释看似深奥的概念,这样不仅可以让学生快速理解概念,还能活跃课堂气氛,使教学摆脱枯燥的概念讲解,获得良好的教学效果。
  比如在讲友元关系是“不传递”时,可以举例,张三是李四的朋友,李四是王五的朋友,但张三不一定是王五的朋友。再比如由于众多的成员函数使C++的原代码通常比较庞大,学生认为自己面对的是一个庞然大物,通常不敢也不愿意下笔编写程序。教师可以借助庖丁解牛的故事,告诉学生成员函数是一个个相对独立的操作,每一个成员函数都是比较简单的,编程时可以先目无全牛,鼓励学生一个一个成员函数地来编。还比如在讲解数组时,告诉学生以前定义的单个、独立的变量是“散兵游勇”,势单力薄,无法或不方便解决复杂的问题,比如存储并计算一万名学生的平均成绩。而定义数组,一次得到的就是一个“兵团”,可以用来存放、处理许多相同类型的数据。“兵团”中的成员共用同样的名字,通过编号来对它们加以区分,这样通过循环语句可以方便地实现对各个成员的访问操作,使得本来需要几千行代码才能实现的功能,现在只需要几行代码即可实现。通过这种生动形象的事例,学生不仅掌握了数组的概念和使用方法,还能体会到数组巨大的威力,激发出浓厚的学习兴趣,提高学习语言的主观能动性。
  二、 加强上机实践,重视学生的实际操作能力
  “C++程序设计”课程,由于操作性很强,不能只讲理论,这好比学习滑冰,如果教练只是告诉我们每个动作怎么去做,但是自己从不实践,不亲自到冰上去试一试,是不可能学会滑冰的。因此,教学过程中,应该加强学生的上机实践,提高学生的实际操作能力。对于如何培养学生的动手实践能力,笔者的体会主要如下。
  1.精心准备上机操作内容
  对于上机实验的选题,提倡采用“小题目大任务”的方法。即每个实验的“小题目”看似是孤立的,但实际上是相互联系的,它们都是一个较大型较复杂程序的一个组成部分。比如,讲解了switch语句后,布置学生编写一个简单的菜单选择程序。讲解了循环语句后,布置学生编写一个输入密码进行身份验证的的程序,允许给用户三次机会。讲解数组后,布置学生编写一个对全班学生成绩进行处理的程序,如实现求总分、求平均分、排名、查找等功能。讲解了文件操作函数后,布置学生编写对文件进行读、写操作的函数。这一个个“小题目”似乎各自独立,但当学期结束时,如果要求学生把平时完成的一个个小程序改写成独立函数,并把这些函数通过组装便可得到一个通过菜单选择进行学生成绩管理的系统。这样一学期下来,学生会对C++这门语言产生一个整体概念,并有一定的成就感,增强对后续课程学习的信心。
  2.加强培养学生程序调试能力
  程序的出错原因有两类:一类是程序编译错误;一类是程序逻辑错误。对于第一类错误,教师告诉学生如何根据 output窗口提示的出错位置和出错原因进行改正。对于第二类错误,指导学生怎样利用Debug 窗口中提供的工具,实现重新开始、中止程序、中断执行、应用更改进入下一语句、跳入、跳过、跳出、执行到光标处、快速观察变量、寄存器、内存、堆栈和汇编等功能。
  授之以鱼,不如授之以渔。帮学生调通一个程序,不如教会学生怎样调试程序。教师在教学初期应多做控制台应用程序设计全过程演示,加强学生程序调试能力的培养。
  三、结束语
  教无定法,教学有法,以上这些方法可以激发学生的学习兴趣,使学生参与到教学活动中来,变被动的听课为积极的思考、参与,有利于学生掌握程序设计的基本思想,培养分析问题、解决问题的能力。从学院连续五年学生的平时表现和成绩来看,实践证明“C++程序设计”课程教学收效良好。
  
  参考文献:
  [1]张锦祥.高级程序设计语言课程教学改革与实践[J].浙江教育学院学报,2007(7):71-76.
  [2]贾振华,李瑛.《C++程序设计》课程教学方法探析[J].华北航天工业学院学报,2006(4):47-49.
  [3]谭浩强.C++程序设计[M].北京:清华大学出版社,2004.
   (责任编辑:苏宇嵬)
其他文献
摘要:会计人员的能力培养不仅是会计教育改革的目标,也是推进会计行业和市场经济健康发展的客观需要。但目前关于如何构建会计人员能力体系并没有取得共识。本文在借鉴国外研究成果的基础上构建了以可持续发展观为指导的会计人员能力体系。  关键词:可持续发展;会计人员能力体系;构建  作者简介:张彩平(1977-),女,湖南浏阳人,南华大学经济管理学院会计系教师,讲师,主要研究方向:会计理论和环境会计;阳秋林(
期刊
摘要:大学教师人力资本是大学的重要生力军,对大学的长远发展起着不可估量的作用。本文借鉴企业人力资本相关理论分析大学教师人力资本权益的实现问题,认为大学教师同样拥有大学决策权。基于人力资本产权的大学教师参与决策的权力真正得以实现,需要思想革新和制度革新。   关键词:大学教师;人力资本权益;决策权  作者简介:洪源渤(1957-),男, 辽宁北宁人, 长沙理工大学党委副书记、副校长,教授,管理学博士
期刊
摘要:青年学者是高校教师队伍中的新鲜血液。本文针对高学历青年教师在讲课中出现的一些问题,从教师讲课与毕业论文答辩的区别入手,论述了从青年学者成长为教师的过程中,通过自身思想意识转变,区分课堂讲授方式等与论文答辩的不同之处,从而成长为合格教师,并提出“经营”讲课对提高教学质量的重要性。  关键词: 青年学者;教师;讲课;论文答辩;区别  作者简介:刘凤珠(1963-),女,河南郑州人,郑州轻工业学院
期刊
摘要:本文阐述了SAP系统(基于客户/服务机构和开放系统的集成的企业资源计划系统)的用户操作的基础知识,讲述了标准用户管理的现状与不足,引入了更高级的SAP系统的用户管理模式——CUA(中央用户管理),介绍了采用该种模式的前提条件,详细讲述了CUA模式下,高级用户管理的先进性与操作步骤,包括搭建步骤与移除步骤——CUA的搭建,子系统的加入步骤以及暂时与永久移除子系统的操作步骤和彻底移除CUA的操作
期刊
摘要:教学秘书是高校最基层的教学管理人员,教学秘书工作的科学发展对提高教学质量、保障教学秩序、促进学校发展有着重要意义。本文阐述了高校教学秘书工作科学发展所面临的问题,提出了促进其科学发展的策略。  关键字:教学秘书工作;教学管理;科学发展  作者简介:占洁(1982-),女,浙江杭州人,浙江医学高等专科学校药学系,研究实习员,主要研究方向:教育管理;钟雅文(1978-),女,浙江杭州人,浙江医学
期刊
摘要:排课管理工作是学校教务工作的重要组成部分,在上海电力学院实施二级管理体制变革的背景下,排课管理工作也实施了二级管理分工,但在实际排课过程中,仍存在教务处管得过宽、过细的问题,适时转变排课方式是深化二级管理体制改革的一个重要方面。  关键词:二级管理;一级排课;二级排课  作者简介:张同心(1982-),男,河南项城人,上海电力学院教务处,助教,历史学硕士,主要研究方向:中国近现代史;李永斌(
期刊
摘要:期中考试、期末考试作为一种教学手段,是对学生阶段时间学习的测试与总结,是对教学效果的一个反馈,也是对后阶段学习和教学的参考。所以,考试成为教学的一个环节,它的意义在于评价的科学性、合理性和公平性。本文就哈尔滨电力职业技术学院2008~2009第一和第二学期期末考试的部分科目进行抽样调查统计,并对统计结果进行分析,最后笔者对试卷命题提出建议。  关键词:试卷命题;教学;教师  作者简介:索春梅
期刊
摘要:实践创新能力是人类进步的灵魂,是国家对高素质人才的根本要求。电子信息行业是发展快速的行业,电子信息技术已经渗透到人们生产和生活的各个领域,处于技术最前沿,该行业对人才的需求无疑从数量上还是层次上都有更大更高的需求。该专业知识结构和特点是对学生的实践创新能力要求更高。结合电子信息工程专业的特点,进行教学改革,探寻提高该专业大学生实践创新能力的措施非常必要。  关键词:电子信息工程;教学改革;措
期刊
摘要:随着发电新技术、新设备的应用和发电企业岗位设置的变化,传统基于学科体系的人才培养方案已经显现出与岗位需求的脱节,不能适应企业的需求。利用现代职业教育理论中基于工作过程的课程体系开发方法,针对集控运行岗位的典型工作任务,制定出具有高职高专特色、适应岗位需求的人才培养方案。  关键词:工作过程;行动领域;学习领域;人才培养方案  作者简介:杨小琨(1973-),男,河南林州人,郑州电力高等专科学
期刊
摘要:本文阐述了创新人才培养的关键是要建设一支高素质创新型的教师队伍。指出了创新型教师应当具备的素质。深入分析了高校教师在教育观念、敬业意识、教学方法、实践能力等方面仍存在问题。提出了解放思想,树立全面的教育理念;注重科学研究,提高业务能力,优化知识结构;深入研究教育规律,充分利用现代化教学手段,探索科学的教学方法;高校要建立激励机制,调动教师开展创新的积极性等措施,加强创新型教师队伍的建设。  
期刊