公务员期刊网 论文中心 正文

程序设计课堂行为数据采集系统探析

程序设计课堂行为数据采集系统探析

[摘要]课堂中学生的行为,直接反映了教学的精确性和有效性,而程序设计类课程教师最关注的学生课堂行为,则是学生代码的编写。从学生程序撰写的行为数据出发,搭建数据采集系统,将学生有效的输入代码的行为数据采集后进行处理存储到数据库中,并实时呈现到教师的前端编程开发环境,辅助教师开展教学活动,提高教学效果。

[关键词]程序设计类课程;学生课堂行为;数据采集;教学改革

在以学生操作为主的课程中,如程序设计类课程,学生普遍存在动手能力不强、主动性不够等问题。而在教学过程中,教师往往只能在教室中来回穿行,尽可能督促学生跟随教师的教学思路,一步步完成实践技能的训练。一旦教师的监督力度不够,则无法保障教学的质量和效率。在高职院校中,课堂教学的师生比几乎都在1∶40以上,加上学生的自觉性更低、实践能力基础更薄弱的现状,在上课过程中实施全面、有力、有效且能够刺激学生的教学监控,显得尤为重要。如何有效地刺激学生持续性地学习,一直是教学的一大难题。本文根据这一难题,研究了程序设计类课程学生课堂行为数据采集系统。以Python程序设计基础课程为例,教师建立统一的操作系统环境,学生通过浏览器登录操作系统,进行代码的输入、测试和运行等操作,学生的所有操作数据将被行为数据采集系统收集汇总后,实时显示在操作系统环境中供教师查看,以便及时了解学生的学习状态,并根据学生的学习状态数据,及时调整自己的教学节奏和方法。

一、学生课堂行为数据信息

学生在上课过程中会产生各种随机的行为数据,但是大部分数据并不能代表学生的学习状态,也无法表征学生的学习行为。学生课堂行为数据并非指学生观看屏幕的时间、抬头低头率等参数指标,而是能够直接反映学生学习的行为数据信息。同时,在传统教学模式下,被认为能够客观衡量学生行为的数据,主要集中在教学平台。现在广泛使用的教学平台,如智慧职教、大学生慕课、超星学习通等,或通过学生是否完整学习课程视频的数据来判断是否完成学习任务,或通过平台中课程的客观测试题对学生进行成绩评分,这些方法根本无法真正反映学生的学习行为和学习效果。现在的教学活动,教学平台无法对学生的学习行为进行客观判断和采集,更没有其他较好的工具或者平台来采集学生过程性实践操作的行为数据,进而对学生的学习活动进行过程性的客观评价。对于程序设计类课程来说,重在代码的设计和实践操作,编写代码的有效行为才是采集行为数据信息的目标。本文主要针对程序设计类课程,采集教学过程中学生产生的课堂行为数据信息。不同班级不同的学生,他们的课堂行为数据在整个课堂教学过程中不断发生变化,在不同的教学活动中产生不一样的代码输入行为数据。学生课堂行为数据采集的信息主要包括以下几个部分。

(一)学生相关信息

教师一般会对不同的班级采用不同的授课方式,且会在一门课程的持续教学过程中,根据学生的学习状态和学习水平做出动态的调整。学生的课堂行为数据采集,基础信息便是学生的学号和姓名,以表征学生个体。而学生又是处于不同班级的,除了学生个体本身,不同班级的横向对比数据也非常重要,因此,另一个学生相关的信息便是其班级信息。

(二)代码数据

程序设计类课程,最重要的评判学生行为的指标,显然就是学生在上课过程中能够积极主动地输入程序代码,而将学生代码输入的行为进行量化分析,其前提就是定义代码输入的行为数据。以Python程序设计基础为例,一个知识点的教学活动不管教学方式如何变化,教学过程主要分为理论的讲解、实践任务的下发、学生的操作、教师的讲解以及学生的修改。作为编程类课程,学生针对实践任务输入的代码以及对代码的修改是最关键的课堂行为数据。首先,学生会根据教师下发的任务,输入相应的原始代码,每过一定时间数据采集系统会定时自动保存学生输入的代码,也可由学生手动强制保存,所有的代码都会被存入学生本地的日志文件中。其次,随着教师的讲解,学生可能会迭代修改代码,也有可能会因为原始代码是正确的,而无需修改。因此,学生如果修改代码,所有的最新代码也会被定时或强制保存,而原本如果学生输入的代码就是正确的,不用根据教师的讲解修改,则可通过代码运行部分的数据体现。根据课堂教学实践任务的逐步开展,上述行为会被不断重复。学生登录开发环境后所有输入的代码都被保存下来,以便进行学生操作数据的横向和纵向对比。当然,除了输入的代码数据,运行结果也是非常重要的。不管是原始输入的还是修改的代码,都会被学生运行,以测试自己输入的代码是否正确。一般的,教师下发的任务答案是唯一的,所以,不管学生的代码如何书写,运行结果是否正确,都可以将其与正确答案进行对比。因此,代码运行后的结果数据,也将会被保存在本地日志文件中,以便后续发送至数据库,被用于分析学生的实践操作行为。同时,大部分学生学习Python程序设计基础时,并没有编程基础,在写程序代码的过程中,会出现各种各样的错误,有的是语法错误,有的是拼写错误,有的是程序逻辑错误,不管哪种错误,都需要学生学会定位自己发生错误的代码。学生课堂行为数据采集系统的开发环境平台,提供学生进行代码调试的工具,可以帮学生快速找到自己程序异常的原因。因此,代码调试的异常提示数据也会被保存到本地日志文件中。

(三)代码的记录时间与更新时间

为了分析学生在整个课堂的教学过程中是否积极主动参与到学习中,系统必须一直检测数据的代码是否有更新。如果个别学生学习懒散,则会出现很长时间的代码无更新状态,而当学生已经有了程序设计思路开始动手写代码的时候,短时间内有较高的代码更新率。因此,采集学生代码不同的更新时间,会直接反映学生的学习状态和效率。在写入日志文件时,学生课堂行为数据其中两个重要的信息便是:代码的记录时间和更新时间,记录时间是上一次更新代码时记录下来的时间。根据上述需要采集的学生课堂行为数据信息,本文研究了基于Python编程环境,并兼容C、C++等主流编程语言环境的学生课堂行为数据采集系统。

二、数据采集系统的研究

本文研究的学生课堂行为数据采集系统,基于Python程序设计基础课程,部署了学生的Python开发系统环境,学生使用自己的学号和姓名登录开发系统。根据教学内容的不同,学生在课堂中可能会在自己独立的开发环境中输入代码、调试代码以及运行代码,学生在该系统中做的这一系列的操作行为数据相关的信息,都将被采集存储到数据库中。后台系统将数据呈现在前台供教师实时观看,帮助其及时了解学生的学习状态和自己的教学效果,以做出实时的教学内容和方式的调整。课堂行为数据采集系统,主要有学生端、前端接入、后台处理以及数据库组成,其具体结构如图所示。数据采集系统不同的模块负责不同的功能,前端接入产生原始的学生行为数据,数据监控则将原始数据同步上传,数据管理对上传后的数据处理后存储到数据库中。

(一)前端接入

前端接入主要是学生、教师或管理员通过自己主机的浏览器,使用HTTP协议与数据监控模块的Web服务端通信,进入自己账号对应的独立的编程语言开发环境。不管教师还是学生,都可以通过自己的浏览器登录数据采集系统,但是不同的用户拥有不同的账号,不同的账号对应不同的权限。教师通过自己的工号登录,分配的是管理员权限。教师登录后,可以进行创建任务、下发任务,查看学生代码输入的实时数据等操作。而学生使用自己的学号作为用户名登录,只有普通用户的权限,可以接受教师下发的任务,根据任务在环境中输入完成不同教学任务对应的程序代码。除了不同用户的权限,前端环境也保障了每个用户的独立编程环境,相互之间互不影响。不同的用户登录系统,都会从后台拉取镜像单独运行,在本地终端形成自己的类似容器的环境。用户所在的开发环境,只会记录本用户的所有数据,安全独立,运行可靠。学生每个人的课堂行为数据相关的信息,都会被保存在本地终端环境的日志文件中,以供后台进行数据采集。

(二)数据监控

数据监控是数据采集系统最基础也是最重要的模块,不仅要保障前端接入后用户的正常运行,还要将前端数据采集后与数据处理模块进行交互,并进行实时显示。运行环境部署模块,部署了具体课程所需的编程环境,Python程序设计基础课程使用Python语言,因此,该模块会将Python开发环境所需的编辑器、解释器和调试器都进行统一部署,让教师和学生方便地使用基础资源,产生原始的行为数据。Web服务端和用户权限管理模块,是密不可分的。前端接入通过HTTP协议与Web服务端进行通信,提供所有用户以Web浏览器的方式接入,直面程序开发环境;用户权限模块则提供了基本的权限分配,实现学生与学生之间的用户权限隔离,方便对每个学生的个人行为操作数据进行管理,也实现了教师对整个班级的数据的观测。日志模块则是核心模块,所有学生在各自终端环境的日志文件触发上传事件时,这些文件都会被同步上传到该模块。由于学生会保存相同的代码,或者定期保存的代码并无变化,因此,只有当学生本地的日志文件修改内容大于指定的最小修改阈值,才会触发日志文件的上传,而上传的所有学生行为数据,才是最终日志模块采集的有效数据。数据实时显示模块,则是将数据管理模块中处理后的数据实时显示返回前端,供教师或者管理员用户查看,让教师和学生通过该系统真正提高自己的教与学的最终效果。

(三)数据管理与数据库

数据管理模块将数据监控采集的学生课堂行为数据进行处理后存入数据库。学生行为管理模块,主要针对教师,管理班级学生的有效输入行为;用户日志收集模块,则收集不同班级、不同学生的数据监控中上传的原生数据;事件管理模块则对收集的日志数据进行过滤处理,去除无效的过程性行为数据,保障数据存储的高效性。数据管理模块将处理后的数据存放到数据库中,供管理员后续的进一步的使用和分析。学生个体在时间维度上,其数据是一直在变化的,学生在课堂中的有效行为数据并不多,通过本文的学生课堂行为数据采集系统,采集学生在特定的操作行为产生的有效数据,将学生的代码输入行为进行真实有效的记录,并通过数据的处理显示,让教师实时快速调整自己的教学目标、教学内容或教学方式,达到最佳的教学成效。

三、结论

信息化教学已经在现代教学领域占据了非常重要的地位。综合使用云计算、数据分析等技术建立的学生课堂行为数据采集系统,不仅将学生在课堂中的有效编程行为数据信息保存下来,实时地反映课堂中的学生学习状态,有利于完善教师和学生的教学活动,更提供了对不同年级、不同班级、不同学生个体横向和纵向行为数据分析的可能性,对教学改革有着较为深远的作用和意义。

作者:虞菊花 常兴治 陶亚辉 单位:常州信息职业技术学院 软件与大数据学院

相关热门标签