马洪霞
(北京林业大学电子系,北京 100083)
“C++程序设计”是一门实践性很强的课程,单纯的有限,一般课程学时30~40,课堂教学一般只能够讲授基础知识,很难使学生真正掌握C++语言的精髓。网络课堂教学不能实时互动,教学效果差,只能作为补充。现今的项目教学法被认为是较为适合程序设计类课程的教学方法,并不适合所有学生[1,2]。为此,笔者提出课堂教学应该与课外教学相结合,利用各种课外项目对部分对程序设计感兴趣的学生进行课外教学,进而达到培养创新型人才的目的。
由于学生在有限的时间内难以对所有的课程都钻研深透,笔者将教学可以分如下两步进行。第一步是课堂教学,在教学大纲规定学时内对完成对全体学生的基础教学;第二步是课外教学,重点培养创新型人才。我们结合各种创新计划项目与科研项目进行精英教学,使学生深入透彻的掌握一门计算机语言,使其毕业后能够独立进行程序设计。课堂教学与课外教学既要相互独立,又要保持连贯性。
为了阐明本课程的教学方法和教学过程,我们以“一个小型公司的人员信息管理系统”为例进行说明[3]。表1所示即为此例所涉及的知识结构及其教学过程。
表1 教学过程示例
1)课堂教学
课堂教学的实施对象是全体学生,教学内容为:基本概念、语法知识、验证性实验和综合训练实验,使学生对C++语言有一个全面认识。由于C++语言的实践性很强,所以课堂教学适宜采用案例式教学和任务驱动式教学,但是案例或者任务的难度要适中,不能让学生感到无从下手,望而生畏。实验以验证性实验为主,占到总实验学时的80%,实施对象为全体学生。
综合训练实验为选做实验,占20%,适合于成绩优秀的学生。课堂教学内容包括类的声明、静态成员、派生类及虚函数等内容。这些基本内容是“C++程序设计”学习的重点,蕴含着面向对象的方法及多态等重要内容,也可以为以后学习其他面向对象的语言打下基础。
2)课外教学
课外教学的实施对象是对本课程有浓厚兴趣的学生,教学内容包括理论和互动两部分。互动实练教学,可以让学生真正的深入理解C++语言,进而对语言的运用有所创新。课外教学首先是理论内容,是与项目密切相关的知识点,为学生顺利地融入到项目角色打好基础。然后是互动内容,在项目进行过程中进行算法以及程序设计技巧的辅导。
在我们的例子中,容器类与MFC等知识点难度较大,但是对于开展项目中有重要作用。教师将这部分内容放在课外教学的理论部分进行讲述,针对本项目的应用选取特定的内容进行阐述。由于学生此时学习具有很大的主动性,所以学习效率也会很高。项目开展以后,即进入互动部分。教师要开展程序结构、算法、效率优化等内容的启发式指导,协助学生思考更高级的问题,使学生尽力提出自己的创新性的观点。
3)互动教学中需要注意的问题
在互动教学过程中,教师在辅导过程中不仅要对已成型方法的优缺点进行全面的讲解,还要对新方法新观点进行介绍,引导学生综合各种方法的优点,力图创造出新的更好的方法。教师的角色是方向指引者,引导学生进行创新。当学生思路陷入囹圄时,要引入新的角度,帮助学生更换角度思考。教师在与学生的互动过程中,应该充分鼓励学生大胆进行新的尝试,使其成为敢于创新的程序设计人才。
本文针对各高校信息类非计算机专业“C++程序设计”课时有限的特点,提出利用各种课外项目对部分学生进行课外教学进而达到培养创新型人才的目的。教师在课外教学实施过程中应该注意将自己摆在引路者的位置,充分鼓励学生进行创新。
笔者通过教学实践发现,本文提出的教学方法对培养创新型人才很有帮助。实施课外教学的学生,能熟练掌握C++语言,有一部分学生能够提出自己的算法,并很好地完成项目规定的任务。
[1] 刘松青.构建“Java面向对象程序设计”实践教学体系[J].长沙:实践教学,2009(2):8-10
[2] 张丽.项目教学法在面向对象程序设计课程教学中的应用[J].北京:计算机教育,2010(10):92-94
[3] 郑莉.C++语言程序设计[M].北京:清华大学出版社,2005:196-197