APP下载

非计算机专业C语言程序设计实验教学改革实践

2017-11-07陈越洲肖必武王传立

现代计算机 2017年28期
关键词:实验报告C语言实验课

陈越洲,肖必武,王传立

(中南林业科技大学计算机与信息工程学院,长沙 410004)

非计算机专业C语言程序设计实验教学改革实践

陈越洲,肖必武,王传立

(中南林业科技大学计算机与信息工程学院,长沙 410004)

分析了目前非计算机专业C语言程序设计实验教学的现状和存在的问题,针对存在的问题设计一个实验教学系统和相应的实验教学素材。该实验教学系统将每次实验作为课程考核的一部分,实现了学生实验报告书写和批改的自动化、无纸化,既能促使学生积极主动对待每一次实验课的学习,又避免目前实验报告千篇一律的抄袭状况。

0 引言

目前,我国高等院校针对非计算机专业学生几乎都开设了程序设计类课程,C语言因其广泛的适应性和使用的普遍性成为高校理工科专业的首选。C语言程序设计课程的授课方式通常都按理论课和实验课对半的模式来设计,多数学校都是理论和实验各占32个学时。教学实践中发现,对于非计算机专业的学生来说,无论是理论课还是实验课32个学时是远远不够的。一方面,大学一年级的非计算机专业学生几乎没有相应的计算机基础知识和基本概念;另一方面,C语言本身的语法比较灵活自由,变化较多,初学者掌握起来比较费劲;因此,在这么少的课时内要学习好这门课程,对教的人和学的人都是一个巨大的挑战。在现有教学课时的条件下,教师要积极想办法提高每堂课的效率,学生也应该主动利用课堂外的时间充分准备好每堂课的学习。课程的特点决定了理论课教学是为实验课教学服务的,理论课讲授语法、程序结构、程序设计思想等的目的就要让学生能够进行编程实践。因此,C语言程序设计这门课程掌握得好不好,直接体现在实验课教学上。下文主要针对实验课教学进行改革探索。

1 C语言程序设计实验教学现状

目前C语言程序设计实验课教学普遍采用“实验指导书+教师布置书上的任务+课后提交实验报告”的模式。以我校曾经使用过的多套教材为例[1-3],实验指导书一般是跟理论课教材配套的,每次实验内容涉及的知识点基本与理论课教材章节一致,实验内容的编排结构一般包括:(1)分析程序并上机验证结果;(2)程序填空;(3)选择填空;(4)程序改错;(5)编程题。而且,几乎所有的题目(包括理论课教材后面的习题)在实验指导书后面提供了答案。教师上课通常是根据教学进度依次按照实验指导书编排的实验顺序往下布置任务。学生课后书写实验报告提交给教师。上述教学模式在教学实践中存在几个问题:

(1)从实验内容的编排来说。实验指导书的内容编排出发点是很好的,如果学生能够正确使用实验指导书对他们课外学习无疑是很有帮助的。但是,因为非计算机专业的学生对这门课程缺乏正确的认识和应有的积极性[4],因此,现实当中大多数学生都不能正确地使用实验指导书,反而起到了负面的效果。例如,“分析程序并上机验证结果”这类题,学生本应该上机前阅读程序给出结果然后通过上机来验证自己的分析是否正确,但实际上很少有学生愿意课前去做分析,而是直接将程序输入计算机运行出结果,这样学生将自己变成了打字员,根本没有达到学习的效果。又例如,“选择填空”这类题,学生只需将程序输入计算机,用每个答案去试运行即可获得正确的选项。其他的几道题,学生稍微动动脑筋想不出来就可以到书上去找答案。因此,在学生缺乏自律性的情况下,实验指导书基本上起不到应有的作用,很多学生都成了“程序录入员”。

(2)实验报告沦为一种形式。书写实验报告的目的有两个。一是老师检验学生是实验效果,二是学生通过总结对实验内容有跟深刻的理解。目前这两个目的都没有达到。大学计算机公共基础课,一个教师每星期要上4~6个班的实验课,每个机房安排的学生将近40人,每个教师每星期平均需要看200本实验报告。假设每本实验报告上有两个程序,每个教师每星期就要阅读400个程序,虽然程序都比较简单,但每道程序题的实现算法却是多样的。由此可见,教师一个星期要认真地看完200本实验报告是不可能的。也就是说,老师通过批阅学生实验报告来检验学生的实验效果是行不通的。当学生每次实验课都成为“程序录入员”时,学生也谈不上对实验内容的深刻理解了,因此实验报告也往往是从实验指导书上抄一点,或者同学之间相互抄袭,完成一种实验报告的形式而已。

(3)实验课程考核机制不利于调动学生的学习积极性。实验课的考核不像理论课的考核那样有成熟的方法,通常是由上课老师决定,或者教研室给出一个原则,由任课老师具体参照执行。采用得比较多的是“实验报告+平时考核+到课率”的形式。三者中每个部分所占的分值也没有固定的比例,一般来说“到课率”占的分值比较小(除非个别学生缺课很严重),“实验报告”和“平时考核”谁多谁少因任课教师而定。前面提到,实验报告已经沦为一种形式,教师不可能仔细完成实验报告的批阅,给实验报告打分主要还是凭感觉,这个分数无法做到客观和反映真实情况。平时考核,简单的办法就是凭印象给每个学生打分,严谨一点的做法就是每堂课抽查几个人或者做几次小测试。抽查的方式,每次课抽查的人数不可能太多,因为一个机房将近40个人,教师还需要辅导其他学生;小测试,测试的次数以及每次测试的时间和内容都很有限,因为总共只有16次课,而且每次课要完成的实验任务比较繁重,不可能占用过多的上机时间;因此,即便是抽查和小测试也只能带有象征性的意味。由此可见,上述考核机制没法做到客观反映真实情况,给出的分数也很大程度上与任课教师的个人感觉相关,尤其在目前“实验课尽量不要让学生挂科”的普遍“共识”下,每个环节给出的分数都带有很重的“水分”。当学生没有了挂科的后顾之忧,又缺乏对课程学习的热情和积极性,每堂课成为“程序录入员”就是很自然的事了。

2 教学方案的改进

根据上面的分析,本文从如下三个方面对C语言程序设计实验课教学进行改进:

(1)改革实验教学内容。学生手上的实验指导书只作为学生课外学习的参考书,实验内容由实验教学系统提供。每次实验安排2~4道编程题,为避免有些学生无从着手的情况,根据题目的难易程度给出适当的编程思路提示和有关语法、算法的解析作为参考,但不给出具体的程序实现。编程题尽量不与理论课教材和实验指导书上的重复,以免学生直接抄袭现成的程序代码,促使学生自己完成编程任务。作为编程题的补充,每次实验课针对编程题没有涉及到的相关章节的语法、常用算法等知识设计若干道选择题,帮助学生学习掌握。选择题的设计应考虑不可以让学生直接在机器上运行获得答案。这样设计教学内容既实现了以学生自己编程、调试程序为主,又兼顾了语法知识的学习。

(2)改变实验报告的书写方式。实验报告数字化、无纸化,学生完成实验任务后当场提交。由于现在的纸质实验报告已经沦为一种形式,我们必须摒弃这种形式。设计一个电子版的实验报告模板,将那些形式化的内容(如:实验报告标题、实验目的、实验内容)自动加载到模板中,学生只需要将自己调试好的程序粘贴到相应的位置即可。实验教学系统自动调取学生的程序运行、批阅,并将批阅情况写入实验报告模板相应位置。实验报告的评分综合程序批阅情况和选择题答题情况给出。

(3)改革现有的课程考核模式。将每次实验课都纳入到考核中来,让学生感觉每次实验课都与课程的成绩息息相关,促使学生认真对待每堂实验课。每堂课提交的实验报告都会有评分,一学期下来,将每个实验报告的评分做加权平均就可得到这门课的最后成绩,这一工作可由实验教学系统自动完成。这一考核方式不仅能促使学生认真对待每堂课,而且考核结果也能客观地反映每个学生的真实情况。在这种考核模式下,学生也不会轻易地缺课、逃课,还解决了学生考勤问题。

3 实验教学系统的设计

为配合上述教学方案的实施,我们设计了一个实验教学系统。目前常见的一些教学系统[5-8]都不适合课堂教学。它们假设学生是主动学习的,将制作好的教学素材通过网络共享,然后提供获取教学素材的通道,提供老师与学生、学生与学生的交互平台,但要进行实时交互要求双方必须同时在线。这样的教学系统基本上都是以学生具有很高的学习自律性、主动性为前提,主要还是适用于学生课外学习的辅助,对课堂教学没有针对性。我们设计的实验教学系统只针对C语言程序设计实验课的课堂教学,具有很好的针对性和可实施性。实验教学系统结构如图1所示。

图1 C语言程序设计实验教学系统示意图

系统使用方法:教师机上安装服务器端,学生机上安装客户端,机房内任意一台联网的计算机都可以作为教师机使用。教师上课时启动服务器,通过U盘导入教学资源。学生在自己的机器上启动客户端,用自己的学号、姓名登录服务器,如果登录成功系统会在学生机上创建一个学生用的工作文件夹,学生实验产生的所有文档都会自动保存到该文件夹下,教师机上会同样会为每个登录成功的学生单独创建一个文件夹,用于保存学生提交的实验报告以及每次的成绩记录。当学生在客户端选择了某次实验任务时,教师机上的服务器将从教学资源中获取相应的资源文档发送到学生机,学生机将接收到的文档保存到工作文件夹中。上述过程完成后,学生即可开始根据任务编程、调试程序,学生完成实验后提交实验报告即可。

客户端界面如图2所示。当学生选择了某次实验任务后,描述实验任务的文本文档就会在相应的区域打开,学生根据实验任务要求在相应的目录下创建C语言源文件并编辑、调试。系统为每次实验任务提供了“操作参考”,主要是编程思路的提示和编辑、调试环境的使用指导。学生完成实验任务后点击“评阅”按钮,系统就会对实验情况作出评价,并根据实验报告模板生成实验报告(实验报告模板的示例如图3所示)。学生点击“提交”,生成的实验报告就被提交到教师机上。

图2 C语言程序设计实验教学系统客户端

图3 C语言程序设计实验教学系统实验报告模板

4 结语

本方案通过合理的设计实验任务,将课程的重点真正落实到了学生的实际动手能力的训练上来;通过实验报告数字化和实验报告批阅的自动化,既节省了学生课后书写几乎没有任何价值的实验报告的时间,又免去了教师批改实验报告的工作量,而且还能得到比以往更客观、更真实的课堂效果评价,可谓一举三得;通过课程考核方式的改进,使得学生能够认真对待每一堂课,提升了课堂教学效果。

一年的教学实践证明,本教学改革方案有力地促进了非计算机专业C语言程序设计实验课教学,改变了以往学生上机实验不愿动脑筋只做“程序录入员”的状况,促进了学生学习的主动性和积极性,提高了实验课教学质量。

[1]蒋倩仪,龙佑喜,彭三城.C语言程序设计上机指导与习题选讲[M].长沙:湖南教育出版社,2014.

[2]杨晓波,要路岗.C语言程序设计上机指导[M].北京:国防工业出版社,011.8.

[3]谭浩强.C程序设计题解与上机指导(第三版)[M].北京:清华大学出版社,2005.7.

[4]赵宏,王恺.我国大学计算机课程现状及改革探索[J].中国大学教学,2015(2):50-54.

[5]戈崇胤.C语言程序设计学习支持系统的设计和开发[D].上海:华东师范大学,2005.8.

[6]王俊.《C语言程序设计》教学网站开发实践与效果评价研究[D].成都:四川师范大学,2007.9.

[7]宫业芹.C语言程序设计网上教学系统的设计与实现[D].济南:山东大学,2012.10.

[8]黄鑫.某高职院校C语言教学辅助系统设计与实现[D].北京:北京工业大学,2015.5.

The Experimental Teaching Reform Practice of Non-Computer Professional C Language Programming

CHEN Yue-Zhou,XIAO Bi-Wu,WANG Chuan-Li
(School of Computer and Information Engineering,Central South University of Forestry&Technology,Changsha 410004)

Analyzes the present situation and the existing problems of the experimental teaching of C language programming for non-computer majors,and designs an experimental teaching system and corresponding experimental teaching materials according to the existing problems.The experimental teaching system takes each experiment as part of the curriculum assessment,realizes the students experiment automation,writing and correcting,which can not only motivate students to actively treat every experimental course of study,but also avoid the current status of experimental report plagiarism fits.

教学改革;C语言程序设计;实验教学系统

湖南省教育厅教改项目(湘教通[2014]247号-196)

1007-1423(2017)28-0019-04

10.3969/j.issn.1007-1423.2017.28.005

陈越洲(1968-),男,湖南临武人,硕士,讲师,研究方向为分布计算与数据库技术

肖必武,男,副教授,研究方向为信息系统与计算机教育

王传立,男,博士,副教授,研究方向为人工智能与机器学习

2017-08-01

2017-09-30

Teaching Reform;C Language Programming;Experimental Teaching System

猜你喜欢

实验报告C语言实验课
密林深处——“从写生到创作”的水墨实验课
基于Visual Studio Code的C语言程序设计实践教学探索
51单片机C语言入门方法
有趣的实验
实验报告
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
任务型专业英语口语教学实验报告
网络英语阅读课教学的实验报告
生物化学检验实验报告书写综述