地方高校C语言教学改革的探讨与分析

2014-09-11 14:24但志平,任东,王安慧,任小燕
教育教学论坛 2014年20期
关键词:计算机教育C语言程序设计

但志平,任东,王安慧,任小燕

摘要:本文针对地方高校计算机C语言在教学中的现状和存在的一些问题,探讨了不同专业下C语言教学的改革思路和相应的解决方法,并对未来新形势下地方高校的C语言教学进行了分析。通过课堂教学实践,本文提供的改革思路能够有效地提高学生主动学习的意识,达到提高C语言教学效果的目的。

关键词:C语言;程序设计;计算机教育

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2014)20-0056-03

信息产业是21世纪发展的重要方向,作为信息产业中最重要的一个支撑技术,计算机技术的发展离不开计算机人才的培养。如何培养面向未来现代化企业需求、具备较强信息技术实践能力的复合式人才,将是大学计算机教育探讨的重要内容。目前,从全国普通高校来看,无论是非计算机专业的理工科学生,还是计算机专业本身,都必须打下坚实的计算机程序设计基础,这不仅是为了让学生能顺利通过全国计算机二级考试,更是为了能让高校的学生具备信息技术素养,提高实践动手能力,适应社会的需要。计算机C语言作为一门计算机程序设计基础课程,已经在各个高校开设多年,具有相当的普及性。C语言本身的特点,使得学生在学习的过程中遇到了非常多的问题,使得学生的学习效果不好,这也是这么多年来C语言教学中需要解决和研究的课题。

本文分析了目前地方高等学校,尤其是面向像三峡大学这样正在向上发展,既有一本专业和也有二本专业的学校,针对C语言在这类学校中的现状和教学中存在的问题,结合目前课堂的教学实践,探讨了相应的解决问题的策略方法,并对新形势下的C语言教学进行了分析。

一、C语言教学现状

大学计算机程序设计语言课程,一般分为必修和选修两种。现在大多数高校开设程序设计语言课程把C语言作为理工科必修课,Basic语言作为艺术类学生必修课,而把Foxpro作为文管科必修课,对于理工科还开设了C++课程。由于C语言是面向过程的程序设计,而C++语言是面向对象的程序设计,虽然两者关系非常相近,但思想却完全不同。所以,许多一类大学,尝试着直接开设C++作为入门的语言,但效果并不都是很好。考虑到三峡大学是地方二本院校,我们仍然选择C语言作为理工类学生入门的程序设计语言,相对来说Foxpro程序设计相对容易,主要提高文管学生的实践动手能力,Basic语言采用的是可视化编程,适合基础比较差的艺术类学生。

在以理工类大学为主的学校中,以计算机C语言这门课来分析:C语言课程中内容比较全面,对算法的要求也比较高,加上C语言具有语法灵活、运算符极为丰富等自身特点,在教学中,学生普遍反映内容枯燥和难学;同时,由于课时相对压缩,C语言学时明显不足,结果学生在学习过程中总感觉进度较快,不容易掌握。由于教学效果差,有的老师放慢教学进度,结果使正常的教学内容也不能完成,很多内容没有时间去讲授,这又导致一些理工科专业的后续课程学习(譬如:计算机专业的数据结构、电气专业的C++),学生动手能力也将受到影响。

教学中的主体是学生,学生的状况也直接影响到目前C语言的教学水平。这几年很多高校的办学层次在提高,包含一本专业和二本专业,同时高考的学生规模在减小,招收来的不同专业学生基础参差不齐,不少学生对新知识的求知欲也大大地降低。因此,原有的C语言教学方法和教学手段已经不能适应当前形势下的教学任务。如何在教学中调动当前学生学习的主动性和能动性,利用有限的资源因材施教,积极探索先进的教学方法来提高教学质量,将是目前和未来研究的重点。

二、教学中的问题与教学方法的探讨

结合C语言课程的教学与实践工作,本文对教学中可能遇到的问题进行了详细分析与思考,探讨新的教学改革思路来提高教学质量,在实践中取得了一定的成效。

1.定位的问题。尽管学生已经在大一上学期学过计算机基础课程,但是很多学生的计算机素养还是很低,有不少同学跟刚进校的基础一样,仍然是零起点。计算机专业的学生也是如此,尤其是实行“3+1”新教学培养方案后,学生将从大一上学期开始学习C语言,难度进一步增大,虽然是计算机专业学生,但是计算机水平并不见得比其他专业学生高。同时,有不少学生对计算机课程学习信心很足,可是遇到C语言学习中的困难却很难解决。一方面,他们是中学应试教育的受害者,另一方面也是因为大一阶段其他课程的压力太大,学生普遍反映高数和外语学习困难较大,实在没有很多时间投入到计算机学习中,这就必然带来计算机语言教学和学生对课程认识程度的矛盾问题。

为了能解决好这个问题,首先要选择合适的教材和参考书。有些教材编得很好,实践性很强,但从学生学习的情况上来看,并不适合学生的学习,所以各专业的C语言课程都换成国内内容全面、有一定基础性的教材,学生学习效果明显好不少。同时,为了让学生更好地了解这门课,可以在第一次上课的时候,较为详细地介绍一下C语言的历史和用途、社会上的需求、为什么要开这门课、这门课应该学习什么、这门课与其他专业课的关系等,让学生能充分了解学习这门课的意义,增强学生的学习兴趣,为后面的课程学习开个好头。

2.教学内容的设置。首先内容以能力培养为目标,突出程序设计,强调算法而不是语法。逐步培养学生的程序设计思想,让学生真正地学习到分析问题和解决问题的方法。在教学的过程中,教师要重视编程思想,不要过多讲解语言的语法。注重介绍有关独立于任何特定编程语言的算法思想。重视算法的思想,并不是轻视C语言本身的语法,只是没有必要为一些语法规定花太多精力。我们只需要在了解语法的基础上更多地去模仿编程,只有通过自己多动手编程,才能有效地提高程序设计能力。同时,学习好算法,也能促进语法的掌握,这可以大大提高学习效率,更加突出教学的重点与难点,让学生更好地掌握知识点。

由于C语言用途很广,它所涉及到的内容很多,而大学的课时有限,老师不可能在课堂上讲授所有内容,而且大学生已经不同于中学生,必须具备一定的课外自学能力。因此,老师在有限的学时中必须突出重点内容。同时根据不同专业方向发展的学生,适当地调整教学大纲,调整授课内容,例如与计算机软件相关的,以后会涉及到数据结构、算法设计等专业课程,因此要在讲课过程中加强指针、结构体等内容;与计算机硬件、自动化、电气专业相关的,则必须加强数据类型、硬件编程等方面的内容;如果以后专业课程跟C语言相关较小的专业,学生可通过课程网站和图书馆资料进行学习。学生通过课堂老师讲授的内容,可以掌握知识重点,学会编程思想,再通过课外的自学,拓宽C语言知识,加强课堂内容的吸收,这样不仅有效地利用了有限的课堂学时,也充分发挥了课外学习的效能,实现了内外互补的层次教学。由于教学面对的对象不同,教学目的也会不同,教学内容的重点也不同。以突出重点内容的程序设计方法和技术,可以为高校学生自学习惯和应用能力培养奠定基础。endprint

3.教学方式的探讨。在教学过程中,目前的教学方式都是采用计算机多媒体教学。如果仅仅利用多媒体电子教案进行讲授,内容显得很抽象,学生不能很好地理解C语言的精华。而C语言是一门实践性很强的课,要求学生在学习的过程中能够主动地动手实践。所以,传统的教学方式以老师为中心,学生只是被动地去听课,只会让学生对C语言表面理解内容,不能有效地提高实践能力,远远达不到课程的学习要求。由于C语言学习有一定难度,传统的教学方式在各个高校比较普遍,所以长期以这种方式教学,忽略了计算机教学的根本是以学生为主体,忽略了学生的主动学习性、创新思维和探索精神的培养。所以,即使用计算机辅助教学,传统教学方式仍然问题还很多。

这里我们需要探讨如何改进教学方式,增进学生的主体角色。首先,在课堂上可以采用由浅入深的教学方式,通过一些趣味问题引出教学内容,然后利用多媒体(包括图像、文字、动画、声音等方式)演示出来,让枯燥的技术内容变成生动、直观的视听觉信息。其次,教学内容以实例教学引导,将实例内容根据语言的特点、程序设计方法和算法思想进行有机地组织,把知识点循序渐进地贯穿在实例内容中。最后,教师可以讲解一些趣味性较强的例题,启发学生学习的兴趣,在课外和上机实践课布置与例题相似而且贴近学生生活的程序设计作业,让学生可以通过模仿课堂上学习的例题,迅速地直观理解和掌握所学的知识,从而加强学生独立编程的能力。

另外,C语言是一门实践性很强的课程,实验环节和实验内容的设置一定要加强。C语言程序设计实验不但可以提高学生的动手能力,而且能让学生更好地理解课堂教学内容。合理的实验内容安排可以让学生很快地学以致用,通过在编程过程中体会到成就感,进而提高学生的求知欲和学习兴趣。由于上机时间有限,在学生上机前,一定要让他们准备好上机内容,上机时以调试程序为主,有问题及时向教师和同学请教,以提高效率。另外,目前我们采用的是大班教学,每个班上的学生人数大约有100人左右,在上机的时候学生众多,而实验课老师只有一人,在辅导实验时不可能解决大多数学生的问题。所以,上机时学生可以成立几个小组,学生有问题可以先在小组内互相帮助解决,比较集中的问题再由老师解决。如果遇到较难的题目时,同学之间应先讨论再独立完成,不要学生一遇到困难,老师就帮他解决问题。对于计算机专业,我们将逐步按专业分成小班制教学,以更有利地提高教学效果,增强学生的专业编程基础。

实验内容可有基础的题目,也有一定技巧、比较灵活的题目,到实验后期,可布置一些大型的作业(更多地利用课外时间完成)。大型的作业根据学生的能力和兴趣成立实践小组,每个组的作业可能不同,类似课程设计教学方式。通过大型课程作业的实践,学生可以尽早地面向应用的程序设计实践环节。在这个过程中学生要主动查阅有关研究资料、编写模块程序、调试程序、完成作业,最后写出报告、成功演示。这样可锻炼学生逻辑思维能力、创新思维能力、解决实际问题的能力、团队合作能力。教师主要从解决问题的思路上指导,培养学生的创新意识、创新精神和创新能力,提高学生的综合程序设计水平,使其具有初步的系统分析和系统设计能力。

现在学校网络普及,C语言课程所有资源可放到学校的求索学堂供学生参考。学生可以在网上访问该课程的相关资源,也可以跟教师在约定的时间内在线交流,这不仅解决了学时的限制,也丰富了教学场所(不仅仅局限在教室),给学生与老师交流创造了更多的空间和时间。同时,针对计算机专业学生,教师还可以指导学生在网上参考与C语言相关的国内高校和国外高校MOOC课程,扩展学生的视野,提高学生的学习能力。

三、小结

对于地方高校,在C语言的教学过程中,除了要充分利用学校现有计算机设备环境外,更需要根据学生的学习基础情况,制定合理的教学内容,采用先进的教学理念和教学方式去调动学生的学习主动性。同时,在学生的学习过程中及时关注学生教学反馈信息,不断修正教学内容,改进教学方法,最终提高教学质量。

参考文献:

[1]郑文斌,等.面向C语言课程的多角度模块化教学方法探索[J].教育教学论坛,2013,(19).

[2]王欣如,等.程序设计课程与探究式教学方式[J].计算机科学,2009.

[3]薛非.抛弃C程序设计中的谬误与恶习[M].北京:清华大学出版社,2012.

[4]廖灵芝,等.“最近发展区”理论在C程序设计教学中的应用[J].计算机教育,2010,(22).

基金项目:2012年湖北省高校省级教研项目(2012232)。endprint

猜你喜欢
计算机教育C语言程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用
论子函数在C语言数据格式输出中的应用