陈晓 李碧涛
摘 要
C++是计算机专业领域一门基础的,也是重要的课程,它起到承上启下的作用。让学生直接学习C++面向对象编程是不合适的,会使学生难以有效的理解C++语言及面向对象技术。本文提出了若干C++面向对象程序设计的改革方案,有助于学生更好的学习C++的编程技术,面向对象程序设计的理念。
关键词
C++;面向对象程序设计;教学改革; 微课;翻转课堂
中图分类号: G642.0;TP312.1-4 文献标识码: A
DOI:10.19694/j.cnki.issn2095-2457 . 2020 . 06 . 10
0 引言
計算机科学与技术(计科)专业是高等教育的一个基本专业,涉及了许多的课程,构建成了一个完整的体系。计科专业的学生最基本的能力就是要会编程。而程序设计是计科专业的必修课程,其中C语言,C++语言和JAVA语言是计科专业主流的教学语言[1]。一般来说学习的过程都是先学习C语言,再依次学习C++和JAVA两门语言。其中C++面临着承上启下的关键作用,让学生从面向过程的C语言过渡到面向对象的编程语言中[2],即是对C语言的巩固,也是对JAVA学习的先导,有着十分重要的地位。国内高校不断的探索和研究C++的教学方法,希望达到良好的教学目的,让学生编程能力加强的同时,也建立起面向对象的基本概念的思维模式[3]。
1 现阶段计科专业C++教学面临的问题
C++在编程语言里面属于难学、难懂的一门编程语言。如何让学生学好C++,是个不断探索的过程[4]。
近年来国内高校对C++面向对象程序设计的改革有如下几种方式[5]:
(1)增加实例教学,如动机理论,迁移理论等。
(2)将面向对象的理论知识整合到程序设计教学中。
(3)以面向对象的观念来分析现实的实例,然后代码化来增强理解。
上述教学方法的探索和研究在一定程度上提高了学生对于C++面向对象程序设计的理解,但是这还不够。因为如下几点:
(1)教学方式还是使用的非常传统的教学方式如理论教育、课后作业等。
(2)授课方法还是传统的板书和讲解,而重点内容也偏向基础理论。
(3)学生上课的时候缺乏实际编程操作,使得学生难理解,难应用。
在这样的情况下,一学期的工作下来,常常使得学生所掌握的也仅仅只是应对书上的题目,而不能对实际问题进行良好的分析,学不会使用计算机去分析解决问题[6]。
2 C++教学的改革
教学的改革不是单方面的内容,应该从几个方面去改革。包括知识点的侧重,教学方式,授课方法等。在本文看来,C++的教学改革内容应该从以下几个方面入手。
2.1 使用交叉教学的方式
学习C++的学生都已经学习过先修课程C语言,而计科专业的学生程序设计的入门缓慢,基础不稳。C++教学课程的难点往往集中在面向对象的理念,指针和引用的区别上。而教学的重点就要落在这些方面。
因此,在教学的时候,应该先安排2-4个课时来引导学生对C语言中的指针与结构体部分进行复习。在复习的过程中选择以生活中的实例分析并结合一些综合题目进行讲解,在复习结构体部分的时候,适度的引入面向对象的小部分知识,使学生能够理解C和C++的不同,对面向对象有一些初步的认识,在后面讲解类的时候,形成半新知识半复习的状态。在以后讲解C++的时候,也可以和结构体部分进行对照,让学生有更深层次的理解,能够明白万事万物皆对象。在复习指针的时候,让学生更进一步的强化地址的概念,有助于后期理解多态是一种地址指向而不是赋值。
2.2 增强上机实验
如果有条件,类似于C++,JAVA等计科的编程课程应该安排在机房上课。在上课的时候,讲完部分内容就让学生练习,形成强化记忆。实验课上,不应该只是让学习练习书的例题以及课后题,本文建议是安排一个综合的实验,如最后做成一个软件的方式来引导学生实验。一个良好的综合实验可以让学生循序渐进地掌握知识,而且前后呼应,内容承接。不会如单纯地做练习,做过就忘,没有传承性。前面的知识后面可以用到,后面编程的时候又可以复习前面的内容,是一个良好的环形。一个整体的实验,可以达到让学生验证、理解和巩固知识的目的。
该实验由老师主导,引导学生分组讨论研究,但是要独立完成。每次完成一部分,直到最终有成品。一个软件的制作成功,其效果远大于单纯的练习,会让学生有极大的兴趣。
每次实验课让学生完成一部分内容,并要求课后提交实验报告,可以达到督促学生认真按时完成,深化编程思想,了解程序设计与软件制作的整个流程。而教师也可以通过学生的实验报告了解学生学情,以便在以后的理论讲解中查漏补缺,让每个学生都能够进行全面而有效的学习。最后让学生之间互相对比自己的作品,互相讨论异同,加深对于知识的了解。
2.3 改变授课方法
现在是互联网时代,授课方法早已不局限于PPT板书等。出现了多种的现代教学方法,如微课、翻转课堂、思维导图、慕课和学习通等[7]。作为21世界的新型教师,应该努力掌握这些新的知识,与学生的授课采用新的方式,即可以使得学生从无聊的课程上解脱,也是一种自我进步。
C++课程难,人的记忆能力和领悟能力是不一样的。初次上课之后,学生很容易出现记不牢,内容有偏差,和对内容理解不透彻等问题。教师可以自己做成微课等形式对课堂教学进行补充。
微课是指运用信息技术按照认知规律,呈现碎片化学习内容、过程及扩展素材的结构化数字资源。其主要特点是:
(1)时间短:通常一节微课不会超过10分钟。相对于45分钟的教学时间来说,微课短小精悍,内容集中。
(2)内容少:因为微课的时间短,所以其问题聚焦,主题突出,结构紧凑,更适合教师讲解和学生学习。用微课来突出某个知识点的内容,或者反应某个教学环节中的内容,是一种有效的补充。
(3)文件小,易传播:现在大家都用的是智能手机,手机流量也是大流量时代,微课非常便于学生在线观摩,可以达到随时随地都可以学习的目的。
(4)情景化:微课由于是教师在课下制作,因此可以使用很多其他的资料来辅助教学,这是常规教学中很难达到的效果,如大量的多媒体资源,以图形化,可视化的方式来帮助学生理解知识。
除了微课以外,翻转课堂也是一种重要的教学方式。翻转课堂打破了旧的教学方式,将学习的决定权由教师转交给学生。在这种教学模式下,课堂的时间内,学生能够专注于主动的基于实例的学习,从而获得更深层次的理解。教师也不需要再战胜课堂的时间来授课,学生能够在课前完成自主学习,如以看视频、听播客、阅读电子书,网络交流,随时随地地查阅需要的材料。教师也能有更多的时间与学生进行交流。课后,学生需要自主规划学习内容、节奏、风格和呈现知识的方式,教师则采用讲授和协作来满足学生的需要与解决学生的问题,其目的是为了让学生进行更真实的学习。在这种模式下,教师传统的传道、授业等职能可以得到减轻,而将重点放在解惑上,使得学生的知识掌握的更加堅实。
3 结论
时代在变,授课的方式也需要改变。传统很重要,但与时俱进也很重要。在如今的计科教学中,C++的分量举足轻重,但是难度系数也很高。通过一定的教学改革,授课方法的变更,综合性实验教学的使用,借助微课、翻转课堂等新的教学手段,能够让学生更好地学习C++面向对象程序设计。即巩固了C语言的知识,又了解了面向对象的知识,为以后学习打下良好的基础。
参考文献
[1]冯博琴."计算机基础教育新阶段的教学改革研究," 中国大学教学, pp. 7-10, 2004.
[2]李秉璋,徐亚平,罗烨,and 黄海军."以提高应用能力为目标进行计算机专业课教学——“面向对象程序设计”教学改革探索," 计算机教育, pp. 30-33.
[3]高枚,杨志强,许兰兰, and 龚沛曾."C/C++教学改革的探索与实践," 计算机时代, pp. 8-10, 2005.
[4]薄文娟."C++教学改革与探索," 环球市场信息导报, pp. 122-122, 2017.
[5]孙毅,刘玉兰,and 逯柳."《C++程序设计》课程教学改革与实践," 科学中国人, 2017.
[6]邰非."基于实践的C++互动教学模式的建立," 高教学刊, pp. 127-128, 2017.
[7]焦建利."微课与翻转课堂中的学习活动设计," 中国教育信息化, 2014.