公务员期刊网 论文中心 正文

C++程序设计教学方法研究

C++程序设计教学方法研究

摘要:为了提高C++程序设计课程的教学效果,培养学生的程序设计思维和能力,采用有效的教学方法是非常必要的。本文基于C++程序设计课程教学现状的分析,对课程教学方法进行了研究,设计了理论教学和实验教学的教学方案,阐述了教学方案的实施细节。实践结果表明,采用该方案组织的课程教学能够有效提高学生的学习效果。

关键词:C++;程序设计;教学方法;项目驱动

1引言

C++程序设计是南通大学计算机相关专业的专业基础课。课程教学的主要目的是培养学生的程序设计思维和能力,为后续学习专业课程打下坚实的基础。程序设计能力是计算机相关专业能力的重要组成部分[1],将直接影响学生后续课程的学习和未来发展。作为面向对象的程序设计语言课程,C++程序设计的内容既包含了面向过程的程序设计,也包含面向对象的程序设计[2],内容相对较复杂,学生学习有一定的难度。由于C++程序设计课程的重要性,很多教师对课程的教学方法进行了探讨。陈晋音等引入翻转课堂为C++程序设计课程设计了相应的教学方法[3]。赵宇晴等根据认知任务分析的方法和过程,设计了C++程序设计的教学过程[4]。梁凤兰探讨了案例教学在C++程序设计课程教学中的应用方法[5]。针对南通大学计算机相关专业的学生,任课教师曾作了很多尝试,但教学效果一直不太理想,课程不及格率居高不下。造成课程教学效果不佳的主要原因包括:(1)缺乏必要的课程基础知识、非图形化的编程教学及缺乏数据共享手段,造成学生学习的动力和兴趣不足。(2)重理论、轻实践的课程教学安排和考核方法导致部分学生通过死记硬背语法规则和典型例题来应付考试,学生缺乏正确的学习方法。(3)面向对象程序设计未能贯穿整个教学过程,且学时安排过少,造成学生对面向对象程序设计方法的掌握普遍不好。(4)电子产品严重挤占了学生的学习时间,造成部分学生的学习时间严重不足[6]。为了提高C++程序设计课程的教学效果,本文基于课程教学现状的分析,针对课程教学过程中所存在的问题,对课程教学进行研究和实践。相比以理论教学为重点的教学方法研究[3-5],本文研究了教和学的整个过程,设计了适应学生学习特点和C++知识结构的课程教学方案。

2教学过程

2.1理论教学

理论教学的目的是使学生在熟悉C++语法规则的基础上,培养学生程序设计思维和能力。理论教学的效果直接决定课程的教学效果。在C++课程理论教学过程中,主要从以下方面进行研究和实践。(1)构建学生学习的知识基础。根据学习迁移理论[7],学生已有的知识会对他们接受新知识的程度影响很大。为了构建学生学习的基础知识,在课程开始阶段安排4个学时讲授计算机的组成、信息的表示和存储、内存的构成和访问方法以及程序的执行过程等课程基础知识,以此来支撑后续内容的学习,从而帮助学生更好地理解所学内容。(2)激发学生的学习兴趣。兴趣是最好的老师[8]。如果学生对课程内容缺乏兴趣,则无法调动他们学习的积极性、主动性和探索精神。在教学过程中,从以下方面激发学生的学习兴趣:①通过操作系统和数据结构课程部分实验源代码和运行效果的展示,使学生了解C++程序设计对后续专业课程学习的作用,从而认识到学好C++程序设计是“有用”的。②向学生展示C++语言编写的“贪吃蛇”、“五子棋”等游戏,并对源程序中部分代码进行修改,演示修改后的效果,鼓励学生在课程的学习过程中,根据所学内容对相应源程序进行修改,从而理解C++是“有趣”的。③在课程前期,通过提供学习资源和课外辅导,给学生引入BC++和VC++两种图形界面设计方法,供有兴趣的学生选择学习,从而理解C++是可以“图形化”的。(3)调整课程教学内容的组织顺序。为了使学生尽早接触文件和面向对象程序设计,加深学生对C++及面向对象程序设计的理解,在课程教学过程中,将课程内容的组织顺序调整为“基本数据类型和表达式、文件、函数、面向对象程序设计基础、控制结构、数组、指针、结构体”,即将文件、函数和面向对象程序设计基础内容提前。课程进行过程中,要求学生在程序设计时将输入数据首先写入文件,程序调试时直接从文件中读取数据;在学生完成函数和面向对象程序设计基础的学习后,后期内容均基于面向对象程序设计思想和方法展开,从而将面向对象程序设计贯穿整个课程的学习,以强化学生对面向对象程序设计思想和方法的理解。(4)引入项目驱动的教学方法。课程理论课时只有48学时,在课堂上完全讲授所有内容比较困难。且这种填鸭式的教学方法也不能满足新工科“培养学生计算思维、学习自主性和创新能力”的要求[9]。为此,在教学过程引入项目驱动的教学方法[10-11]。引入若干项目供学生自由选择,每个项目采用任务驱动的教学方法[12-13]。以学生管理系统为例,教师把知识点融入到项目的任务中(见表1)。学生依次完成各个独立的任务,最终完成整个项目,从而把教学方式从“以教为主”转变成“以学为主”,以充分提高学生学习的积极性和主动性。课程教学过程的组织如图1所示。(5)营造学生相互帮助、促进和监督的学习氛围。本课程的学生来自全国多个省份,地区及个体差异导致学生学习的积极性、主动性和能力都存在较大差异。为了营造学生相互帮助、促进和监督的学习氛围,在教学过程中,把学生分成若干个学习小组,每组不超过5人。在课程开始时,由学生自由组合,课程进行6周后,通过对学生学习情况的评估,将学生按学习情况从高到低分为A、B、C、D和E共5个等级,由A等级的学生从B、C、D和E等级中每个等级至多选择一名学生,重新组成学习小组。除期末闭卷考试外,其它各项考核均既考虑小组总体情况,也考虑小组内个体差异,以此对学习积极性不高或学习困难的学生进行帮助、促进和监督。

2.2实验教学

课程实验教学的目的是巩固学生对C++程序设计理论课程所学知识的理解。培养学生的程序设计、编写和调试能力,是达到课程教学目标必不可少的组成部分。为了使学生能够有效地调试程序,编写出有质量的程序,实验教学过程中采取了以下措施:(1)通过对“C++常见错误及解决方法”的分析和集成环境中程序调试方法的讲解,培养学生识别出错原因和改错的能力。(2)通过增加程序阅读环节和交换调试,培养学生程序阅读和调试能力。(3)通过制定实验评分规则,鼓励学生对同一问题探究多种解决方法,并分析每种方法的时间效率和空间效率,以提高编程能力和算法效率意识。

3教学效果

以上教学方法在2020级“数据科学与大数据技术”专业(共63人)经一个学期的实践,取得了较好的效果。所有小组均完成了项目开发,大部分学生较好地掌握了C++程序设计的基础知识和程序设计方法。课程考核成绩相对2019级(共62人)有了一定的提高(成绩分布情况见表2)。期末考核平均得为79.14分,90分及以上的学生所占比例为23.81%,仅有1位学生不及格(占比1.59%)。从教学过程和效果来看,课程教学方案有效的主要原因包括:(1)学习基础的构建减少了学生的畏难情绪。(2)对C++认识的加深和项目驱动教学方法的引入,明显增强了学生的学习积极性和主动性。(3)课程内容组织顺序的调整和实验教学的改革措施,加强了学生对面向对象程序设计思想的理解,并增加了课程的趣味性。(4)小组学习的组织方式,有效地帮助和督促了少数学习困难的学生。

4结束语

本文首先对南通大学计算机相关专业C++程序设计课程教学的现状进行了研究,分析了教学效果不佳的原因,然后从理论教学和实验教学方面进行教学过程和方法的研究和实践。实践结果表明,本文设计的教学方案,能有效地激发学生的学习积极性和主动性,提高了教学效果,学生的程序设计能力有了一定程度的提高。但仍然有部分学生没有达到课程要求。在以后的教学中,将通过设计不同难度的项目和加强阶段性评估来进行分层教学,以更好地帮助学习困难的学生。

作者:陈文兰 单位:南通大学信息科学技术学院