提高高职C语言课程教学效果的研究与实践
2014-05-10杨晓明刘淑婷
杨晓明+刘淑婷
摘 要:C语言是高职院校学生接触的第一门计算机语言课,语法灵活、知识点多、程序设计自由度大,且注重实践操作能力,因此如何提高课堂教学效率,培养学生的编程兴趣和能力就显得尤为重要。根据多年的教学经验,针对民办院校高职类学生的C语言课程教学提出了一些改革措施。
关键词:C语言;实践操作能力;改革措施
C语言具有强大的功能,是应用最广泛的计算机程序设计语言之一,是程序设计的基础,也是数据结构等课程的先导课。根据高职计算机教育的特点,C语言程序设计课程不仅是专业基础课,更是一门专业技能课。作为学生,进入大学后接触的第一门计算机语言课,C语言教学应以培养学生的编程兴趣、加强学生的自学能力为目标。通过本门课程的学习,使学生逐步培养程序设计的思维,能熟练的上机调试程序,具备良好的编程习惯、设计规范和风格,训练程序设计的能力,能够独自解决程序编写和调试中的困难,同时具备沟通、表达能力以及与人协作能力。
一、目前教学中存在的问题
1.知识点多,语法灵活
C语言具有数据类型丰富、语法限制不严格、程序设计自由度大、可由用户自定义数据类型等特点。然而,这些特点既是C语言的优点,也是C语言学习的难点。高职院校的学生大多数都是第一次接触程序设计语言,基础相对较差,在实际教学中,知识点的讲授是分别进行的。学生可以很好地学习和理解各个独立的知识点,也可以把某个知识点运用到其适用的情况。但是,如何将多个知识点关联和连贯起来对于学生理解就比较困难。
2.讲得多,练得少
C语言是一门实践性很强的课程,逻辑性强、内容多,不易理解,但学时安排较少,目前课程总学时为64学时,其中讲授为32学时,实验为32学时,相对于其他普通高校实验16课时来说,已经增加了实验课学时,但在实验课堂上也通常是教师先讲,学生再练。往往学生真正上机练习的时间只有一小节课,学生只是机械地完成教师布置的题目或验证已有的程序,很少能自己思考或者创新的。
3.无法调动学生学习的积极性
C语言不像有的课程那样立竿见影,需要一个循序渐进的学习过程,而且C语言知识点内容繁杂,学习起来很枯燥,因此学生学习的积极性不高。相对于其他基础课程中比较直观的基本操作和基础概念,它更注重由设计算法到书写程序并进行调试的整个
过程,显得抽象、复杂,编程时容易出错、很难掌握,很多学生因而失去了学习的兴趣,丧失学习的信心。
二、改进课堂教学方法
1.精讲多练,合理安排教学内容
C语言知识点多、覆盖面广,理论授课时间相对比较紧张。经过实践证明,对于民办高职类学生,因为学生的自学能力、自控能力相对较差,因此不宜按照课本安排的知识点顺序进行讲解,在
具体教学过程中,首先应注意教学内容的顺序。一般的教学顺序,往往刚开始的内容是变量、数据类型、运算符、表达式、语句、函数的定义、使用说明等,没有很快涉及程序编制,这样很容易造成学生泄气或者失去兴趣,对学习极其不利。因此要适当减少数据类型和表达式等内容,尽快进入到顺序程序设计部分,并采用先举例后分析,逐渐引入知识点的顺序,注意先具体后抽象。其次需从应用角度出发划分知识内容,用就学,不用就可先不讲,知识点讲解难度掌握到够用即可。同时针对初学者的特点和认知规律,分散难点,降低台阶,在实例练习中掌握重点,突破难点,在课程中慢慢渗透理论体系,将难点内容化解在各章节中去讲解。
2.采用案例驱动教学法
案例驱动教学就是把教学内容设计成一个或者多个具体案例,教师围绕案例讲授相关内容,学生在案例驱动下,独立分析和解决问题,从而掌握教学内容,达到教学效果。
结合案例驱动法的基本思想以及高职学生的实际情况,C语言的教学内容可划分为以下知识点:输入输出和顺序结构、分支结构程序设计、循环结构程序设计、数组、函数、指针、结构体和文件、综合程序设计。其中数据类型、运算符和表达式可以渗透在以上各个知识点中讲解,不同的知识点可以设计成不同的案例,通过先举例、后讲解,让学生通过一些有意思且实用的例子,学习、掌握知识点和语法,同时培养程序设计的思维和习惯。经实践证明,这种方法在高职院校C语言教学中取得较好的效果。
3.运用阶梯式教学法
将教案设计成阶梯式,让学生一步一个台阶地往上走,跨度不大,符合学习规律。例如,在引导学生实现猜数游戏时,将需求设置成阶梯式,分成利用选择实现一次判断、利用循环实现一次猜数、利用多重循环实现连续猜数,最终将小游戏的功能逐步完善。学生在这种阶梯式教学法中获得浓厚的兴趣,通过不断地编程调试、跟踪运行,程序设计能力和编程思想进一步得到提高。
三、改进实验教学方法
设计好实验内容,尽量让学生独立或者相互协作完成,教师给一些引导或建议,让学生自己去尝试。给每个教学内容设计一个实验,实验内容可分为两部分:基本实验和选做实验。其中基本实验包括:验证性实验、改错性实验和设计性实验,适合大部分学生。选做实验给出一些提示,但不做具体要求,使学有余力的学生可以在完成基本实验的前提下选做,进一步提高编程能力。
1.基本实验
(1)验证性实验
验证性实验训练学生阅读程序,熟悉知识点,体会良好的程序书写风格。结合案例教学方法,针对每次上课所学知识点的不同,分别提供给学生一些已包括所学知识点、实现实际问题、可直接运行出结果的有吸引力的案例,让学生自己分析程序、执行程序和查看结果,根据源程序和运行结果分析其程序中所包含的知识点及
程序具体实现的功能,加强学生分析问题的能力。
(2)改错性实验
改错性实验主要训练学生根据出错信息运用程序调试方法进行程序调试,提高学生的程序调试能力。根据所学知识点内容,设计一些有语法错误或逻辑错误的程序,让学生通过调试,找出程序中的错误并改正。endprint
(3)设计性实验
设计性实验给出题目和部分题目的解题提示,让学生自己设
计算法,然后自己编程并调试,提高学生运用知识解决问题的能力。根据所学知识点内容,布置一些与已学程序相似的程序,让学生结合已学知识设计程序或者修改已有程序,从而实现新功能。
例如,学生可以通过改编“1+2+3+…+100”的程序,实现求“2+4+6+…+100”的程序。
2.选做实验
提出一些设想和思路,引导学生进一步优化和完善程序,学生得到启发后,有了自己的想法,在实现的过程中遇到问题和困难,教师可以给予相应的帮助,但主要靠学生自己完成。例如,在讲解“输入输出和顺序结构”内容时,用到计算两个数之和并输出的例子,在基本实验中可以让学生首先将其改为能求加减乘除四则运算的,然后可以提示学生:这个程序只能用固定的或者运行时从键盘上输入的两个数据,如果要计算另外两个数据就需要重新运行一遍程序,怎样才能让程序可以重复计算多组数据直到用户喊停才结束。这样就可以引导一些学有余力的学生主动地去查找、学习新知识,从而使编程能力得到进一步提高。
四、增加课程设计环节
在完成实验内容的基础上,利用最后两周时间进行综合性实验——课程设计,教师布置相应的题目,例如:Joseph环、迷宫求解、日历系统、学生信息管理系统等,并给出相应的任务要求,例如学生成绩管理系统,要求:建立一个n个学生的信息登记表,每个学生的信息包括:学号、姓名和m门课程的成绩(MATH,C,ENGLISH)。程序运行时显示一个简单的菜单,实现对学生信息的输入(INPUT)、总分统计(COUNT)、总分排序(SORT)、查询(QUERY)等功能。让学生2~3人一组自由组合,选择自己感兴趣的题目,各小组成员相互协作,及时讨论,共同完成课程设计任务,根据教师提供的基本功能,每个小组可在此基础上结合自己组内成员的实际想法,添加或细化功能,从而得到一个更贴近实际的功能模块划分。在这种相互协作式的实践中,学生的各种问题得以及时讨论消化,同时在解题思路、思维方式、学习经验等方面相互影响,能很好地促进学生自主学习能力的培养,培养团队意识。
总之,教学改革的研究和实践是一项长期的、持续渐进的过程,我们的目标是培养应用型人才,贯彻“以学生为主体”的思想,不断探索提高学生学习兴趣的新教学方法,对传统C程序设计教学模式进行深入改革,从而使学生通过C语言程序设计的学习对编程思想理解得更加深入,分析和解决问题的能力有更大的提升。
参考文献:
[1]闫英战.C语言程序设计教学改革的探讨[J].电脑知识与技术,2006(08).
[2]王美红,王蒙.C程序设计教学中的创新能力的培养[J].科技信息,2008(35).
[3]刘美健.C语言程序设计课程教学改革实践[J].中国职业技术教育,2012(32).
[4]唐永红,龚安.程序设计语言实验教学探讨[J].电气电子教学学报,2006(3).
[5]刘芳,秦兴国.C语言程序设计.教学存在问题及改进[J].教育理论与实践,2012(36).
[6]江卫星.计算机网络课程教学的研究[J].电脑知识与技术,2008,4(3):682-683.
作者简介:杨晓明(1980.4— ),女,陕西渭南,讲师,硕士研究生,主要研究方向:计算机软件。西安翻译学院诒华学院人文信工教研室。
刘淑婷(1984.1— ),女,陕西渭南,讲师,本科,主要研究方向:计算机网络。西安翻译学院诒华学院人文信工教研室。
(作者单位 陕西省西安市翻译学院诒华学院)
编辑 鲁翠红endprint