常 梅 李迎秋 李 永
摘要:本文结合应用型本科院校的特点,提出并探索了在“C语言程序设计”教学中采用“案例驱动”的教学方式。实践证明,在实际教学中应用“案例驱动”教学法,很大程度上增强了学生对“C语言程序设计”课程的兴趣,提高了学生用C语言解决实际问题的综合能力,取得了非常显著的教学成效。
关键词:C语言程序设计;案例驱动;教学方法
中图分类号:G642 文献标识码:A
1引言
“C语言程序设计”是计算机专业的基础课,同时也是“数据结构”、“操作系统”、“嵌入式系统”等计算机专业课程的前导课程,它已经成为我院计算机专业的一门必修课,在整个课程体系中占有重要地位。“C语言程序设计”不仅是学生学习程序设计的开端,而且与学生形成程序设计过程理念、提高分析问题、解决问题的能力有着密切的关系。通过这门课程的学习,学生可获得程序设计语言知识,培养软件开发能力,还可以锻炼逻辑思维能力,对学生综合素质的提高具有一定的促进作用。
客观上,C语言教学过程中,教师的教法和学生的学法对教学效果会产生直接的影响。由于C语言牵涉到的概念比较复杂,规则繁多,使用灵活,容易出错,不少初学者感到学习困难。传统教学过程中,教师需要在课程规定学时内讲解C语言的语法、语义以及这门语言方方面面的规定,为了完成教学任务,教师往往在授课时先讲语法规则,再举例讲解教材上或事先准备好的简短程序代码,一味“填鸭式”的灌输,而对学生而言,他们不但要在较短时间内记住大量琐碎的知识点,还要能灵活运用知识点,融会贯通,完成教师课堂上演示的例子或课后布置的作业,但因缺少真正的编程调试及实践环节,学生逐渐感觉到学习内容的枯燥乏味,理论与实践不能有机地结合起来,解决实际问题的能力差,学习兴趣在学习过程中随时间而减退或消失,学习效果不好。本文结合笔者的实际教学经验,提出并探索了采用“案例驱动”教学方法来改善课堂教学,并将其应用于实践,与大家共勉。
2 “案例驱动”教学法的探索实践
2.1教学中存在的问题
“C语言程序设计”是一个逻辑性很强的课程,但多数学生在学起来时感到无从下手。主要原因可归结为以下两点:
一方面,目前学校使用的教材中,绝大多数结构都基本相同,即在每一章介绍完概念后,提供一些例题解释相关概念的使用方法,并在章节结束后针对本章中出现的内容提供一些练习题。考试普遍采用单选、判断及简答等方式测试学生对教材内容的掌握程度。从实际效果分析,这只测试了学生对各章节中的基本概念的记忆程度而非理解程度。
另一方面,在考试的压力下,特别是目前的应试考试中,学生更多注意的是教材中的典型例题与老师指定的重点内容,对程序的系统概念没有真正地理解,特别是没有整体程序设计的思想。通过对考试结果的分析,可以发现在考试中涉及的综合编程部分,学生的得分率很低。为了确保学生的课程通过率,教师在考试时尽可能将综合测试部分的比例压低或提供给学生统一的复习提纲,结果使学生在学习时一切围绕任课老师的讲授内容死记硬背,偏离了理论与实践相结合的轨道,无法将所学理论知识运用到实践中解决具体问题,更无法形成良好的编程思想。
2.2 “案例驱动”教学思想的提出
我院属于应用型本科院校,其教育目标着重于培养具有实际工作能力的技术型和应用型人才。“C语言程序设
计”在应用型教学中是必不可少的一门学科,而且往往在新生入学的第1学期开设,以便培养学生的编程思想,为后续课程做铺垫。因此,强调实践性成为“C语言程序设计”教学中尤为重要的问题。为了改变传统的“填鸭式”知识灌输,能够在规定的学时内加强学生的理解能力,同时其培养编程思想,以提高学生的编程能力,结合C语言的特点,反思传统教学方式的弊端,笔者提出“案例驱动”的教学思想。即将所要学习的新知识隐含在一个或几个案例之中,引导学生对案例进行剖析、讨论,明确它大体涉及哪些知识,并找出哪些是旧知识,哪些是新知识,老师指导、帮助学生找出解决问题的方法,最后通过案例的完成而实现学生对所学知识的理解、编程思想的建立和实践动手能力的提高。在选择案例的过程中,应当遵循以下的标准。
第一,所选案例往往具有真实性,一般在日常生活中能典型地反应教学内容。
第二,所选案例难易程度要适中。案例的选择要考虑学生的知识背景,过于复杂的案例,将导致学生学习兴趣下降。难易适中的案例才有利于学生学习的深入进行,提高其学习积极性和主动性。
第三,案例要能覆盖多个知识点,以便提高学生综合运用知识的能力,达到整合知识的目的。
2.3 “案例驱动”教学法的课堂组织实施
2.3.1学时调整及案例引入
为了体现精讲多练的原则并适时引入案例,我们首先对整个教学过程的学时作了重新编排:将原来的96学时调整为112学时,增加实践学时的比例,整个教学过程分两学期完成。
新生入学后第1学期的后8周完成前48学时内容的讲授,主要包括C语言基础语法知识(变量、常量)、简单的输入输出函数(scanf和printf)、三大结构、函数,并将这些知识点融汇于一个案例——计算器案例中。通过案例的分析及教师的指导,学生在实践的过程中能快速理解C语言的基本概念并初步建立编程思想。
第2学期共16周的时间完成后64学时内容的讲授,包括数组、指针、结构体、链表等,并将这些知识点整合于一个具体典型的案例——学生成绩管理系统中。这一阶段的学习实践,让学生分别用数组、结构体、链表三种数据结构去实现任务目标,学生对C语言有更深一步的认识,进一步提高了编程技能。
引入案例后,能够打破以往按照章节顺序授课的基本模式,教师可以按照不同的技能层次分学期讲授课程。这样使学生在不同的技能培养阶段,循序渐进地、稳步地提高实践能力,从而达到培养应用型人才的目的。
2.3.2案例分析
“案例分析”旨在通过教师课堂演示案例系统让学生分析案例,提出解决问题的途径和方法。对于同一个案例,不同的学生会提出不同的分析结果和实现方法。案例分析体现了一种以“应用为目的、从实例出发”的教学思路,能充分调动学生自主获取知识的学习愿望,它也体现了一种以学生为本的教学思想。
理论课部分我们主要采用了“案例分析”教学法,以教师为主体,通过教师对案例的演示讲解,说明课堂内容,使案例与课程的基本理论融为一体,构成一个完整的课程内容体系。以数组这一章为例,在讲解数组之前,给学生演示用数组实现的案例——学生成绩管理系统1.0,在正确输入用户口令后,首先,进入系统的主菜单界面,如图1所示。通过主菜单,可以分别实现学生成绩的输入、输出、查询、排序等主要功能。演示的过程中不断向学生提出问题,在学生思考的同时引出知识点。其次,借助于PPT详细讲解每一个新知识点的主要语法及功能,并用每一个小程序代码具体说明讲解,让学生在小程序例子中理解消化新知识。再次,根据学生的理解程度,将案例中的每一个功能模块单独选出来让学生分析,给出实现功能模块的主要思路。最后,回到PPT中,将整个案例中所用到的知识点分模块地进行汇总,例如,在进入系统时输入用户口令,需要用到字符数组及其相关函数。这样,每一个功能模块对应一个知识点,可使学生更好地理解其中的理论知识,也为后续的实践部分打下良好的基础。
2.3.3案例实现
“案例实现”是“案例驱动”教学中的最后一步,也是极为重要的一步。通过学生亲自编程来实现“案例分析”中提出的案例,真正地将知识点融入到实践中,实现理论与实践的有机结合。这一步的实现通常放在实践课上完成,我们在理论课的知识点讲解及“案例分析”结束后,紧接着安排实践课。根据案例涵盖知识点的多少及难易程度,合理安排实践课的学时,每一学时实践课实现一至两个功能模块。
在整个案例的实现过程中,对于比较简单的功能模块,教师根据学生对知识点的掌握情况,实时地找不同的学生到教师机上进行简短的编程,或利用他的思路,让其他学生一起编码或思考。这样,教师一边引导教师机前的学生完成编程任务,一边在教室中监督其他学生动手实践并灵活答疑。对于比较难的功能模块,教师先将函数实现的流程图给学生,然后具体讲解并按照实际编程步骤,举例带领学生一起做同步训练。这样,教师能够在把握重点的同时控制进度,让学生保持连贯而清晰的学习思路。为了达到更好的效果,我们往往在实践中将学生搭配分组,每组5~6名学生,民主选取一个编程能力比较强的同学为小组长,在老师讲解流程后,由小组长按照组员实际掌握的程度协调其成员完成整个案例,并向教师反映小组成员的完成情况,及时进行评分记录。实践课结束提交所有的案例代码及实验报告。教师根据小组长对组员的反映情况及每位同学代码的完成程度给予适当的分数,与最后的期末考试成绩按照一定的比例进行折算,最终得出既可以体现学生对理论知识的掌握情况,又可体现学生动手编程能力的期末综合成绩。
3“案例驱动”教学法实施效果分析
按照以上的实施步骤,“案例驱动”教学法取得了良好的教学效果,学生获取理论知识的能力得到了提高,实践技能也普遍增强。以采取“案例驱动”教学方式后的近两学期的期末考核情况为例,其成绩分布如图2所示。
4结束语
当今信息社会计算机的应用非常广泛,各行各业需要不同层次的计算机专业人才。在进行计算机教育中,应依据培养目标提出不同的教学要求。对于每一个学习计算机知识特别是“C语言程序设计”的学生,都有一个由浅入深、逐步提高的过程。教师在这个过程中必须激发学生的兴趣,更新教学理念,充分利用、整合各种教学资源,注重教学方法的探索,真正使“C语言”这门课程成为学生学习其他计算机知识的基石。本文针对当前应用型本科院校的教学特点,从教学实践出发,阐述了“案例驱动”教学法的应用,供大家探讨,实践证明,教学效果显著。同时,我们还会在今后的教学过程中不断改进,以求不断进步。
参考文献:
[1] 张仿,卢继勇.“启发式”教学方法与C语言教学[J]. 重庆邮电学院学报:社会科学版,2004(S1):50-60.
[2] 高秀娥. C语言教学方法探讨[J]. 中国教育学杂志:高等教育版,2006(12):146.
[3] 张建珍. C语言教学方法探究[J]. 计算机教育,2007(9):12-13.
[4] 郭芹. 对高职高专计算机专业程序设计教学的思考[J]. 中国科技信息,2008(1).
[5] 陈龙猛,王保桂,李吉忠,等. 大案例教学法在Visual Basic程序设计教学中的探究[J]. 计算机教育,2008(5):59-62.
Research and Practice on the “Case-Driven” in C Programming Language Course
Chang Mei1, Li Ying-qiu1, Li Yong2
(1.Neusoft Institute of Information, Dalian 116023, China; 2.Binzhou University,Binzhou 256600, China)
Abstract: This article combines with the characteristics of practical undergraduate college, brings forward a teaching type called “case-driven” in C programming language causes, and put it in into practical teaching. It promotes the students interest in this cause, improves the their abilities to handle the practical matters, and harvests dramatical good teaching results by this way.
Key words: C programming language; Case-Driven; teaching type