基于Python的物理实验数据实时检测分析系统

2021-11-29 06:23李震春张家琪
物理实验 2021年11期
关键词:报告实验检测

李震春,孙 瑶,杨 涛,张家琪

(1.桂林电子科技大学 材料科学与工程学院,广西 桂林 541004; 2.重庆巴蜀中学,重庆 400013)

时代和科技的发展,对当代教育产生重大冲击. 21世纪初,随着计算机软硬件技术和互联网技术的快速发展,教育逐渐呈现出信息化趋势. 教育部印发的《教育部关于一流本科课程建设的实施意见》(教高[2019]8号)明确提出:“教学方法体现先进性与互动性,大力推进现代信息技术与教学深度融合[1]”. 运用适当的数字化教学工具,引导学生自主学习,增强课堂实效、互动性,是提高课堂教学效率和教学效果的有效途径. 雨课堂的出现,为大学物理实验教学注入了新元素[2],雨课堂覆盖物理实验教学的“课前-课中-课后”每个环节[3-4]. 然而,物理实验中,间接测量量需要基于多个直接测量量计算求得[5-9],另外由于实验仪器的差异,同一实验室的多台仪器待测物理量之间存在较大差异,很难通过1个或多个参量答案来检测学生测量数据的正确性或合理性. 雨课堂测试功能无法实时检测实验数据的合理性,并难以对学生的实验过程给出客观、公正的评价,这是雨课堂平台与实验教学过程不能很好融合的关键之处.

为解决这一问题,本文开发了基于Python的实验数据实时检测分析系统. 该系统借助雨课堂平台,学生通过雨课堂公众号向雨课堂服务器提交实验测量数据;教师通过雨课堂的电脑端(Web版)实时接收学生实测数据,检测分析学生实验数据存在的问题, 对学生的实验操作中存在的问题给予及时指导,对学生的实验操作成绩做出客观评定,最终通过电子邮件的方式把每个学生实验数据处理结果推送给学生,提高了学生实验报告的质量、教师指导效率及课堂教学质量.

1 实验数据实时检测分析系统的设计

1.1 系统的开发环境

Python是面向对象的解释型语言,具有丰富的扩展库,能够轻量级地完成各种复杂任务,成为最受欢迎的编程语言[10]. Selenium是Web应用程序的自动化测试工具[11],借助Selenium库,开发人员将用户对浏览器的操作步骤编写为代码,从而实现浏览器登录、输入、查询、切换页面、下载等操作的自动化. Pandas和 NumPy是 Python的数据分析和探索工具,提供了高效操作大型数据集所需的工具. Pandas包含序列和数据帧2种数据结构,其中数据帧类似于Excel中的工作表,以二维表的形式存放数值、字符等. Pandas提供了计数、筛选、排序、分组、数据合并与重塑、数据透视、方差分析等常用的统计分析功能. NumPy提供了N维数组数据类型,支持多维数组与矩阵运算,此外针对数组运算也提供大量的数学函数库. Matplotlib是Python的 2D绘图库,可以绘制直方图、散点图、功率谱、条形图等. PyQt5是基于Qt的Python语言开发创建的GUI应用程序工具包,具有控件丰富、跨平台体验好、文档完善等优势. 利用Python语言下的Selenium,Pandas,Matplotlib和PyQt5等工具包,既可以实现从浏览器自动下载数据,又可以对数据进行快速分析和作图,最后把以上功能封装,为用户提供友好人机交互的图形界面.

1.2 系统的实现流程

流程网络拓扑如图1 所示.

图1 实现流程的网络拓扑图

数据的发送和接收采用校内实验室的无线WiFi,也可使用手机的移动数据,由于大学生基本上都拥有智能手机,雨课堂支持安卓和苹果操作系统. 这样做不仅大大节省了实验项目配套硬件的建设成本,而且具有可靠、稳定的数据通信保障. 实现实验数据实时检测分析的流程是:教师通过雨课堂公众号向学生推送实验数据发送端界面;学生在完成相应的数据测量后,通过雨课堂公众号打开实验数据发送端界面,提交实验数据. 雨课堂手机端和电脑端通过服务器共享数据,利用Python的Selenium模块,教师可通过雨课堂的电脑端(Web版)实时接收学生的实测数据. 接收到学生所提交的实验数据后,利用Python的Pandas和Matplotlib等模块对学生的实验数据进行有效性识别、误差计算、作图等多种分析,从而让教师能够及时发现学生出现的问题,对学生实验操作情况进行实时反馈. 实验结束后,该学生的操作成绩被自动登记到实验成绩登记表中;利用Python的Smtplib模块,可以把学生的最终实验操作成绩、原始数据及数据处理结果通过电子邮件的方式自动推送给学生,为学生处理数据提供依据. 另外该系统支持一次性下载所有课程的学生实验数据,并对实验数据进行分析处理,期末时可将所有学生原始数据、处理后的数据保存到本地电脑进行存档,这极大地推进了实验课堂教学的信息化、智能化管理水平.

2 系统的功能模块设计

设计性实验是提高学生发现问题、分析问题和解决问题能力的重要实验项目. “设计实验电路测定微安表内阻”是经典的设计性实验,也是理工科学生的必做实验. 本实验要求学生根据性能指标要求,选择多种(至少2种)实验方案,通过理论建模确定最佳电路参量和最佳测量条件,然后独立对实验方法、实验装置进行设计,对实验过程和结果进行分析. 该实验涉及多种仪器和仪表的使用和读数以及等精度测量方法的操作等关键环节,能有效培养学生的动手操作、分析问题和解决问题的能力,培养学生的创新思维. 本文以“设计实验电路测定微安表内阻”为例描述实验数据实时检查分析系统的具体使用方法.

2.1 学生实验数据发送端界面设计

学生实验数据发送端的界面如图2所示,提供2种符合性能指标要求实验方案的数据记录表格及学生邮箱.

图2 学生发送端的界面设计图

学生发送端界面是在PPT雨课堂插件的“新建试卷”里编辑生成,通过PPT雨课堂插件的“上传试卷/手机课件”上传到教师账号的试题库中备用. 上课时,教师先创建雨课堂课程;学生通过微信扫码的方式进入并签到,第一次使用雨课堂的学生需要输入姓名、学号等信息;教师通过雨课堂公众号或Web端把试题库中的“测定微安表的内阻实验数据记录”试题推送到该课程中;学生在雨课堂公众号中打开教师推送的试题,然后在表格中输入测量实验数据,输入完毕后点击“提交”按钮,即可完成实验数据的提交. 由于雨课堂的试题不支持问题试卷“打回”功能,教师在推送试题时,可根据学生实验数据出现异常的情况多推送2~3份,以便当学生实验数据存在异常或出错时能多次提交实验数据,后台数据处理时以操作成绩最高的为其最终实验数据.

2.2 教师实验数据接收界面设计

教师实验数据接收端的界面设计如图3 所示,主要包括学生实验数据同步、自动生成教师实验数据实时检测分析报告、学生处理报告、查看学生处理报告、成绩登记汇总、发送处理报告和系统信息等功能模块.

1)学生实验数据的同步. 当学生在数据发送端提交实验数据以后,教师雨课堂公众号可查看提交数据的学生名单. 教师可以在教师实验数据接收界面点击下载,学生的实验数据会自动下载到教师的电脑,具体下载过程见图3中的系统信息. 当N=M=1时,下载当前课程的学生实验数据.另外,该系统还支持多门课程同步下载,例如当N=1,M=10时,下载从第1门到第10门课程的学生实验数据.

图3 实验数据接收端软件界面设计图

2)生成教师实验数据实时检测分析报告和学生处理报告. 实验数据实时检测分析报告包括学生信息(包括课号、组号、学号和姓名)、活动加分、操作成绩、2种方法的误差分析结果和内阻分布曲线. 学生信息是学生扫码签到时自动录入的,活动加分和操作成绩是根据学生提交的原始数据,按表1的检查项目和判定标准分别计算出来,2种方法的误差分析结果和内阻分布曲线是根据学生提交的原始数据计算和绘制出来的.

表1 操作成绩检查项目及判定标准

点击“生成检测报告”,系统会根据下载的所有课程的实验数据,自动生成教师实验数据实时检测分析报告和学生处理报告,支持多次接收同一学生发送的实验数据. 教师实验数据实时检测分析报告如图4所示,根据生成的教师实验数据实时检测分析报告,可以查看每位提交实验数据且数据完整的学生的活动加分和操作成绩得分情况;2种测定表头内阻方法的误差分析结果和内阻分布曲线,其中分布曲线可以拖动放大查看;还没有提交实验数据和提交实验数据不完整的学生名单. 如果发现学生的实验数据有明显错误,则可以让学生现场修改或补做实验,然后重新提交实验数据. 这样的设计可以实时检测学生实验数据,避免学生在实验完成后,因实验数据有问题而不能及时补做,保证学生在规定的实验时间内,顺利完成所要求的实验内容.

图4 系统生成的教师检测报告

学生处理报告是以学生学号为文件名的Excel文件和png图片,其中Excel文件包括原始数据和每个实验的误差分析结果,见图5(a);png图片为根据学生原始数据计算2种方法测定表头内阻绘制的分布曲线,见图5(b). 教师可通过点击“查看实验报告”查看每位学生的处理报告.

(a)学生处理报告Excel文件

3) 成绩登记汇总和发送处理报告. 学生实验结束后,点击“查看成绩登记”可以把每位学生的预习检测成绩、实验操作成绩自动汇总到实验成绩登记表中,教师无需手动登记学生的实验操作成绩. 点击“发送学生Email”可以把每位学生的活动加分、操作成绩和处理报告单独推送到学生邮箱中,为学生进行数据处理提供依据.

2.3 系统的特点和创新之处

1)“实验数据实时检测分析系统”利用智慧教学工具雨课堂和Python语言下的Selenium、Pandas等工具构建了智能实验系统,为教师的实验课堂教学指导、操作成绩评定和登记,以及后继学生的数据处理带来了方便,开创了校内实验课堂教学方式的新模式.

2)学生通过雨课堂平台在线提交测量数据,教师通过实验数据实时检测分析系统对实验数据自动同步、计算分析和作图,对提高教师指导效率,减少教师对实验操作成绩的误判,保证学生实验操作成绩的公平、公证,提高学生实验报告的整体质量等具有极大的促进作用,推进了学校实验课堂教学的信息化、智能化水平.

3)与其他实现实验数据实时检测的方案[12-16]相比,该系统实验设备不需做任何硬件升级,实验室也无需配置服务器和数据库支持,学生仅需要1部智能手机,教师只需1台电脑即可,具有成本低的特点. 借助Python丰富的扩展库,实现代码高效、安全、简洁.

4)该系统对于不同的实验项目,只需更换数据处理模块的程序,数据同步、成绩登记及向学生发送处理报告模块程序可通用,因此具有较强的移植性和扩展性.

3 实施与效果

实验数据实时检测分析系统已应用在大学物理实验课程教学中,具体实施的教学设计参见图6. 实验教学中,教师通过雨课堂推送预习检测题,要求学生限时作答. 接着教师通过雨课堂PPT同步授课,给出实验任务,向学生推送实验数据检测试题. 要求学生限时完成,并告知学生实验完成后须在雨课堂提交实验数据. 正确完成实验任务的前3名学生将获得课堂活跃加分,系统根据学生提交数据的用时和正确性自动排序,再通过雨课堂PPT向学生公示结果. 教师登陆该系统,通过系统的“刷新”命令,实时获取学生提交的实验数据,点击“生成检测报告”,对获取的实验数据进行处理并自动生成教师检测报告,实时监测学生的实验完成进度和反馈意见,有问题的数据将实时通知到学生,并分析出现异常的原因,要求学生重做后再次提交. 所有学生的实验数据检测均正常后,点击成绩登记,可将每位学生的该次实验预习检测成绩、课堂活跃加分和操作成绩汇总到本学期的成绩登记表中,点击“发送学生Email”,可向每位学生发送原始数据及数据处理结果,供学生完成实验后撰写总结报告.

图6 系统与雨课堂相结合的教学设计

通过教学实践,发现实验数据实时检测分析是大学物理实验课程中有效的教学方法,不仅给教师的课堂指导、成绩评定和成绩登记带来很大方便,而且学生完成实验的质量和速度有明显的提高. 学生实验环节设计50 min完成,但不少学生30 min左右即可完成,大部分学生利用剩余时间继续完成该实验的扩展和探究内容. 每组学生20人,首次实验数据检测通过率高达85%,需重做实验的学生不足15%,极少学生可能重做2次才能通过系统数据检测. 另据助教反馈情况:“实验室开放时间,学生很少补做基础实验,大部分学生都在做扩展或探究实验内容. ”

2020-2021学年第一学期免试报告和加分报告评选活动中, 10个实验项目共评出35份免试报告和128份加分报告. 使用该系统与雨课堂相结合实施教学的设计实验——电路测定微安表内阻实验,共评出7份免试报告和16份加分报告,远高于其他不使用该系统的实验项目评选数量,其主要原因为:获得免试报告和加分报告资格的条件是,除了基础实验高质量完成外,还须至少完成1~2个扩展或探究实验项目. 同时,该系统也非常受学生的欢迎. 一些学生在实验体会中写到:“此次实验的数据检测分析系统,可以及时知道自己的实验误差大小,有问题时能够及时改错.”“使用雨课堂微信公众号输入实验数据太方便了,直接打开微信即可输入数据,无须重复输入姓名、学号等信息,而且数据检测系统还能检测数据的合理性,提供数据处理结果,使得我们课后对数据处理的方法是否合理有判断的依据.” “此次实验老师使用数据检测分析系统对我们实验操作成绩进行评定,使我们大开眼界,真希望所有的实验都能使用该系统.”

4 结束语

本系统结合雨课堂平台的使用,能提高教师实验课堂教学的指导效率,保证学生实验操作成绩的公平、公证,提高学生实验报告的整体质量,试用2年,完全达到了预期的实验教学效果,推进了实验课堂教学的信息化、智能化水平[12]. 本系统对实验设备和实验室均无需硬件升级,实现成本低,代码高效、安全、迁移性强. 本系统的开发为后续建立实验报告自动批改和学生实验数据库打下基础. 在大数据的背景下,实验报告自动批改系统的实现,能大大提高实验报告评分的精确性和一致性,减轻教师的工作量. 学生实验结果的数据库一方面可以为实验教学改革和实验理论研究提供数据依据;另一方面也能为实验仪器的开发和完善提供参考.

猜你喜欢
报告实验检测
记一次有趣的实验
“不等式”检测题
“一元一次不等式”检测题
“一元一次不等式组”检测题
做个怪怪长实验
报告
NO与NO2相互转化实验的改进
实践十号上的19项实验
小波变换在PCB缺陷检测中的应用
报告