《C语言循环结构》课程教学设计研究
作者简介作者简介:徐东(1972-),男,硕士,中国人民解放军海军大连舰艇学院讲师、教研室主任,研究方向为计算机视觉与人工智能、计算机教育。0引言
C语言程序设计中,循环结构、顺序结构和选择结构共同作为各种复杂程序的基本构造单元。C语言中几乎所有实用程序都包含循环,许多问题求解都可归结为重复执行的操作,比如数值计算中的方程迭代求根、非数值计算中的树的遍历等等。循环的特征是:在给定条件成立时,重复执行某程序段,直到条件不成立为止。教学实践证明,循环结构是整个C语言程序设计课程中的“拐点”,这个环节学好了,就有了进一步学习的兴趣,反之,则会让很多学生对C语言的深入学习望而却步。因此熟练掌握循环结构的概念及使用方法是程序设计最基本的要求之一。笔者通过总结学生学习C语言循环结构的一般心理思维规律,结合国内外优秀的计算机语言教学方法和模式,在讲授C语言循环结构程序设计环节的教学过程中,采取“双主体教学模式”,充分运用了项目实例教学、问题驱动教学、多媒体辅助教学等多种教学方法,重视学生的学习主体作用,在课堂教学中,以创造性贯彻“启发式教学原则”为基本特征,鼓励学生积极主动学习,教师极尽启发、诱导、调动学生学习的主动性,使学生在掌握知识、形成能力、开发智力等方面得到最大发展。
1C语言公共课教学中存在的问题
C语言公共课程的授课对象均为非计算机专业学生,C语言教学总课时数也偏紧。C语言相对于计算机基础课程,它注重设计算法、书写程序并进行调试的整个过程,内容较为抽象、复杂,教学方法和学习方法都有极大的不同。笔者通过观察并与学生交流,发现很大一部分学生上课时能听懂课程,但程序一旦稍有改变就便不知所措,学生独立编程时更是无从下手,尤其到了循环结构设计阶段。究其原因,在教学方面存在以下问题。
1.1传统课堂教学方式存在一些弊端
通常,传统的C语言教学方法是选用经典教材,教师在讲解时先给出一般的语法格式,然后逐步讲解语法要点,再给出例子。传统教学方法比较适合基础差的学生,但此方式的缺点也是显而易见的,一方面不利于学生自学能力的培养;另一方面,对于基础好的学生会觉得太罗嗦,甚至因此丧失学习兴趣。多数学生对于这种按部就班讲编程的传统教学方式有厌倦心理,不愿意主动与教师在课后交流,依靠教师的现象比较严重。另外,很大一部分学生还在延续高中时的学习方法,缺乏自主学习的意识和能力。C语言毕竟是一门抽象、复杂的课程,知识点非常散。学生在学习C语言的过程中,在教学内容越来越多、编程越来越困难的情况下,很难自我保持学习的兴趣和热度。
1.2教与学比例不合理
教师在教学实施过程中,往往过于注重对知识的传授,过于强调教学方法,而实际上,C语言是一门实践性很强的课程,理论理解与实际演练密不可分,相辅相成,因而,整个C语言教学过程中如何分配教与学、理论与实践的比例,是学生学好C语言的关键因素之一。
1.3上机实作课时偏少
由于总课时数的限定,目前计划学时内安排上机实作学时不足以完成预订目标,以计划外形式安排课时,学生在自主学习能力较弱的情况下,学习效果不佳。
2双主体教学法
经过多年实践,我们在教学过程中采取了适合C语言公共课的“双主体互动教学模式”。双主体互动教学模式是新型的课堂教学理论,它突破传统教学中的“双主”理论,极其重视学生的学习主体作用,并引入“互动”观念,教、学双方相互影响,彼此促动。在课堂教学中,它以创造性贯彻“启发式教学原则”为基本特征,鼓励学生积极主动学习,提倡教师极尽启发、诱导、调动学生主动性之能事,在授课过程中,采用讲解、现场编程演示、幻灯片、提问、目光交流、练、学生自主学习相结合的方式,授课完毕后进行课堂小结,布置上机作业。
2.1采用实例教学法,提高学生对抽象概念的感观认识
实例教学法打破了以教材为中心的传统教学模式,不按教材的顺序授课,在讲课过程中,经常举一些与实际生活相关的事例,以精选出的程序实例为中心,把学习的重点放在具体实例讲述上,并引导学生自己去思考解决方案,从主观上让学生感受到成就感,从而保持他们的学习兴趣。整个教学过程中强调学以致用,在应用中学习,从而避免了枯燥、繁杂的理论说教,不仅增强了学生的学习积极性,而且对提高学生综合分析和解决实际问题的能力也大有帮助。
为了达到本课程的教学目的,让学生能更加深刻地体会到软件编程的实际作用,提高并保持对该课程的学习兴趣,本文引例就从“实弹射击训练分析系统软件”的编制任务开始,该软件编制任务共分5个阶段完成,编制过程将一直持续到本课程结束,并且会在后续章节中得到进一步完善。“实弹射击训练分析系统软件”具体任务安排:
第一阶段:能记录一名学生的打靶成绩(平均环数)。
说明:为简单起见,规定每名学生打10发子弹,记平均成绩。
第二阶段:能记录每个班的打靶总成绩(总平均环数)。
第三阶段:能对参训学生进行成绩排名;能对参训单位进行成绩排名。
第四阶段:在前3个阶段任务完成的情况下,进一步完善该软件的功能,学生可以添加自定义功能模块。
在简单介绍“实弹射击训练分析系统软件”的编制任务后,提出本次课的任务。运用实例启发学生,明确本节课要解决的任务,即寻求一种循环机制,能够自动循环地对10个成绩求和。这样,不仅激起了学生探究问题的兴趣,而且轻松地引入了本节课的教学内容:循环结构。接下来,就按照软件设计的步骤依次进行。
2.2采用进阶式问题驱动法,提高上机效率
在C语言教学过程中,上机操作是非常必要的。通过上机,学生不但可以进一步理解和掌握知识,而且许多不清楚或不理解的问题也迎刃而解。但在上机过程中,教师不要总是要求学生按部就班地解决问题,要让学生自己寻找解决方法,把学习的主动权还给学生,增强学生的自主学习能力,当然,教师的主导地位不能变。在组织学生上机实践的过程中,教师可以适当地设计一些连续的作业。例如,学完循环结构后,在上机时先带领学生分析一个程序,其功能是输出四行六列并且是由星形符号构成的图案[1,2]。教师可以通过以下步骤引导学生上机实践:
步骤1:教师可用多种编程方法进行程序演示。①利用普通的输出函数如何解决;②利用单循环如何解决;③利用双重循环如何解决;④说明双重循环的优点及特征,然后让学生自行编写并运行程序。
步骤2:待学生完成任务后,在原程序基础上,进一步提出新问题,让学生学会灵活编程。①若要输出每行“#”与“*”相间的四行六列图案应该如何修改程序;②若要输出每行两个连续的“#”和3个连续的“*”的四行五列图案应该如何修改程序;③若要输出用“*”组成的一个正三角形应如何修改程序;④行列数在这里是固定的,可否通过键盘随机输入,等等。
以上问题均可通过修改步骤1中编好的程序逐步解决,每次修改的幅度均不大,难度也是缓慢增加,学生在不知不觉中得到了编程的训练,在很短的时间内掌握了所学知识并灵活运用,学生会拥有成就感,同时会意识到,只要自己肯动脑,问题就会很快解决,从而激发了学生的学习主动性。
2.3以项目为牵引,强化学生课后自主学习
在完成一定的教学任务后,及时布置项目作业,训练学生对所学知识的灵活运用能力,并使每一阶段的内容有足够的焦点,让学生轻松消化每个知识。
在布置项目时,除要包含所学内容的焦点问题外,还要特别注意对新知识的迁移,也就是说,可以在项目中涉及少量的学生没有学过的知识点,促使学生主动探究、主动解决,教师在恰当的时候再给出解答方案,最后由学生自己总结得出项目结果。这么做不仅让学生学习的心态更加主动,而且让学生更具有成就感。
在教学后期,我们根据多年的科研和教学经验,设计出了多方面的项目实例,并把这些项目实例的实作完成情况与期末成绩评定结合在一起。因为这些实例均具有绝对实践意义,所以,在教学过程中也会激起学生的学习兴趣,从而更好地提高教学效果。
2.4合理利用多媒体辅助教学,提高课堂教学效率
目前,很多教师在讲授课程过程中,几乎完全依赖多媒体。的确,多媒体辅助教学不但节约了板书时间,而且加大了信息量、开阔了知识面,并能挖掘出课本文字达不到的直观、动态效果,使难以理解的抽象理论形象化、生动化,能提高教学效率、增强学生的学习兴趣。但是,整个教学过程不能完全依赖多媒体,应该把多媒体与板书有机结合起来,体现“板书是纲”的思想,一节课下来,学生可以根据板书对所学知识进行再次重构,有助于消化理解。
2.5在教学中加入“游戏”,增强教学直观性
教学游戏符合教学的直观性原则。例如,在讲授冒泡排序这一复杂循环程序设计时,可以加入“游戏”环节。复杂的冒泡排序是一个教学难点,但可以简而化之,教学中设计了一个由5人参加的游戏表演来模拟冒泡排序的过程,变抽象为具体。这个游戏实际上演示了冒泡排序的算法过程,学生在一片欢声笑语中就把这个复杂问题理解了,不但效果好,而且节省了大量讲解时间。有了这个“游戏”基础,在学生兴趣正浓时,引入奥运会运动员国家入场顺序的编程问题,让学生更加生动形象地理解教学内容。从课堂教学的实际效果来看,学生对算法的理解更加迅速、深刻,这对突破教学难点起到了很好的促进作用[23]。
3课堂教学过程设计
3.1课堂教学流程简要设计
课堂教学流程设计如图1所示。
图1循环结构课堂教学流程简要设计
3.2课堂板书设计
课堂板书设计如图2所示。
4应用效果
应用效果如表1所示。
表1本文方案在循环结构中的应用效果对比
典型方案应用本文方案未应用本文方案项目实例教学课堂反应积极,提问完成率可达90%课堂反应沉闷,提问完成率在60%左右上机环节采用问题趋动法实验完成率为95%实验完成率为68%版书与多媒体并重课后答疑时间约在1小时以内课后答疑时间约需2小时讲授排序时加入游戏环节算法掌握时间约为10分钟算法掌握时间约为40分钟,且效果不理想本文方案综合应用阶段测试不及格率为6.45%阶段测试不及格率为20.12%图2循环结构版书示例
5结语
在计算机教学过程中,教师的教与学生的学是一个有机的整体,既相辅相成而又相互影响,教师一定要根据学生的实际情况,灵活、创造性地掌握教学过程,对多种教学方法进行合理结合,不可千篇一律。只有这样,学生知识的获得、自主学习能力与计算机应用能力的培养、智力的发展才能得到最大限度的提高,整个教学过程才能获得理想的效果。实际教学情况证明,本文方法效果良好,对计算机其它科目的教学也有积极的借鉴意义。
参考文献参考文献:
\[1\]徐东.军事院校C语言教学方法探索[J].海军大连舰艇学院学报,2007, 30(6): 9799.
[2]徐东.C语言循环结构程序设计教学方法研究[C].成都:全国计算机新科技与计算机教育论文集(第18集)上集,2010: 4551.
[3]田淑清.全国计算机等级考试二级教程-C语言程序设计[M].
上一篇:高中物理学习方法与学习技巧分析