用Python写一个简单的作业实时反馈系统

2021-12-15 15:03李伟
中国信息技术教育 2021年23期
关键词:服务器端代码页面

李伟

在算法与程序设计的教学中,计算机语言是算法与程序设计学习的基础,而学习一门计算机语言,需要学生经历语法基础知识、程序控制结构、算法设计、代码编写等过程,这一过程需要较长的时间来实践。在这个过程中,根据教学目标设置针对性较强的作业,让学生分析问题、抽象建模、设计算法、编写代码,最终在问题解决的过程中提升学科核心素养,是一种普遍采用的教学手段。但在传统的班级授课制下,一个班的学生往往比较多,在作业实施过程中,教师需要花费较长的时间用于了解学生的作业达成情况,因此,借助信息技术手段以实时了解学情就显得尤为重要。

本文以目前中小学普遍采用的基于Python语言的算法与程序设计教学为例,探究使用Python语言设计一个作业实时反馈系统,用于Python的课堂作业实时反馈,以提升算法与程序设计的教学效率。

本文作业实时反馈系统的技术路线分析

1.作业实时反馈系统的设计原理

程序的规模有大有小,无论程序的规模如何,每个程序都有统一的运算模式——输入数据、处理数据和输出数据,即IPO(Input Process Output)方法。IPO既是程序设计的基本方法,也是描述计算问题的方式。因此,通过检测特定的输入数据、输出数据是否正确,是否能解决特定问题,可以判定大多数Python作业有无达成;同时,通过客户端将结果數据发送至服务器,并由服务器将全班学生的数据综合显示于Web页面,便可实现Python作业的实时反馈。

2.作业实时反馈系统的技术分析

本文所讨论的Python作业实时反馈系统由服务器端、数据库、Web页面、客户端等模块构成。整体架构如图1所示。

其中,服务器端部分属于反馈系统的主逻辑,承载着作业数据的采集、控制数据存储、提供Web页面数据支持等功能;数据库部分用于学生数据、作业反馈结果等数据的存储;客户端部分用于学生作业完成情况的逻辑判断、向服务器端发送结果数据;Web页面部分用于将结果数据进行展示,供学生与教师实时反馈。

本文作业实时反馈系统的设计开发

1.数据库设计

数据库主要用于学生信息、作业结果等数据的存储。数据的采集可通过客户端发送数据请求,服务器端将返回的数据存储于数据库中,同时将有效数据返回Web页面用于前台展示。本系统采用Python语言的SQLite3模块构建与操作数据库,其数据库结构设计如下页表所示。

建立数据库的核心代码如图2所示。

2.服务器端程序编写

服务器端程序采用Flask网页框架编写,主要包括2个主函数,分别用于接收客户端数据请示、Web页面数据呈现。

用于接收客户端数据请示的函数设计如图3所示。

用于Web页面数据呈现的函数设计如图4所示。

3.Web页面程序编写

Web页面程序采用Flask框架的模板文件编写,其中的关键在于获取服务器端程序传递的数据,并在页面中加以显示。其核心代码片段如图5所示。

4.客户端程序编写

客户端程序采用模块设计,即设计一个检测作业是否正确的模块,然后嵌入到学生作业中,在学生运行Python程序时,检测模块可以自动检测作业完成情况,并将学生信息与检测结果实时发送给服务器端。

检测模块核心代码如下页图6所示。

本文Python作业实时反馈系统应用实例

下面以浙江教育出版社《信息技术》八年级上册第二单元第6课“多分支结构程序设计”中的练习2为例,说明本系统的应用过程。作业题目呈现如下页图7所示。

(1)分析作业,确定输入数据与输出数据。

输入数据:由作业分析可知,本作业中的输入数据有三个,分别为三角形的三条边长,以此确定输入数据的变量名为:a,b,c。

输出数据:即结果数据,本作业的输出有两种情况:若三条边能构成三角形,则输出数据为通过海伦公式求出的三角形面积;若三条边不能构成三角形,则打印输出“输入的三条边,不能构成三角形!”。由于打印输出无法进行传递,因此,本作业可以在“else:”模块结构中加入一条语句“area=0”,以表示输入的三条边不能构成三角形。以此确定输出数据的变量名为:area。

(2)根据输入与输出数据,修改检测模块核心代码。

根据输入与输出数据的分析,可以修改检测模块的核心代码(如图8)。

(3)设计作业文件,嵌入检测模块。

在Python作业实时反馈系统的应用过程中,教师在布置Python作业时,应提供一个模板文件,嵌入用于提交作业结果数据的核心代码。在本实例中,学生作业中嵌入的核心代码如图9所示。

(4)学生完成作业,运行作业程度,提交检测数据。服务器接收检测数据,显示结果页面。

当学生运行了作业程序时,会触发检测代码的执行,检测代码自动匹配输入数据与输出数据是否符合作业设计要求,并根据结果向服务器发送数据,服务器端在接收到数据后,一方面将结果存入数据库,另一方面将结果返回给Web页面,用于显示。在作业结果反馈以后,教师即可根据情况实时调整教学进程。如果全班完成情况较好,则可以加快教学进程;如果完成情况较差,则可以放慢教学进程;如果有部分学生经常性地无法完成,则需要对这些学生进行课外辅导。

猜你喜欢
服务器端代码页面
答案
让Word同时拥有横向页和纵向页
基于Qt的安全即时通讯软件服务器端设计
神秘的代码
基于Qt的网络聊天软件服务器端设计
一周机构净增(减)仓股前20名
重要股东二级市场增、减持明细
一种基于Java的IM即时通讯软件的设计与实现
近期连续上涨7天以上的股
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用