- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
技术|一种批量检查中小学Python程序作业文件的算法
作者提出了一种批量检查中小学Python程序作业文件的算法并将其编写成应用软件,在实现对Python程序作业文件高效检查的同时,将作业自动评价分类。该方法检查Python程序作业文件准确率高达99%,能够对信息技术教师批量检查Python作业文件起到一定的帮助作用。
引言
学习Python程序设计能很好地锻炼学生的逻辑能力和思维能力,但面对大量的Python程序作业文件,教师要花费大量的时间去批改。在批改Python程序作业时,教师要手动打开Python程序并运行,观察是否有语法错误、运行结果是否正确,并与正确的程序对比等。
如果教师能利用程序编译Python程序文件以自动检查程序是否有误,并自动检查程序与正确程序的相似度,然后对其进行评价分类,大致得出Python程序作业是属于优秀作业还是乱做作业等,则能高效且及时地掌握学生的学习情况。
因此,笔者结合Python程序的特点,提出了一种批量自动检查Python程序文件的方法,旨在提高教师检查作业的效率,并使学生得到及时反馈,提高教学效率。
技术简介
笔者从智慧教育的视角出发,探讨智慧教育如何赋能信息技术学科核心素养的四个维度,以期为后续学科核心素养培育路径的探究提供理论依据。
1.mypy
mypy是Python静态类型检查工具,可以检查Python程序文件在编写内容和逻辑上是否有误。
mypy工具的安装极为简单,安装命令为:python-mpipinstallmypy。笔者利用QProcess启动外部程序的方式启动mypy并从其标准输出通道中读取全部的输出信息,通过输出信息去判断Python程序是否有误。
2.最长公共子序列算法
给定一个长度为n的序列A和一个长度为m的序列B,求出一个最长的序列,使得该序列既是A的子序列,也是B的子序列,这就是最长公共子序列问题。最长公共子序列算法是一个非常实用且被广泛应用的算法,适合于求解两个文本之间的相似度。
笔者利用动态规划的方法实现求解最长公共子序列,首先将原问题分割成一些子问题,用L[i][j]表示A的前i个元素、B的前j个元素的最长公共子序列的长度,这时的最长公共子序列的长度就是子问题。
L[i][j]就是状态,L[n,m]则是最终要达到的状态,即为所求结果。其中Ai代表序列A的前i个字符组成的序列,Bj代表序列B的前j个字符组成的序列。A[x]代表序列A的第x个字符,i>0;B[y]代表序列B的第y个字符,j>0。L[i][j]代表序列Ai与序列Bj的最长公共子序列的长度,其公式如图1所示。
图1
依据最长公共子序列,求序列A和序列B的相似度,其公式如图2所示。
图2
实验数据
笔者采用的实验数据为所在学校八年级学生的2565份Python程序作业文件,这些文件均为学生课堂上即时完成的作业。
实验过程
批量检查Python作业系统界面设计如图3所示,首先选择需要检查作业的班级,其次选择该班级所对应的作业目录和作业答案目录,然后点击“全部作业”按钮,即可批量自动检查作业,检查的结果记录显示在中间列表处,其信息包括文件名、时间、大小、相似度,双击列表中的文件可以打开对应的文件。
图3
除了对Python作业进行评价分类外,该系统还具备按作业文件名称或按作业文件内容去查找某个作业文件及语音播报等能,方便教师对作业的查看。
批量检查Python作业系统是在QtCreator集成开发环境下开发实现,实验中利用到QtCreator的内部库texttospeech,以实现语音播报功能。
另外,实验中需要借助非QtCreator内部库,因此需要编译并加载第三方库QXlsx,以实现将Excel表中的学生信息批量写入数据库中以及将系统检查作业的结果自动记录到Excel表中。批量检查Python作业系统主要过程如下:
①将学生信息通过编程批量录入SQLite数据库;
②利用红蜘蛛多媒体教学软件收集学生的作业文件;
③使用迭代的方式获取学生的作业文件;
④利用mypy对文件进行编译,并结合最长公共子序列算法将作业文件与正确的答案文件进行相似度计算,从而将作业文件进行评价分类并通过语音播报出来;
⑤自动生成评价分类结果并保存到Excel表格。
具体流程如图4所示。
图4
1.录入学生信息
将全年级学生的信息汇总到Excel表格中,学生的信息包括学号和姓名,其中学号由两位数的班级和两位数的座位号组成,如11班1号,则学号为1101。编写程序将Excel表格中全部的学生信息导入并保存到SQLite数据库。
2.收集学生作业
首先,对计算机室的计算机按顺序进行名称修改,如第一台计算机名称为“xs01”,第二台计算机名称为“xs02”,依此类推。学生根据自己的座位号就座相应的位置。课堂上
您可能关注的文档
- 2024教研文章:项目式学习在初中信息科技课程中的实践策略初探以基于物联网的智能停车系统为例.docx
- 2024教研文章:项目式学习在信息科技课程的海洋项目学习巨轮将驶向何方.docx
- 2024教研文章:协商式议学单在信息科技教学中的设计和实施策略.docx
- 2024教研文章:新课标信息安全逻辑主线的理解与落地.docx
- 2024教学心得体会:小学非正式学习的价值意涵及实施路径.docx
- 2024教学心得体会:小学家校共育中权责边界的模糊与重构.docx
- 2024教学心得体会:小学科学教材插图叙事的教学意蕴及其实现.docx
- 2024教学心得体会:小学跨学科作业设计的维度分析与体系构建.docx
- 2024教学心得体会:小学数学综合与实践跨学科主题学习教学路径.docx
- 2024教学心得体会:小学信息科技大单元设计的价值与表达.docx
文档评论(0)