基于教务系统表格及Excel VBA的学生平时成绩换算研究与实现
2015-11-14李旭东
李旭东
摘 要:随着本科课程考核方式改革的深化,许多高等院校已纷纷改变了传统的只注重一次性结果评价的形态并向注重过程评价的形态转变。教师在教学过程中加强了课程的过程考核。当前,任课教师对学生课程平时成绩的换算,主要还是靠手工进行的。因而,当多种形式的考核方式被采用,又当学生平时考核次数比较多的时候,任课教师对学生课程平时成绩的换算将非常耗时费力。为此,本文基于教务管理系统中的学生平时成绩登记表格,利用Excel VBA实现了教师对学生课程平时成绩的自动化换算,将任课教师从繁重的学生课程平时成绩换算的手工劳动中解放出来,大大提高了工作效率。
关键词:学生成绩;平时成绩;成绩换算;Excel表格;VBA
中图分类号:TP311.1 文献标志码:A 文章编号:1673-8454(2014)20-0081-04
一、 引言
随着本科课程考核方式改革的深化,许多高等院校纷纷改变传统的只注重一次性结果评价的形态并向注重过程评价的形态转变。[1-2] 教师在教学过程中加强了课程的过程考核,通过平时考核,对学生日常学习情况及效果进行评定。通过教师加强日常考核,促使学生转变学习方式,调动学生学习主动性,培养良好的学习习惯,促进教师根据日常考核结果及时调整完善教学内容与方式,提高课堂教学效果与人才培养质量。
对学生的平时考核可采用多种考核方式,如课堂提问、课堂辩论、课堂测验、随堂作业、课后作业、大型作业、阶段测试、专题研讨、读书报告、小论文、文献综述、调查报告、项目设计、实践操作技能情况等形式。当多种形式的考核方式被采用,又当学生平时考核次数比较多的时候,学期末任课教师对学生课程平时考核登记结果的整理和换算将是让教师非常头痛的事,特别是当学生数量较多的时候,因为当前教师对学生课程平时成绩的换算主要还是靠手工进行的。
为了将任课教师从繁重的学生课程平时成绩换算的手工劳动中解放出来,本文将基于教务管理系统中的学生平时成绩登记表格(Excel表格),利用Excel VBA[3]开发环境及其强大功能来实现教师对学生课程平时成绩的自动化换算。
二、 学生课程平时成绩自动换算的基础
1.学生课程平时考核结果的电子化登记
为能利用Excel VBA来实现教师对学生课程平时成绩的自动化换算,首先,教师对学生课程平时考核结果须采用Excel电子表格文档的形式进行登记。
一般的,各个高校各自的教务管理信息系统均有带学生名单的平时考核登记表提供给课程任课教师,其中,以Excel电子表格的形式居多。倘若校方没有Excel形式的学生课程平时考核登记表提供,则任课教师须自己制作一份Excel形式的平时考核登记表。
2.量化或可量化登记
对学生课程平时考核结果的登记,最为直接的形式就是采用百分制或十分制等的分数,也就是量化登记。但更多的,教师会选择采用等级制的方式进行登记,如:优秀、良好、中等、及格、不及格,甲、乙、丙、丁、戊,A、B、C、D、E,等等。由于等级制的每种等级均可以对应特定的分数,因此,采用等级制的方式进行登记,就称之为可量化登记。
量化或可量化的登记方式,均适用于本文利用Excel VBA实现的对学生课程平时成绩的自动化换算。
三、对学生课程平时成绩自动换算的实现
本文以“正方教务管理系统”导出的Excel形式的学生课程平时成绩记录表为例,来描述利用Excel VBA实现对学生课程平时成绩的换算。本文所使用的Excel软件的版本为Excel 2003。
1.学生课程平时成绩记录表的格式
图1所示为正方教务管理系统导出的Excel形式的学生课程平时成绩记录表。表格的前4行分别给出了表头信息、学期信息、课程名称、学分数、任课教师信息。表格的第5、6行,分别给出了表格的标题信息:班级名称、学号、姓名、几项平时考核名称(课堂纪律、课堂问答和讨论、作业和测试、期中考试、实验成绩);其中课堂纪律6次、课堂问答和讨论5次、作业和测试10次,其余均为单次。表格从第7行开始,就是学生具体的班级名称、学号、姓名等,课程有多少学生修读就有多少行。表格中的关键是,有多次平时考核的项(课堂纪律、课堂问答和讨论、作业和测试)的最右侧有个“成绩”子项,本文就是针对此项进行多次平时考核的成绩换算。
2.Excel动态菜单的设计与实现
欲实现对学生课程平时成绩的自动换算,须有执行该任务命令的入口和途径。为此,本文采用Excel动态菜单[4]的形式来实现,实现的效果如图2所示,其详细实现步骤如下:
(1)在打开学生课程平时成绩记录表的状态下,依次点击Excel的菜单“工具”、“宏”、“Visual Basic 编辑器”,进入Excel VBA设计界面。
(2)在Excel VBA设计界面的工程资源管理器中找到ThisWorkbook对象,双击其以进入对其进行VBA编程的环境。
(3)在VBA编程环境中,选取Workbook的Open事件,并在系统生成的Workbook_Open空事件处理过程中键入如下代码:
Dim NewMenu As CommandBarPopup
Dim MenuItem As CommandBarControl
Set NewMenu = Application.CommandBars(1).Controls.Add (msoControlPopup, , , , True)
NewMenu.Caption = "成绩换算(&C)"
Set MenuItem = NewMenu.Controls.Add(msoControlButton)