一道C++试题出题考虑和考后反思
原考试题
上学期,信管班级“C++程序设计考试”试题有如下一道小题:
/* 在下面程序的横线上填写行当的语句,使程序执行结果为10 */ class Myclass{ public:__________________________________________________ _________________________________________________ private: int x; }; void main() { Myclass my(10); cout<<my.GetNum()<<endl; }
程序空白处,显然填写两个函数的定义。当时出题时和同事有不同的意见,他认为要将空白处相关函数名写清楚,留下参数空白或函数体语句位置让学生填,否则学生不会做。我坚持我个人意见。我认为,题目很简单,只要平时认真调试过程序,分析过程序,几行语句,看明白程序很容易写出答案。考点是构造函数及对象初始化、对象函数定义知识点,考学生类的定义和对象使用相关知识点,考程序整体结构和执行流程,这是面向对象程序重要而基本的内容。如果将结构写得清清楚楚,就象考小学生一样,就失去意义。题目略活,但不难,算基本题目。这也是我考试想坚持的想法:学习不是机械性死记,死记再多也不容易得高分,真学懂,不用死记很容易做出答案得高分。
但考试后,正如同事而言,近9成同学做不出这个题的答案,面对题目不知如何下手!我心里佩服同事理解同学!
我的反思:
题目难吗? 从内容和考点上讲绝对不难,只是没有将程序结构写得清清楚楚,如果将结构写得清清楚楚,我相信大多数同学均会做出。不难的题目没有做出来,还是因为没有真正学明白,平时还是机械性输入现在的例题程序,没有分析过和写过自己的程序,不明白程序执行流程,这才是关键所在。
哪些同学做出来了? 分析试卷,做出来的只是班上两类同学,平时问得多的和写程序写得好的同学。
说明什么问题?既然是基本题,只是略活些,大多没做出,说明大多数同学没有掌握课程基本知识。
是什么原因造成这个结果? 首先学生没有主动学习,浮在表面,没有沉淀下来写写分析分析程序,写程序不够,这是内因!其次,老师带动不够,没有落实对每一个同学平时每一次作业和习题和考核和评估,不够了解学生清况,这是外因,也是一个关键因素。
如何改进? 不是改变题目,让其变易,让人人高分。首先要从学生学心态度、作业态度抓起,加强平时考核,考勤每人个教学知识点。其次改变相关内容教学形式,一看就明白的知识点让学生多看些自学些,加重程序编写、调试能力培养,加强程序分析能力,培养编程思想。
应对措施: 检查每一个同学每一次作业,在博客上提交。并在课堂抽查演示; 平时加强程序调试能力演示和总结;关键代表性程序分解细讲,举一反三; 改变考核方式,增加平时比例,鼓励动手型不是光理论型学习形式。