摘 要:文章叙述了国内外高校计算机入门编程教育语言的变迁,分析了当前C语言的教学现状及存在的一些问题,并以五邑大学为例,对C语言程序设计课程教学进行了一些探索和实践,针对性的制定不同专业的教学大纲、编写教材,探索一些新的课堂教学手段以及对当前的考核模式进行改革。从实际的教学情况来看,取得了较好的效果。
关键词:C语言;教学探索;教学实践;程序设计
中图分类号:G642 文献标识码:A
Abstract:This paper describes the abroad and domestic changes of introductory university computer programming language education,analyzes the current teaching situation and some exists problems of the C language,and makes an example by Wuyi University,carried out some exploration and practice on the C programming language teaching,made targeted syllabus for different professional,written textbook,explore some new classroom teaching methods and reform the current assessment model.From the practical teaching situation these reform measures achieved good results.
Keywords:C language;teaching exploration;teaching practice;programming
1 引言(Introduction)
国内外计算机编程入门教育经历了Pascal、Basic、C、C++以及Java语言的变化历程,就目前而言国外特别是美国高中和大学里以Java语言为首选编程教学语言,而国内工科院校则以C语言为计算机编程入门教学语言。
C语言程序设计是计算机相关专业包括通信工程等专业的必修课程,也是数据结构、C++程序设计、数据库原理等后续相关专业课的基础,在计算机相关专业的课程体系中起着重要作用,国内高校也在越来越重视该课程的教学[1-3]。
以五邑大学为例,1990年代中后期C语言是编程入门教育课程,学时数72学时,后续还开设了C语言课程设计(36学时)和C语言高级编程课程(54学时),总学时达到了162学时。21世纪初,受国内外的影响,我校的编程语言入门教育也转为C++,然而教学效果非常不理想,导致学生在高年级的专业课程学习中感到十分困难,普遍难以达到所需要具备的编程能力。当前,许多专家教授已意识到了这个问题,并达成了一个基本的共识,即要强调C语言在整个专业教学的重要地位,回归它的本质,作为编程入门教育课程。
2 C语言教学现状(Current teaching situation of the C language)
C语言作为一种面向过程的程序设计语言,其语法细节相对繁琐[4],集抽象性、逻辑性、实践性于一身[5,6]。大部分学生难于理解和掌握,导致学习积极性不高、学习效果不理想。但从重要性来讲,目前市面上的大部分软件都是采用C语言编写的,包括一些主流的操作系统,因此要想提高我国的整体软件水平,必须重视C语言的教学[7]。
2011年,五邑大学进行了较大规模的扩招,并举行了全校性的大规模2011版培养方案的研讨,还邀请企事业用人单位参与讨论,反复修改制订教学计划。计算机学院2011级5个专业(专业方向)8个班级明确以C语言为编程入门教育课程,而信息工程学院则将C语言程序设计作为院级平台课,从2011级9个专业(专业方向)18个班级开始执行,学校其他工科专业也相应的开设了类似的程序设计课程。2011版培养方案尽管强调了C语言的核心重要地位,但学时数却在减少,2011级、2012级和2013级计算机学院各专业《C语言程序设计》学时数为64(含18学时的课内实验),另开设16学时的课程设计,2011级信息工程学院各专业《C语言程序设计》学时数为32,同步开设16学时的课程设计,2012级和2013级调整为总48学时,其中含12学时上机实践,不再安排课程设计。面对当前五邑大学C语言的教学现状,如何在学时数减少的情况下保证教学质量,使学生建立完整的程序设计思想,系统的掌握C语言,就成为了我们迫切需要解决的问题,而继续沿用过去的教学方式、大而全的教学内容组织显然是不合适的,因此需要对C语言的教学进行改革,以适应新形势下的教学需要。
3 教学探索与实践(Teaching exploration andpractice)
3.1 教学内容
程序设计是一种具有创造性的工作,它具有一定的抽象性,而且需要使用数学的方法去描述一些问题[8]。这使得在C语言程序设计的课程教学中,必须打破原有的教学模式和知识体系,从注重语法细节和基本用例的讲解转变为注重能力的培养。在教学过程中不能以是否将C语言所有知识点都讲授完为教学目标,而应该转向以培养学生“分析问题和解决问题”的能力为核心,淡化语法细节,让学生建立完整的程序设计思想。
针对不同专业的教学需求和学时数的区别,制定不同的教学大纲,注重能力培养为主,以C语言基本体系结构为基础,覆盖C语言基本语法集。信息工程学院各专业侧重于基本命题的求解和编程,将构造类型和文件的读写作为选讲内容。而计算机学院各专业则侧重于综合性和设计性问题的求解和编程,特别强调指针的应用,动态内存分配以及链表的基本操作,重点培养算法设计能力。endprint
3.2 编写教材
现有C语言教材中,大多数追求大而全,注重语法细节,测试用例多为纯数学问题,这与我校的C语言教学现状有较大的偏差。为此,C语言教学组结合当前我校的实际情况,组织人力根据教学大纲的需求编写了一本适合我校师生的C语言教材。2012年8月,教材《C语言程序设计》在清华大学出版社出版,该教材介绍了程序设计的基本概念和基本方法,不拘泥于语法细节,注重解题思路、算法实现和程序设计思想,在保证概念清晰、准确的前提下力求做到语言通俗易懂,引导学生真正进入程序设计的门槛,为后续专业课程的学习与计算机技术的实际应用打下良好的基础。
该教材率先在我校2012级和2013级学生上投入使用,每年使用数大约1300本,普遍受到了好评,同时从出版社反馈回来的信息,除我校学生自用外,其他一些高校也使用了该教材。
3.3 教学手段探索
常规的C语言课堂教学,都遵循语法规则的讲解,然后讲解例子,最后在集成开发环境中实现。这种教学思路有其固有的优点——严谨,然后存在以下几个问题:方式比较枯燥,学生很难长时间保持学生兴趣;学生上课听得明白,而实践时对题目无从下手;导致学生产生误解,认为学习语法知识是为写程序而学,而不是为解决问题而学。
因此,对传统的教学模式进行改革就成为必然。在课堂教学过程中,以一个较大的案例为主线主导整个教学,将其按教学知识点分割成小模块,在教学时,从日常生活中常见的例子着手,结合C语言的语法来讲,这样令学生更易理解,且不会觉得枯燥,然后讲解案例的实现,如此整个学期下来,一个较好的案例自然就完成了,达到培养学生“自顶向下、逐步细化、自底向上、逐步积累”的能力。在每个知识点的教学实例讲解中,不直接给出正确的代码,而是主动设置一些错误,引导学生去思考并解决存在的问题,让学生掌握排查程序代码中错误的方法。构建C语言自主学习网站,延伸学习的时间和空间。
3.4 考核模式改革
以往总评考试主要分为平时成绩和期末考核成绩,一般的比例为30%:70%,且期末考试为笔试,以理论知识点为主,侧重客观题,设计性等程序操作题所占比例极少,这种考核方式主要的缺点在于忽略了C语言的实践操作性,会导致即使通过了考试但仍然不会编写程序的现象。
针对这个问题,对考核方式做了较大的改变,一是将总评成绩的组成分为三部分:平时、上机实践和期末考试,比例为10%:30%:60%,强调平时上机实践成绩,让学生重视上机实践,而不是简单的交差了事。二是将传统的笔试改革为机试,自主开发了一套考试系统,实现自动评卷,试卷大幅度提高程序操作题所占的比例,题型的设置也多样化,包括程序改错、程序填空和程序设计题,着重考核学生的实际应用能力。
3.5 实践反馈
经过2011至2013三个年级的教学实践,课堂教学效果情况逐步变好,学生也能跟着老师的思路来思考问题,学习效率得到了提高。上机实践时一碰到问题就等待老师来解决的现象减少了,说明学生也初步掌握了如何排查程序中的错误以及调试程序的方法。从后续课程的学习情况来看,普遍反映这批学生较前届的学生有更扎实的编程基础,实践动手能力增强了不少。这些好的转变说明了对C语言教学进行的改革是有效的。
4 结论(Conclusion)
本文叙述了20世纪90年代以来国内外高校计算机入门编程教育语言的变迁,分析了当前C语言程序设计的教学现状以及存在的一些问题,并以五邑大学为例,对C语言程序设计课程教学进行了一些探索和实践。结合五邑大学工科专业(主要以信息工程学院和计算机学院两院各专业为主)C语言程序设计课程的实际教学情况,有针对性的制定不同专业的教学大纲,组织C语言教学组编写合适教材,在课堂教学的过程中探索一些新的教学手段,开发了一套C语言考试系统代替传统的笔试,实现无纸化考试以及自动评分,大大提高了效率,构建了C语言自主学习网站,延伸学习的时间和空间。通过这一系列的教学改革,使C语言的教学效果得到了大幅度的提升,取得了良好的效果。
参考文献(References)
[1] 钟美.培养应用型人才为目标的C语言教学改革[J].计算机教育,2013,(16):55-58.
[2] 邱晓红,等.融合认知结构和CDIO教育理念的C语言教学[J].计算机教育,2013,(16):107-111.
[3] 许楠.“C语言程序设计”教学改革探讨[J].长江大学学报:自然科学版,2012,(8):180-182.
[4] 李晓峰,等.工科专业C语言教学改进探析[J].长春师范学院学报(自然科学版),2013,32(1):125-126.
[5] 崔娅萍.高职C语言教学探讨与研究[J].中国科教创新导刊,2010(28):55-56.
[6] 马杰,杨磊.C语言程序设计改革探索[J].软件工程师,2013,(12):27-28.
[7] 王晓光.C语言教学的教学模式改革策略解析[J].电脑知识与技术,2013,9(29):6583-6584;6586.
[8] 雷学生,胡多.C语言程序设计教学方法探讨[J].计算机教育,2007,(6):41-43.
作者简介:
刘兴林(1976-),男,博士,讲师.研究领域:智能计算,数据挖掘,文本知识获取.endprint