C++程序设计课程教学的改革和实践

时间:2022-06-14 09:32:34

C++程序设计课程教学的改革和实践

摘要:本文针对《C++程序设计》课程教学中存在的问题,从教学方法、教学手段、实践环节、课程设计以及考核方式等方面进行了教学改革,通过比较两个年级学生的学习效果,该教学改革达到了提高学生编程能力、改善教学效果的目的。

关键词:面向对象程序设计C++程序设计语言教学改革和实践算法教学计算机科学与技术专业

1 概述

C++是当今面向对象软件开发的主流语言,也是高校计算机及相关专业的一门重要基础课。根据我校三本学生的实际,传统的教师课堂主讲、学生课下自主学习的教学方法已经不能适应我校学生的学习需要。为了加深学生对C++知识点的掌握程度,切实提高学生的程序编写能力,对《C++程序设计》课程的教学进行了改革和实践。

2 教学实际中存在的问题

2.1 c语言基础薄弱,抽象思维能力差 虽然我校学习《C++程序设计》的学生,都已学习过《C语言程序设计》,但由于没有使用C语言开发项目的经验,所以对后续学习很重要的基础知识点,例如自定义数据类型、自定义函数、指针的掌握不够,在此基础上再来学习C++中的更多新知识,自然造成理解上的困难。特别是学生易受C语言面向过程的编程模式的影响,思维很难向面向对象的编程模式转变。

2.2 自主学习能力不够 我校三本学生中的大多数学习兴趣难以持续,学习主动性不够,不会很好地预习和课后复习,更不会主动的吸取相关知识,每次等老师讲解,课下上机实践较少,所以传统的教师课堂主讲、学生课下自主学习的教学方法在我校教学中并不受用。

2.3 知识点驱动的教学方法 传统教学中采用知识点驱动,按照知识点之间的先后顺序,先进行知识点的讲解,然后用小案例来帮助学生理解和消化,这样的教学方法,使得学生在有参照的情况下,当下能编写程序,但是学生对知识点的应用能力、独立编程能力以及解决大型实际问题的能力会比较差。

2.4 考核方式重理论轻实践 我校在以往的教学中采用闭卷笔试的考核方式,学生为应付考试而死记硬背理论知识。学生虽然能掌握基本概念和基础知识,顺利通过课程考试,但是知识的综合运用能力、实际编程能力在考试中并不能体现。

3 教学改革的基本思路与开展方法

3.1 重视第一节课的教学 在第一堂课上,给学生分析该课程在专业知识领域中的地位和作用,演示一些用C++语言实现的有趣而实用的案例,比如“图书管理系统”、“可视化计算器”,介绍C++的学习方法与经验等,通过这些让学生在第一节课上了解到该课程的重要性、趣味性以及可学性,以提高学生的学习兴趣和学习信心。

3.2 阶梯式教学方法,采用大案例贯整个教学过程

在学期的前四周,做好开课前的前导课程《C语言程序设计》的复习工作,主要复习函数、指针、结构体等难点,突出C++对C的扩展,如符号常量、引用、名称空间等,巩固学生的C语言基础,为后面C++类与对象、继承、多态的学习打下基础。在教学过程中把知识点融入到实际的案例中去,案例选用规模较大、典型、有实用价值的,比如“可视化计算器的开发”,该案例代码的编写与调试可贯穿于整个教学过程,这样既可以提高学生的学习兴趣,又有利于知识点的巩固,以提高学生的实践动手能力和解决实际问题的能力。

3.3 各种教学手段相互补充 在教学中综合利用多媒体教学、板书教学、网络教学等多种教学手段,取长补短,提高课堂教学效果。课堂教学中使用多媒体与板书相结合的手段,比如讲解算法的设计过程,采用板书的形式,放慢讲解速度,加深学生的印象;对于课程中难以理解的抽象内容,采用多媒体进行直观展示和动态模拟。采用网络教学作为课堂教学的有益补充。利用网络如Email、QQ,学生与教师以及学生与学生之间可以就学习中的问题进行交流。借此,学生的问题能够得到及时解决,教师也能及时获得教学效果的反馈信息。

3.4 充分利用网络教学平台,培养自主学习能力 在教学过程中,在学校网络课程平台上搭建教师、学生交互式C++课程网络学习平台,提供课堂教案、教学视频、示例代码、课堂作业等共享资源以充实教学内容,进行在线答疑等,增加师生、生生互动,最大限度地发挥学生学习的积极性和主动性,激发学生学习的兴趣。

3.5 突出面向对象的编程思想,注重算法教学 课程一共48学时,其中理论36学时,实践12学时,针对课时较少的实际,在课程教学中,不能再泛泛介绍面向对象C++的语法框架,应注重算法和面向对象程序设计方法,在寻找算法中不断培养学生的独立思考和创新能力,突出C++的特性:封装、继承、多态,增加STL部分的教学内容,让学生在面向对象的程序设计过程中体会面向对象的编程思想。

3.6 加强实践教学,突出编程能力的培养 在C++语言的实践过程中,采用Visual C++ 6.0中的控制台方式。在实践内容方面,基于“少一些验证性的实践内容,多一些设计性、综合性的实践内容;实践的内容不仅要有针对性,更要能紧密联系实际;实践的内容尽可能要求学生能够独立设计、编程,教师在实践中仅起引导和辅导的作用”的原则,根据课时共安排了“C++编程基础”(侧重于C++对C的扩展)、“类与对象”、“构造函数与析构函数的定义与使用”、“运算符重载、静态成员、友元函数”、“继承”、“多态与模板”等六次实践,通过实践,进一步巩固了课堂学过的内容,培养了学生的创新能力。

3.7 开展课程设计 课程学习结束后,针对所学内容安排为时2周的课程设计。学生按3人进行自由组合分组,选出一名项目负责人。针对老师给定的题目,进行相关的调研工作,从系统需求出发,完成“功能设计”、“模块划分”、“算法设计与优化”并最终“系统实现”,在整个课程设计的过程中,强调各组员的团队协作能力,文档写作能力和程序开发能力,“项目负责任人”对组员进行任务分配、项目监控和小组评审考核。课程设计完成后,各小组抽一名组员组成答辩小组,完成设计成果的答辩与判分,有效减少了小组中个别组员不参与项目开发,享受其他组员劳动成果的现象。

3.8 考核方式采用实践、理论、课程设计相结合的多元化方式,突出实践能力 课程采用理论考试(50%)、实验考查(30%)和课程设计(20%)相结合的方式进行考核。理论考试中考查学生对基本概念的理解和对基础知识的掌握程度,包括课堂测验(30%)、期中考试(30%)和期末考试(40%),通过这些考试可检测学生每一阶段知识点的掌握情况。实验考查着重考查学生的动手能力,包括实验报告书写能力和程序代码开发能力。课程设计考查学生对知识的综合应用能力、团队协作能力。通过多元化考核,激励学生的学习主动性,从而全面提高教学质量。

4 教学效果

08级计算机科学与技术专业教学中采用传统的教学方式、09级教学中采用改革后的教学方式。09级学生相比08级学生而言,更能通过各种方式与任课老师沟通,讨论学习中遇到的问题,比较多的同学会利用网络平台选作练习题,检测自己的学习效果。从课程设计《可视化计算器的开发》的完成情况来看,09级学生能进行团队合作、问题分析、程序设计、代码编写、报告写作等,他们的团队协作能力、问题分析能力、程序设计能力以及报告的写作能力均好于08级学生。从期末考核结果来看,09级学生的及格率为95.34%,优秀率为25.17%,08级学生的及格率为85.33%,优秀率为15.12%。

5 结论

针对三本学生学习《C++程序设计》课程中实际遇到的问题,从教学方法、教学手段、实践教学、课程设计以及考核方式等方面对课程教学进行了改革,通过比较计算机科学与技术专业08级与09级学生的学习效果,09级学生在自主学习能力、知识掌握情况、算法分析能力以及实际编程能力等方面均较08级学生有所提高,可以看出该改革达到了提高学生编程能力、改善教学效果的目的。

参考文献:

[1]陈志泊,王春玲.面向对象的程序设计语言―C++[M].北京:人民邮电出版社,2002.

[2]周立章.C++面向对象程序设计课程教学探索与实践[J].西华大学学报(哲学社会科学版),2005,增刊:257-258.

[3]孙庚.项目教学法在“C++程序设计”课程教学中的实践[J].教育与教学研究,2008(2):51-54.

[4]钱能.C++程序设计教程[M].北京:清华大学出版社,2005.

[5]吴乃陵,况迎辉.C++程序设计[M].北京:高等教育出版社,2006

[6]聂永红,李春贵,刘永娟.《高级语言程序设计》课程的改革与实践研究[J].教学与管理,2006,(18):93-94.

[7]符蕴芳,赵英豪.面向对象程序设计教学改革与实践[J].中国成人教育,2010,(11):184-185.

上一篇:基于网络条件下的思政课堂教学初探 下一篇:关于中职院校会计教育的思考