APP下载

注重编程能力培养的C语言过程化考核教学改革

2016-11-16王兴芬杨大利

实验技术与管理 2016年9期
关键词:C语言编程知识点

陈 昕, 王兴芬, 焦 健, 杨大利

(1. 北京信息科技大学 计算机学院, 北京 100101;2. 北京信息科技大学 教务处, 北京 100192)



注重编程能力培养的C语言过程化考核教学改革

陈昕1, 王兴芬2, 焦健1, 杨大利1

(1. 北京信息科技大学 计算机学院, 北京100101;2. 北京信息科技大学 教务处, 北京100192)

针对大一新生C语言“编程”入门较难的状况,采用“编程”知识点逐步深入,阶梯式递进的“编程”分阶段考核的方式,使学生产生对C语言“编程”的学习兴趣,继而掌握基本的“编程”技能。过程化考核改革所带来的C语言课程教学内容、教学方法、教学手段和考核方式的创新,进一步激发了学生的“编程”学习兴趣,增强了学生“编程”实践的自主性和自觉性。

“编程”能力; C语言程序设计; 过程化考核

1 C语言课程教学现状

过程化管理的教学模式近年来一直是教学改革的重点[1],由于高校课程的差异,不存在一个统一的教学模式,需要针对课程的不同探寻摸索。

目前大多数高校将C语言作为计算机类专业程序设计基础课程,一直存在教学与考核方法较单一的状况。课程考核结果一般由平时成绩、实验成绩和期末考试成绩构成,其中期末考试成绩所占比重最大,一般采用笔试的方式,试卷中的客观题比重偏大,更为注重原理与概念。这种传统考核与教学方法不仅导致学生将该门课程认识为一门理论课程,甚至产生了其对计算机类专业的“误解”。一方面,课程的考核成绩不能准确衡量学生编程能力的高低;另一方面,学生刚接触“编程”课程就不能够尽快适应专业实践方式,常常导致其对计算机类专业课程学习的困难,甚至失去专业学习兴趣和自信心,也就缺少了专业学习的动力和自觉性。

针对此类问题已有很多方面的研究,从诸如课程设计改革、精品课程设计和教材等多个方面实施,并取得了一定的成果[2-4]。但以上研究大多没有考虑C语言与其他课程之间的关系,而作为一门基础课程,这恰恰是C语言教学中所需要重点面对的问题[5]。需要指出的是,C语言教学作为一门实践性极强的课程,其教学常需要大量实验辅助,实验建设一直是此方面的重点关注问题[6]。在大学教育普遍压缩学时的情况下,采用以考代练的机考是公认的较好模式,国内已经有一些这方面的研究出现[7]。

本文从2012级C语言“编程”能力的过程化考核改革入手,针对大一新生C语言“编程”入门较难的状况,采用“编程”知识点逐步深入,阶梯式递进的“编程”分阶段考核的方式,通过C语言课程教学内容、教学方法、教学手段和考核方式的创新改革,课程组集体讨论设计出每类知识点的综合应用案例,运用案例和问题导向教学,进一步激发学生的“编程”学习兴趣,增强学生“编程”实践的自主性和自觉性。

我校计算机学院开设计算机科学与技术、软件工程和网络工程等3个本科专业,C语言作为3个专业共同的专业基础课程,课程本身承载着计算机类专业学生认识“编程”课程的特点、专业实践基础能力的培养、专业学习兴趣与自信心培养的关键起点。C语言程序设计课程的目的在于使学生掌握“编程”的基本技能,让学生具备一定的“编程”基础,为后续专业类课程学习奠定“编程”实践和专业知识基础。

计算机类专业对“编程”实践能力的培养要求是一致的,同时由于3个专业的定位和专业方向不同,其对C语言课程教学的要求也略有差异,表1给出了C语言课程中各个知识点对应3个专业的能力要求矩阵。从表1可看出,3个专业的C语言基本“编程”能力要求是一致的。随着C语言课程教学内容的加深,不同专业对一些知识点要求的掌握程度出现了差异。例如,关于指针部分,软件工程专业后续的“编程”课程是Java,对指针知识点的要求不高,做到了解即可,而计算机科学与技术专业对学生嵌入式开发有较高的要求,网络工程则侧重学生底层通信协议开发的能力,都对指针知识点的掌握要求较高。

表1 不同专业对程序设计C语言课程需求

2 计算机类专业C语言课程过程化教学改革

鉴于C语言课程在计算机类专业学习的特殊性,计算机学院将C语言课程列为院级核心主干课程,成立课程组,学院从师资投入和资源方面给予重点支持。学院专门制定了相应的“研究生助课制度”,加强学生学习过程的全面指导与答疑力量。围绕C语言课程过程化教学与考核改革,课程组制定了集体讨论与备课制度。集体讨论设计出每类知识点的综合应用案例,运用案例和问题导向教学。鼓励学生主动实践,充分利用C语言课程的过程化教学与考核平台资源,多练多交流,学院还专门为学生开放学院所有实验资源,每个班级均能够有自主管理的实验室资源。

为达到“精讲多练、边讲边练、问题导向”的C语言课程教学的过程化改革,课程组教师走访多个学校,在国内高校充分调研的基础上,选择与成都信息工程学院网络工程学院开展深入合作与交流,共同完善并开发出了“C语言程序设计过程化考核平台”。该平台可以通过学生提交代码、后台编译多个用例测试的方法,按照用例的比例给学生成绩。该平台的特点在于注重过程化教学与学习实践,学生的学习过程也是专业实践的过程,所有的知识点均可以在实践平台上得到运用。

课程组围绕考核平台规划教学设计路线,见图1。

图1 过程化教学设计方案

该路线以课程目标为出发点,从问题教学出发,着眼如何提高学生的编程实践能力。在教师指导的方式下,利用模拟考试提高学生编程技能,如果学生未达到预先的课程目标则继续强化编程实践,反复训练以达到最终的教学要求。在路线实施过程中结合国内同类课程改革的经验,将提升学生计算思维能力[8]和以考试系统无纸化为特点[9],实现一体化的教学设计。

考虑到C语言课程综合运用能力,结合所学理论知识,帮助学生分析问题并学会解决问题,最后达到理论与实践的融会贯通。C语言课程需要学生能够用C语言完成具备一定功能的软件编制,该过程学生需要提交设计计划,经授课教师确认开始编程实现。在本课程教学设计中,通常最终要求学生设计一个信息管理系统。该系统功能基本上需要用到C语言课程中学习到的文件、链表、数组和函数等知识点,学生可以在编写程序的过程中,逐步将基础“编程”技能提升到“编程”应用的较高层次,同时培养了学生的学习兴趣和自觉性。

3 C语言课程过程化考核改革

传统的C语言课程考核方式不能全面考核学生知识的掌握和运用情况,一般采用笔试的方式,试卷中的客观题比重偏大,更为注重原理与概念。往往造成“临考突击通过,过后即忘”的结果。该课程在开设过程中,经常出现学生在结课后仍然不具备编程的基本能力,即使考试成绩合格也仍然不会编代码。后续一些课程的教师反映,学生由于编程能力欠缺,实现基本的算法都有困难,对专业学习失去自信心,甚至出现了厌学的思想。考虑到C语言程序设计课是一门实践性很强的课程,2012年之后对课程考核实施改革,以上机考试为手段,通过过程化考核的方式,以分阶段分层次的方式,达到提高学生编程技能的目的。

在过程考核阶段,当教师完成某一个阶段的授课时,为学生布置测试题,学生在指定时间内完成测试并实时获得成绩。这种方式最大的好处就是学生的考试环境与平时环境完全相同,在非常熟悉的环境下完成考试过程。学生不用期末突击学习,而是分阶段完成各个知识点的学习和考试任务,分阶段取得相应的成绩,不仅降低了学生的学习难度,同时也有助于学生及时掌握自身编程的不足,调整学习重点,提高学习效率。

以往的课程考核总评比重中,期末成绩占总成绩的70%~80% ,引入过程化考核之后,教师可以分阶段设置对学生考核的内容,各个阶段的成绩达到总成绩的50%左右。表2为过程化考核引入后的具体分配方式,考虑到对学生编程能力的巩固和提高,对期末考试权重仍有一定的要求。

C语言课程过程化考核改革中,针对这一问题采用多元化的考核方法,结合C语言的教学特点,课程组设立若干个模块知识点,包括基本编程技能、变量使用、顺序结构、分值选择结构、循环结构、数组、函数设计、指针操作、结构体和文件,每个基本模块又设立一般、较难和困难3个档次。学生可以在平时有针对性地对各个知识点进行练习,加大平时课堂学习及作业等考核成绩的比重,教师则根据所授课班级的专业特点动态调整知识点的难易程度。为了提高题库的质量,课程组和学院的20多位教师先后3次对题库进行了大规模的修改,改进后的平台具备多次提交答案、实时查看成绩的功能,极大地减少了教师批改作业和试卷的工作量。

表2 过程化考核的方式、内容及评定说明

过程化考核方法对教师的教学具有很大的促进作用。多元化的考核方法对教师提出了更高的要求,在评价学生学习效果和能力的同时,教师可以获得反馈信息,督促教师更加合理地安排教学内容、调整教学方法。过程化考核能够增加师生之间的互动,及时获得教学效果反馈信息,有助于发现教学过程中存在的问题。如教学过程中发现灌输式教学法存在问题,及时采用启发式教学方法,甚至对某些章节采用自学方式。如数组中的排序算法,教师把要解决的问题提出来,通过例题让学生自学并解决问题,最后,教师讲解过程推导的来龙去脉,并进行应用总结。这样以应用为目的反向教学使学生对知识点和基本原理的印象更深刻,更不易忘记。过程化考核的最终目的是培养学生独立思考、研究和判断的习惯,提升学生的整体能力。

4 过程化教学与考核改革效果评估

过程化教学的教学效果评估是过程化教学的重要一环[10],无论是对实践类教学还是理论教学,近年来都有一些完整的分析方法,其中教考分离是目前比较推崇的一种评估考核方式[11]。

课题组通过对2012—2014级计算机学院程序设计试卷分析统计,期末考试采用教考分离、机考试卷随机出题的方式,计算机自动阅卷,以保证考核的客观性、真实性。由于随机出题的难易程度不易统一,为公平起见,对于考试成绩偏低的学生提供二次考试的机会。从考试成绩看,取得优秀(90~100分)的学生成绩比例在30%左右,不及格一般在10%以下,学生的编程能力得到了较好的提升,并且能够真实反映学生“编程”能力的基础与水平。

课程组对2012级学生进行跟踪调查,分析了该年级学生后续的培养过程和毕业情况。从数据显示可以看出,2012级学生的整体专业“编程”能力比以往的学生有大幅提升,其中超过50人次在国家级各类编程比赛中获得了奖项,超过60人次主持或参与国家级和北京市级大学生创新计划。由于该年级学生对于编程的兴趣浓厚,进而引发其专业课程学习的热情和考研的需求。据统计,该年级学生有40人达到2016年国家研究生录取分数线,3名学生获得免试推荐研究生资格,5名学生获得国外攻读研究生资格,占整个年级人数的近15%。该数据创下本校学生近10年考研升学新高。毕业设计能力情况和就业形势等再次证明了基础“编程”能力科学训练的突出效果。

5 结语

通过4年来C语言课程过程化教学与考核改革,发现多样化的、科学的考核评价模式对激发学生的学习积极性、调动教师的教学积极性,以及推动教学内容、教学方法、教学手段和教学考核等都有积极的促进作用,最终达到提高学生“编程”实践能力和专业学习兴趣等教学效果的目的。C语言课程过程化教学与考核改革得到了学校和北京市的大力支持,分别作为校级重点教学改革项目和北京市教育教学改革项目给予了立项资助。目前,该项目已经被北京建筑大学计算机系引进并投入使用,还有部分国内高校表达了引进的意愿。该项教学改革的实际教学效果和社会示范效果已经显现。

References)

[1] 朱征宇,王茜,杨广超,等.一种基于全过程化管理的讨论式教学模式[J]. 计算机教育,2013(3):80-84.

[2] 杨浩,张琛.《C语言程序设计》教学探讨[J].福建质量管理,2015(12):196.

[3] 耿姝.普通高校“C语言程序设计”精品课程建设初探[J].工业和信息化教育,2013(5):38-46.

[4] 童占梅,冉哲.提高大学专业课程和教材质量的思考:以哈尔滨工业大学“C语言程序设计”国家精品课程为例[J].工业和信息化教育,2013(5):20-24.

[5] 苏小红,赵玲玲,王甜甜,等.C语言公共基础课教学内容与教学方法的改革与实践[J].工业和信息化教育,2014(12):70-73.

[6] 乔宪遐,杨乐.基于CDIO的C语言虚拟实验室建设研究[J].实验技术与管理,2015,32(10):122-123.

[7] 苏小红,王宇颖,王甜甜,等.面向综合实践能力考核的C语言编程考试自动评分系统[J].实验技术与管理,2010,27(10):175-177.

[8] 汪红兵,姚琳,武航星,等.C语言程序设计课程中的计算思维探析[J].中国大学教学,2014(9):59-62.

[9] 井超,梁志剑,靳雁霞.基于无纸化考核系统的C语言程序设计教学模式改革[J].计算机教育,2015(20):35-38.

[10] 李楠.程序语言设计类课程考核方案评价方法的改革与实践[J].当代教育实践与教学研究,2015(6):264.

[11] 陈少国.高校教考分离的优越性及其实施途径[J].佳木斯职业学院学报,2015(1):113.

Teaching reform of C language process assessment based on programming ability training

Chen Xin1,Wang Xingfen2,Jiao Jian1,Yang Dali1

(1. Computer School, Beijing Information Science and Technology University,Beijing 100101, China;2. Teaching Affairs Office,Beijing Information Science and Technology University,Beijing 100192,China)

From the C language programming ability of process assessment reform,this article thinks that the teacher gradually teaches programming knowledge,stage assessment of students programming ability, which can cause the students to have the interest in learning the C language programming,and then acquire the basic programming skills, because a freshman is difficult to grasp the basic knowledge of C language programming. Through the teaching reform and practice,this article indicates that the programming arising in the process of examination reform of C language teaching content,teaching methods,teaching means and examination of innovation can stimulate students’ interest in learning, and enhance their independence and self-awareness of the programming.

programming ability; C language program design; process evaluation

10.16791/j.cnki.sjg.2016.09.040

2016-04-13修改日期:2016-05-10

北京市教育教学改革项目“面向应用型人才培养的《程序设计基础》课程过程化教学与考核改革”(2013-ms184);北京市教育教学改革联合项目“首都地方院校实施‘卓越工程师教育培养计划’的研究与实践”(2013-lh20)

陈昕(1965—),男,江西南昌,博士,教授,研究方向为计算机网络系统性能评价与安全

王兴芬(1968-),女,山东平度,博士,教授,研究方向为电子商务安全.

E-mail:xywang@bistu.edu.cn

G642.0

B

1002-4956(2016)9-0155-04

猜你喜欢

C语言编程知识点
一张图知识点
一张图知识点
第四页 知识点 歼轰-7A
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
基于Visual Studio Code的C语言程序设计实践教学探索
纺织机上诞生的编程
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索