独立学院C语言程序设计的教学探讨
2013-12-29宋晓华朱世英王凌朱竞娅
摘要:C语言是独立学院开设的计算机语言课程之一。为了使学生更好地掌握这门语言,结合C语言和独立学院学生特点,对C语言这门课程从理论教学和实践教学两方面进行探讨。首先,介绍了C语言的发展及特点,针对独立学院这一特殊教学对象群体,提出了在教学过程中更加需要教师认真对待;然后,在理论教学的基础上,说明了激发学生学习兴趣、培养学生编程能力的重要性及实际可行的教学方法;最后,提出了上机练习与实践应用相结合的实践教学模式,让学生在实践中逐步掌握C语言的语法规则及算法,教学效果良好。
关键词:C语言;编程能力;教学方法
中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2013)12-2840-04
C语言是目前最流行的语言之一,它既具有高级语言程序设计的特点,又具有汇编语言的功能[1]。同时,C语言概念简洁、语句紧凑、表达能力强、程序结构性和可读性好,很多院校都将C语言作为第一门计算机语言课程开设。但是,由于C语言灵活性大以及内 容抽象等特点,加之授课对象是刚刚接触程序设计语言的大一或大二的学生,在实际的教学过程中,很多
学生由于对概念理解模糊、逻辑思维理解能力不强,导致普遍认为C语言很难学,甚至是畏惧C语言编程。该文针对C语言特点以及独立学院学生这一特殊教学对象,结合对C语言的学习体会、教学过程及C的实践应用对C语言在独立学校的开设进行教学探讨。
1 语言的介绍
C语言是国际上广泛流行的计算机高级语言。它既可用来写系统软件,也可用来写应用软件。C语言的祖先是BCPL语言。C语言既保持了BCPL和B语言精炼,且接近硬件的优点,又克服了它们过于简单,无数据类型等的缺点,C语言的新特点主要表现在具有多种数据类型[2]。开发C语言的目的在于尽可能降低用它开发的软件对硬件平台的依赖程度,使之具有可移植性。
C语言是一种通用性很强的结构化程序设计语言,它具有丰富的运算符号和数据类型,语言简单灵活,表达能力强等特点。C语言的主要特点如下。
具有低级语言功能的高级语言:C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此C语言既具有高级语言的功能,又具有低级语言的功能,C语言的这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言[3]。
模块化和结构化语言:C语言用函数作为程序模块,以实现程序的模块化;C语言具有结构化的控制语句(如if...else语句、while语句、do...while语句、switch语句和for语句),语言简洁、紧凑。
可移植性好:C语言不包含依赖硬件的输入输出机制,使C语言本身不依赖于硬件系统,可移植性好。
执行效率高:C语言生成目标代码质量高,程序执行效率高。
2 独立学院学生特点
C语言成绩设计要在独立学院开设并且办好,首先需要对授课对象也就是独立学院的学生特点进行全方面的了解。独立学院是近几年来随着高等教育的快速发展产生的新型高等教育办学形式,其招生录取线主要介于普通本科和高等专科之间,是我国高等教育办学机制的大胆探索和创新,在扩大高等教育资源和高校办学规模方面起到了积极作用,逐渐成为当前和今后一定时期高等教育发展的一个重要方面[4]。独立学院的学生在基础知识、自身素质、认知能力等方面存在着某些差异。大部分独立学院学生相较于本一、本二学生基础知识较差是事实。学生的基础知识掌握较差,偏科现象严重, 如英语、数学基础底子薄。学生渴望获得优良成绩,敬佩学业优秀的同学,但学习毅力和刻苦精神不够。部分学生学习目的不够明确,学习态度不够端正,他们没有良好的学习习惯和饱满的学习热情,自主学习的能力和毅力不够。表现在上课不专心,课后不自习,经常迟到、早退。部分学生自律性差。所以,掌握好独立学院学生的特点,针对这一特殊授课群体,更加需要教师不管是从理论还是实践上机方面都需下足功夫。
3 理论教学
在C语言理论教学过程中,首先,教师要让学生对C语言程序设计这门课有直观的感性认识,结合独立学院学生所学专业的特点,对理论讲授教案精心设计安排,使学生体会到C语言程序设计在以后的工作及生活中的应用,提高学生学习兴趣;其次,在具体理论教学中,力求做到概念准确、简洁、易懂,注重基础知识的学习,使学生由浅入深、循序渐进的掌握C语言并培养阅读及编写程序的能力。
3.1 激发兴趣
在C语言教学过程中,首先打消学生对C语言的陌生及恐惧,逐步培养学生学习兴趣。兴趣是求知的内在动力。激发起学生的兴趣,学习就会积极主动, 学得轻松而有成效。但是学习兴趣不是天生的,主要在于教师如何引导学生,充分调动学生对学习的积极性和主动性,进而能创造性地学,最终达到优化课堂教学和提高教学效率的目的。
在教学过程中,首先,教师应是组织者,引导者与合作者。教师的作用便是调动学生主动思维和主动参与的积极性。同时要关注学生个体差异,让每个学生得到全面发展。尊重学生、面向全体学生是激发学生学习兴趣的重要手段。就必须面向全体学生,尊重学生,做学生信赖、喜欢的老师,这样才能引起学生的兴趣。因此,教师应根据学生的认知规律创设条件,引导学生主动学习、探究,通过具体引例使学生进入C语言课程学习。其次,营造以学生为主体的严谨活泼的课堂氛围。教师必须相信学生有潜在的尝试能力,对学生的探索活动要充满信心,循循善诱。创设师生心理相容的课堂气氛,使学生感到老师既是师长,也是最可亲近,可以与之交心的朋友。精心设计教案以及灵活运用多媒体,调动兴趣。卢梭说:“教育的艺术是使学生喜欢你所教的东西。”鲜明的表现力和直观的形象性, 最能调动学生的多种感官,唤起其浓厚的学习兴趣,使学生不知不觉的进入C语言课程设计的教学内容之中。
3.2 培养能力
在C语言教学过程中,培养学生能力是至关重要的。C语言作为一种计算机编程语言工具,学习它的目的在于培养学生程序设计能力,从而解决相关的实际问题。所以,在实际理论教学中,通过结合各种语法规则和格式等细节讲授C语言程序内容。下面从主要从阅读程序能力和编写程序能力来探讨。
3.2.1 阅读程序能力
C语言的语法规则和格式规定比较多,一般情况下,教师针对这些语法的使用情况,利用一些典型例题进行讲解。在课堂上需注意以下几点:
1)从教师自我做起,课堂上书写程序规范,严格要求学生。
2)课堂上带学生所阅读的程序要难易适中,覆盖面要广。
3)将复杂问题简单化、模块化。
4)采用举一反三、案例教学、任务驱动和师生互动相结合。
5)由浅入深、循序渐进、精讲多练,全面提高学生设计程序能力。
但是由于学时有限,为了更好的掌握C语言,教师应该为学生提供及推荐一些学习C语言课程较好的教材、习题册或是学习网站作为参考资料,使学生除了在课堂上接触C知识和技巧之外,在课下可以阅读到大量别人的程序,然后才能使学生加深对C语言各种语句的使用,拓展学生的思维理解能力,提高学生的编程技巧,最终能够很好的解决实际问题。
3.2.2 编写程序能力
编写程序解决问题是学习C语言最终目的。然而编写程序最重要的是寻求解决问题的思路和方法,即算法。在实际教学中,如while循环结构,采用案例教学法讲授计算从1到n的n个自然数的累加,程序代码如下:
#include
main()
{ int i,n,s;
printf(“Please input n:”);
scanf(“%d”,&n);
i=1;
s=0;
while(i<=n)
{
s+=i;
i++;
}
printf(“sum=%d\n”,s);
}
程序运行结果如图1所示:
图1 运行结果
在这段代码中,循环开始时初始状态的设置是由变量i和s的初始化操作来完成的。循环的执行条件是i<=n。在满足这一条件的情况下,i的值被累加到变量s中,然后由语句i++修改循环控制变量i的值。当while语句执行完毕后,变量s中就保存了从1到n的n个自然数的累加结果。
在使用while语句时有两点需要注意。第一点是对初始状态的描述需要完整、准确。在上面的例子中,不仅要正确地设置循环控制变量i的初始值,而且要正确地设置累加变量s的初始值,即将其清零,否则计算结果将是错误的。第二点需要注意的是,对<表达式>的循环求值应最终导致循环结束。如果在<表达式>中不包括读取输入数据等对外部条件的判断,则在循环体中必须有影响<表达式>求值的操作,而且对<表达式>的影响要导致循环结束。在例中,循环执行的条件是i<=n,因此在循环体中不仅必须要有对变量i的修改,而且i的值必须是递增的,以便使得循环条件执行了一定的次数之后不再被满足,因此循环得以结束。忘记对与循环条件相关的变量修改,或者修改的方向与循环判断条件不一致,都会造成执行结果的错误或者死循环,使得程序一直执行循环语句而不会停止。
通过上述自然数累加和题目的讲解,不仅使学生掌握了while编程的基本思路和方法,而且可以使用举一反三的方法,拓展提高学生分析和解决问题的能力。比如,上例求自然数累加和拓展到如何编写奇数累加或是偶数累加来启发学生,在启发过程中,教师应逐步提问,调动学生的编程兴趣,引导学生跟进思考,鼓励学生使用不同的方法进行编程,并使学生形成一种编程的思维习惯,这对提高学生独立编程解决实际问题的效果非常好。
4 实践教学
程序设计是一门实践性很强的课程,不能只依靠课堂学习和看书就能很好的掌握C语言程序设计。应当十分重视学生动手编写程序和上机运行程序。上机的时间愈多愈好。学习C语言时有一点应当注意:对于我们独立学院的学生,由于学生基础差,学生之间差异较大,自学能力低等特点,教师应该强调学生把精力放在最基本、最常用的内容上。开始时不要钻牛角尖,在一些具体细节上死抠。有一些细节,随着对C语言的了解逐步深入和实践经验的逐步丰富,会自然地掌握的,而有一些细节则要通过长期的实践才能真正熟练掌握。
4.1 上机调试程序
在C语言实践教学中,重点培养学生关于编程工具的熟练使用,以及调试和修改程序的能力。目前,使用较广泛的C语言编程环境是VC环境[5]。在上机课上,根据理论内容进度,合理布置上机内容,包括基本功能实现,新功能的添加以及尝试变换条件等方式,使学生充分利用编程工具提供的调试功能,对有错误的程序进行反复的运行和调试,最终得到正确的运行程序,同时总结经验,只有这样不断的练习,才能使学生对理论知识有深入的理解和掌握,对实际问题的解决能力有更进一步的提高。
4.2 C语言实践应用
一般来说,独立学院学C语言是一种入门语言,它是一种面向过程的,我个人理解就是面向对象的语言,它里面最终实现对象的功能还是过程式的。如果不是计算机相关专业的学生,学习C语言用来培养一下逻辑思维、学些编程的基础概念,假设以后会涉足到计算机这方面的话,有一个良好的理论和思维基础。但是在计算机领域,C语言仍是今天应用最为广泛的语言。它主要是面向底层的,也就是说它主要是对硬件的操作。日常用户所能常见的C语言程序主要是各种硬件驱动程序、嵌入式程序(例如一些车载导航系统、微型手持设备等)还有大部分操作系统也主要是由C语言写成的,当然C也在单片机中有很多的应用[6]。在大三大四阶段,学校就会组织一些学生参加多种国家级、省级电子大赛,很多优秀作品基于单片机或是嵌入式系统的并用C语言编程实现功能,都获得了优异的成绩[7]。这样将C语言的理论学习和实践应用相结合,对学生毕业设计以及将来步入工作岗位都是一个坚实的基础。
5 结束语
C语言课程是独立学院设置的培养大学生计算机能力的一门基础语言,学习C语言,培养学生的编程思维能力,为将来学习其他编程语言或是参加工作打下坚实的基础是至关重要的。针对独立学院学生特点,结合实际教学要求和内容,提出了理论教学和实践教学相结合的方法,重点培养学生掌握C语言程序设计的方法和思维能力,提高了学生学习的兴趣和主动性,使其掌握基本算法和编程技术,以解决实际问题,才能不辜负教育工作者的不断探索和寻求,实现教学的最终目标。
参考文献:
[1] 谭浩强.C程序设计(第二版)[M].北京:清华大学出版社,1999.
[2] 杨照华.计算机专业课程与教学改革初探[J].煤炭技术,2012(3):251-252.
[3] 王海燕,韩萌.浅谈C语言程序设计教学[J].科教论坛,2007(6):25-27.
[4] 彭斌.高职院校C语言程序设计[J].教学探讨,2008(36):196-197.
[5] 沈军.C语言程序设计语言课程的教学新思路[J].电气电子教学学报,2000(4):15-16.
[6] 马忠梅,籍顺心,张凯.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,1997.
[7] U.Tietze Ch.Schenk.Electronic Cricuits, Handbook for Design and Application[M].Berlin,New York: Springer-Verlag,2002.