基于自助式虚拟作业系统及考试系统的C语言实践教学
2017-04-19张彦航苏小红侯俊英
张彦航, 苏小红, 侯俊英
(哈尔滨工业大学 计算机科学与技术学院, 黑龙江 哈尔滨 150001)
基于自助式虚拟作业系统及考试系统的C语言实践教学
张彦航, 苏小红, 侯俊英
(哈尔滨工业大学 计算机科学与技术学院, 黑龙江 哈尔滨 150001)
针对当前高校非计算机专业C语言程序设计教学中普遍存在的学生学习兴趣不高、编程能力差等问题,提出一种基于虚拟实践平台的教学模式,通过改革考试方式以及借助自主开发的自助式虚拟作业系统及考试系统等多种手段,对非计算机专业的C语言实践教学进行改革,将主动式学习模式引入到教学中。经过2个学期的实际运作,学生的学习兴趣明显提高,自主学习能力及编程能力均获得了有效提升,取得了良好的教学效果。
虚拟实践教学; C语言; 非计算机专业
C语言程序设计是高校的一门公共基础课,也是国内外大部分高校非计算机专业学生的必修课。经过课程学习能够熟练运用C语言进行程序设计,是在校大学生必须掌握的一项计算机技能。然而调查显示,大多数非计算机专业的学生普遍感觉“编程太难”,甚至畏惧编程,因此,上课消极、逃课、考试不及格等现象屡屡发生,C语言程序设计课也在学生中间留下了“难学”的恶名。
如何消除学生畏惧编程的心理,激发学习兴趣、提高学生的编程能力和自信心,引领学生步入精彩纷呈的编程世界,使学生达到或超过对自己的期望值,是现阶段非计算机专业C语言实践教学工作急需解决的一个重要问题。
近年来,随着虚拟仿真技术的兴起,一种全新的教学模式开始走进国内外各大高校的课堂[5-9]。这种依托于计算机及网络技术、有别于传统模式的“教”与“学”给高等教育带来了机遇和挑战,为高校的教学改革注入了新的活力,使置身其中的教师和学生都在各自的岗位中悄然发生着改变。从2015年春季开始,对新教学模式进行实际改革运作,学生的学习兴趣明显提高,自主学习能力及编程能力均获得了有效提升,取得了良好的教学效果。
1 非计算机专业C语言教学状况
在C语言程序设计课程以往的教学中,学生总是处于一种被动式的学习。以我校为例,在2015年以前,面向非计算机专业的C语言程序设计课程主要包括以下几个教学模块:课堂教学、上机实验(占总成绩的10%)、课后作业(占总成绩的10%)、期中考试(占总成绩的20%)和期末考试(占总成绩的60%),如图1所示。
图1 改革前非计算机专业C语言课程教学模块构成
在这种教学模式下,对学生编程能力的培养和训练往往是在课堂学习之后,借助于有限几次上机课的编程实验,以及教师给学生布置的大量的课后作业来完成的。然而,在非计算机专业中,一个不容忽视的现象是一个班里的学生对计算机编程语言的学习能力和计算机操作能力参差不齐。能力稍强的学生在高中阶段通过参加各种级别的信息竞赛,积累了一些编程基础,而少数的普通学生可能仅仅了解一点常识,大多数学生基本上是零基础。对所有学生不加区分地对待,就会导致出现尖子生吃不饱、普通学生很吃力、基础差的学生跟不上的状况。由于学生自身学习能力的差异,这种一刀切的做法显然不能适应学生的个性学习需要,难以照顾到各个层次学生的状况。
2 借助虚拟实践教学平台的C语言实践教学模式改革
基于信息化、虚拟化环境下的教学方式是高等教育的一个重要的发展趋势[10-12]。为此,从2015年春季学期开始,我们针对非计算机专业的C语言程序设计课程进行了改革,改革后的课程教学模块构成如图2所示,主要包括:
(1) 上机实验。上机实验总共8次,每周一次,每次150 min。在这8次上机课中,学生除了要在自主开发的虚拟作业系统中独立完成教师规定的实验项目(占总成绩的10%),还必须参加6次随堂上机考试(占总成绩的50%)。
(2) MOOC教学。学生通过MOOC视频教学进行课前预习、课后复习,同时参加课后讨论以及完成MOOC在线编程练习(占总成绩的10%)。
针对上述问题,在新一轮改进方案中进一步优化该扩孔钻头的横向不平衡力系数,使它降至0.05左右,并在扩孔钻头领眼段设置后备切削齿,以提高其抗失效的能力。改进后进行第二轮钻头现场应用,共使用4个钻头。
(3) 课堂教学。课堂教学主要集中解决一些复杂算法及难点问题,其中也包括课堂讨论环节。
(4) 课后作业。学生在虚拟作业系统中选择作业题目,在课程结束时获得作业成绩(占总成绩的20%)。
图2 改革后非计算机专业C语言课程教学模块构成
2.1 基于奖励机制的自助式虚拟作业系统
传统教学模式下的课后作业一般是由教师指定具体的题目,要求学生在指定时间内完成。然而,这些作业涵盖的部分知识有些学生可能已经掌握,不需要再进行反复练习,而有部分学生并没有掌握,需要练习。在新的教学模式下,自助式虚拟作业系统允许学生自主选择作业题目和作业数量。学生可以根据自己的情况自主选择章节和知识点进行在线练习,不受时间和章节以及具体题目的限制,可以只针对学习中的薄弱环节集中精力和时间加强训练,做到有的放矢。而基础较好的学生则不需要用过多的时间去做课后作业。
为避免学生在课程结束前集中突击做题,系统规定每个学生每天最多可做10道编程题。假如从第一天开课起到课程结束总共为40天,则每个学生最多能做400道编程题。如果等到第40天才开始做作业,则该学生只剩下10道编程题可做。作业系统中的每个编程题要求必须在30 min之内完成,允许多次提交。
为提高学生的学习兴趣,在此基础上设立了“多劳多得”的奖励机制,具体为:
(1) 作业总成绩超过600分的学生将有资格获得加权附加分(最高为10分)。权值大小根据学生的做题数量从0.6取值到1.0。
(2) 作业成绩在本班排名前5的学生将有资格获得加权附加分(最高为5分)。权值大小按照学生的排名依次取值为0.2、0.4、0.6、0.8和1.0。
作业系统中每道编程题的分值不超过10分,作业总成绩超过600分意味着某个学生至少完成了超过60道的编程题。
经过2个学期的试行,“多劳多得”的作业奖励机制得到了学生的认可和欢迎。以2015年秋季学期为例,总共有9个自然班共235名学生选课。到课程结束,一共有32名学生获得了6分至10分的附加分,如表2所示。经统计,学生的作业平均成绩为278分,这意味着每个学生的平均编程量为30道题左右。
表1 2015年秋季学期学生获得加权附加分的统计情况(总成绩≥600分)
2.2 基于错误原因分析的随堂上机考试
改革前,面向非计算机专业的C语言程序设计课每个学期有2次上机考试:期中考试(占总成绩的20%)和期末考试(占总成绩的60%),要求学生在1.5个小时的时间里至少完成4道编程题。考试结束后,大多数学生只关心自己的分数,并不关心自己错在哪里,为什么错,因此,仅仅让学生考试是不够的,还应该让学生更多地了解考试背后存在的深层问题。为此,我们对考试重新做了调整,将以往的2次上机考试拆分为6次随堂上机考试,具体为:
(1) 从第3次实验课开始,总共6次随堂上机考试,每次满分10分。
(2) 前5次为普通考试,考试内容包括3道选择题和1道编程题,考试时间为30 min。每次考试内容要求至少覆盖以下知识点中的一个:分支、循环、函数、数组、字符串和指针。
(3) 最后一次为综合性考试,考试内容要求至少覆盖上述知识点中的5个,具体包括1道普通编程题、1道程序改错题和1道复杂编程题,考试时间为40 min。
在新的考试模式下,对于前5次考试,如果学生在某次考试中没能得到满分,则需要在考试后提交错误分析报告。报告内容包括错误类型分析(语法错误、概念错误、数学公式错误还是逻辑错误等)和运行完全正确的程序。如果学生递交的报告合格,在课程结束的时候,可以去掉前5次考试中的一个最低分。随堂考试的总分按照下面2个公式计算:
(1)
(2)
如果前5次考试中去掉了最低分,随堂考试的总分按照公式(1)计算,否则按照公式(2)计算。前5次考试主要考查学生最近一周内学过的新知识,考试后的错误原因分析和问题修正,有利于师生及时发现学习中存在的问题,从而避免了问题的积累。
3 教学效果
经过2015年2个学期的改革试行,是否取得了预期的教学效果?我们设计了问卷调查,如表2所示。根据收到的213份反馈结果可以看出,89%的受访者对改革后的C语言程序设计课程非常感兴趣,只有11%的受访者表示稍感兴趣或不感兴趣。有超过半数的学生感觉学习这门课程比较轻松,有69%的受访者表示这门课程有助于提高他们的学习兴趣。
表2 问卷调查的统计情况 (共213 名受访者)
表2(续)
统计结果还显示,有95%的受访者认为这门课程在很大程度上提高了自己的编程能力,只有5%的受访者表示自己的编程能力没有得到明显提升。此外,分别有42% 和56%的受访者认为自己的学习效率或考试成绩得到了显著提高。表2中的数据还显示,改革后的C语言程序设计课受到了学生的普遍欢迎,有97%的受访者表示愿意向其他人推荐该课。
为进一步评价基于虚拟实践教学平台C语言实践教学改革的效果,我们对改革前后的学生成绩按A、B、C、D、E 5个等级进行了统计和对比,如表3所示。
在2014年春季和秋季学期分别抽取了4个自然班(共226人),在2015年春季和秋季学期分别抽取了5个自然班(共264人)作为统计对象。这18个自然班的学生主要来自化学、信息管理、交通设备与控制工程及自动控制等专业。表3中的数据显示,2014年学生的平均成绩不超过71.2分,成绩为D的学生接近30%。2014年春季学期不及格学生的比例一度达到了23%。到了2015年春季学期,情况开始有所好转,首先,不及格学生的比例明显下降。到了2015年秋季学期,仅有5.4%的学生没能通过课程。其次,成绩为A、B和C的学生比例都有所增加。尤其是2015年春季学期,有29.4%的学生获得了C。到2015年秋季学期,学生的平均分数已经达到78.4分,比2014年同期高出7.2分。以上数据表明,经过有针对性和层次性的C语言混合教学模式的教学训练,学生的学习兴趣和编程能力都得到了进一步提高,取得了令人满意的教学效果。
表3 4个学期的学生成绩统计 (2014年春季学期—2015年秋季学期)
4 结语
针对非计算机专业学生C语言编程基础参差不齐、差异较大的特点,提出基于虚拟实践教学平台的实践教学模式。通过改革考试方式、采用自助式虚拟作业系统及考试系统等多种手段,有效提高了学生的学习兴趣、编程能力及自主学习能力。尽管目前已经取得了一些令人满意的教学效果,未来仍然有很多工作需要进一步深入,如进一步探索本文提出的教学模式是否也适用于其他课程,或者是否适合在其他院校普遍开展。
References)
[1] Raymond S. An evaluation of a group project designed to reduce free-riding and promote active learning [J]. Assessment & Evaluation in Higher Education, 2012(37):285-292.
[2] Riek L D. Embodied computation: An active-learning approach to mobile robotics education [J]. IEEE Transactions on Education, 2013(56):67-72.
[3] Gwen N, Amber D H, Katerina B C. et al. Essential knowledge for academic performance: Educating in the virtual world to promote active learning[J]. Teaching and Teacher Education, 2014(37): 217-234.
[4] Douglas, Elliot P. Student construction of knowledge in an active learning classroom [C]. Research in Engineering Education Symposium. Putrajaya, Malaysia,2013:417-423.
[5] 王德利,汤海峰,孟威,等.数字化实验教学平台的构建[J]. 实验技术与管理,2014,31(12):152-154.
[6] 纪金豹,李炎锋,李振宝,等. 结构虚拟实验教学系统的开发与应用[J].实验室研究与探索,2013,32(9):98-100.
[7] 邢雪宁,张厚升,季画. 基于虚拟仪器和Simulink的运动控制系统虚拟实验平台设计[J]. 实验技术与管理,2015,32(8):114-116.
[8] 蔺智挺. 基于虚拟仿真实验的模拟集成电路实验教学[J]. 实验技术与管理,2016,33(1):122-126.
[9] 胡今鸿, 李鸿飞. 黄涛高校虚拟仿真实验教学资源开放共享机制探究[J].实验室研究与探索,2015,34(2):140-144.
[10] 赵磊, 朱泓, 马红亮. 高校混合教学的新机遇:MOOC视角[J]. 教育发展研究,2015(17):50-55.
[11] 侯申,李健.计算机基础课程混合教学模式研究[J]. 计算机教育,2016(2):30-33.
[12] Zarko Stanisavljevic,Vladimir Pavlovic, Bosko Nikolic, etl. SDLDS—System for Digital Logic Design and Simulation[J]. IEEE Transactions on Education, 2013,56(2):1-6.
Practical teaching of C language programming based on virtual practical teaching platform and examination system
Zhang Yanhang, Su Xiaohong, Hou Junying
(School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001, China)
Programming with C language is one of the computer skills that a non, computer professional college student must master. Aiming at the problems of students’ learning interest not high, programming ability poor and other issues existing in the C language programming teaching of current college non-computer majors, a teaching mode based on virtual practice teaching platform is proposed. Reform of C language programming practical teaching for non computer majors was executed successfully through multiple methods, including reform of the examination methods, applying self-service virtual experiment system and examination system. Furthermore, the active learning mode was introduced into current teaching. Good teaching effect has been obtained after two semesters of practical operation. The students’ learning interest, independent learning ability and programming ability are also significantly increased.
virtual practical teaching; C language; non-computer major
10.16791/j.cnki.sjg.2017.03.002
2016-10-14
张彦航(1971—),女,吉林大安,博士,副教授,研究方向为信息融合及多目标检测.
E-mail:zhangyanhang@hit.edu.cn
G642.0
A
1002-4956(2017)3-0004-04