基于PHP+MySQL的教学质量保证和诊改信息化系统设计与实现
2018-03-10曾珍珍刘海
曾珍珍+刘海
摘 要:为促使高等院校在学校、专业、课程、教师和学生不同层面建立完整且相对独立的自我质量保证机制,强化各层级质量管理系统的依存关系,形成全要素网络化的内部质量保证体系,设计并实现了教学质量保证和持续诊断改进系统。采用MySQL5.0+PHP相结合方式开发,使系统更贴近教学实际,突显学生能力培养,以课程教学过程的标准化促进教学质量的提升,增强了教学的过程性评价和数据分析在教学质量评价中的地位。
关键词:教学质量;诊改信息;过程性评价;数据分析
DOIDOI:10.11907/rjdk.172196
中图分类号:TP319
文献标识码:A 文章编号:1672-7800(2018)002-0108-06
0 引言
在高等院校课堂教学中掌握学习进度是关键,作业是学生接受知识进度的最好体现。教师在进行作业批改与分析中往往会占用很多时间,难以把握学生的知识进度,导致教学上时间不够分配。教学质量保证和诊改信息化系统为教师节省了批改及分析作业的时间,能准确掌握学生接受知识的进度,大大提高课堂的教学效率。
1 系统需求分析
借助教学质量保证和持续诊改信息化平台,通过统一课程标准、教学资源、教学过程以及对教学过程进行有效监控和数据分析,实现教学质量的稳步提升以及持续的诊断和改进。系统主要模块如图1所示。
1.1 系统逻辑模块
(1)基础数据模块:完成学生、课程、教师基础数据的增删改查等功能。
(2)课程资源模块:把课程项目资源分解成任务,完成所有任务资源的整合和管理。
(3)“教学做一体化”过程设置模块:把课程教学分为不同单元,把项目任务分解到不同的单元中。
(4)評价指标设置模块:针对大一、大二、大三不同课程分类设置评价指标,如教学方法、教学进度、内容难易程度、项目步骤是否合理等。
(5)课堂数据采集模块:在“教学做一体化”过程中收集学生对每个项目任务的练习、建议、评价,提交数据,收集教师批改练习的数据。
(6)数据统计和分析模块:根据收集的数据,分析每个任务的完成率、完成时间、完成效果;分析每个单元的完成率、完成时间和完成效果;分析学生对任务的评价,如教学方法、任务内容难度、任务步骤清晰度等;统计学生平时成绩。
(7)持续诊改模块:提出诊断信息,包括任务完成时间是否合理、完成率、完成效果是否达到要求、任务内容是否应该修改、每个单元任务设置是否合理、对课程资源设置是否合理。
(8)诊改数据库模块:把专业课程诊改数据对接(导入)学校诊改数据库平台。
2 系统设计
按照需求功能要求,将系统分解为多个子系统,根据每个子系统的功能不同,分别完成需求分析中的不同要求。总体结构如图2所示。
2.1 功能分配
系统各功能需求与程序模块(组件)之间的关系如表1所示。
2.2 数据库设计
服务器端程序通过PDO(数据访问对象)应用程序编程接口(API)访问MySQL数据库。
使用MySQL的备份命令对数据进行保存。在网络软件接口方面,使用一种无差错的传输协议,采用滑动窗口方式对数据进行网络传输及接收。
2.3 外部接口
①教师信息管理模块:提供对课程的查询接口;②学生信息管理模块:提供对学生信息查询的接口,包括按学号查询、按姓名查询和按班级查询3种;③课程管理模块:提供对课程信息查询的接口,包括按课程名查询等,见图3、图4。
3 系统实现
学生前台程序见图5。
3.1 学生前台核心代码
实现学生前台核心代码如下:
public function submitList()
{
MYMthis->load->model('tea_information_model', 'getALL');
MYMtas_id = isset(MYM_GET['tas_id']) ? intval(MYM_GET['tas_id']) : 0;
MYMlist = MYMthis->getALL->getStuTas(MYMtas_id, MYM_SESSION['stu_user']->cla_id);
echo '
foreach (MYMlist as MYMkey => MYMitem) {
MYMcolor = 'Black';
MYMbig = '';
if (MYMkey < 3) {
MYMbig = 'font-weight:bold;';
MYMcolor = 'Red';
} else if (MYMkey >= 3 & MYMkey < 6) {
MYMbig = 'font-weight:bold;';
MYMcolor = 'DarkOrange';
} else if (MYMkey >= 6 & MYMkey < 10) {
MYMbig = 'font-weight:bold;';
MYMcolor = 'Gold';
- 人工智能
- 语音识别在旅游领域问句识别中的应用
- 改进的PCA人脸识别算法研究
- 数据仓库下基于学习的并行实体解析算法研究
- 基于混沌时间序列的模糊神经网络预测研究
- 基于Kinect传感器和HOG特征的静态手势识别
- 基于用户模糊聚类的个性化推荐研究
- 人工智能技术及其应用探究
- 软件理论与方法
- 基于MVC的IFML建模方法研究
- 一种网络访问控制语义相容性推理规则自动生成技术
- 一种ABCSAT算法的启发式初始解策略
- 基于社区的混合型WMN信任模型研究
- 基于Android的内存泄漏与溢出研究
- 算法与语言
- 视频前景提取算法研究
- 基于改进蚁群算法的TSP问题研究
- 基于拟合的亚像素边缘检测的算法比较
- 一种基于节点相似度的标签传播算法
- 污水处理系统溶解氧的BP—PID控制算法
- 一种基于MapReduce的改进人工蜂群算法
- 群目标重心跟踪过程中的群合并算法研究
- 基于不均匀数据的密度偏差抽样改进算法
- 基于多宽度高斯核的支持向量机特征选取算法研究
- 软件设计与开发
- 基于CAN总线的无线温湿度测量仪
- 反应堆压力容器老化管理信息系统设计与实现
- 蓄电池无线监测系统设计
- 基于B/S模式的3D服装定制系统设计与实现
- 基于B/S模式的智能家居管理系统设计
- 基于工作流的灾难事件处理系统设计与实现
- 基于ZigBee和RSSI测距算法的室内定位系统设计
- 基于PHP+MySQL的教学质量保证和诊改信息化系统设计与实现
- 基于树莓派的行人检测小车设计
- 一种面向高校招投标公告主题爬虫的设计
- 基于智能移动终端的无线投票教学系统设计开发
- 一种新型轻型机械臂示教软件架构设计
- 应用技术与研究
- 基于Comsol Multiphysics的微沟道式细胞分选仪研究
- 基于GV—LDA的微博话题检测研究
- 基于流形学习的客户价值分析研究
- 基于FPGA的PID控制在液浮陀螺回路中的应用
- 智能立体仓储设备WCS系统研发
- 基于Open Inventor的储层三维雕刻技术研究及实现
- Simhash算法在试题查重中的应用
- 基于FLUENT软件的pVTt法标准容器流场仿真研究
- 基于Solidworks Composer的多轴滑台斜拉机构装配可视化研究
- 虚拟现实技术在民航模拟飞行训练中的应用
- 机载网络数据总线仿真技术研究
- 图形图像与辅助设计
- 图像处理在护照缝纫装订中的应用
- 基于双目立体视觉的目标物定位研究
- 采砂坑与采矿坑的高分一号影像对比分析研究
- 基于VC的太阳光斑图像识别跟踪系统设计与实现
- GIS支持下的迪庆州少数民族人口分布与地形分异研究
- 基于图像熵的全局和局部混合方法的关键帧提取
- 基于图像处理的高精度耳蜗三维重建系统
- 一种自适应超分辨率图像重建方法研究
- 计算机与网络教学
- 新建构主义在ASP.NET MVC Web程序设计课程中的应用
客服热线:400-656-5456 客服专线:010-56265043 电子邮箱:longyuankf@126.com
电信与信息服务业务经营许可证:京icp证060024号
Dragonsource.com Inc. All Rights Reserved
}
echo '
' . (MYMkey + 1) . ' | ' . MYMitem->stu_number . '
' . MYMitem->stu_name . '
';
if (isset(MYMitem->s_t_usetime))
echo MYMitem->s_t_usetime . '分钟';
else
echo 0;
echo '
';
if (isset(MYMitem->s_t_url))
echo '完成';
else
echo '只提交问题或建议';
if (isset(MYMitem->s_t_score))
echo "({MYMitem->s_t_score}分)";
else
echo '(待批改)';
echo '';
}
echo '';
}
// 判斷是否已开启交叉批改
MYMdate = array(
'tas_id' => MYMtas_id,
'cla_id' => MYMcla_id,
'is_cross_correct' => 1
);
MYMres = MYMthis->db->where(MYMdate)->get('tb_tea_cla_tas');
MYMrow = MYMres->row();
if (!MYMrow) // 未开启时
{
echo '';
MYMthis::goBack();
die();
}
else
{
MYMthis::goBack();
}
MYMrandom_number = MYMrow->random_number;
MYMsql = "SELECT * FROM `tb_stu_tas` WHERE `tas_id`={MYMtas_id} AND
`stu_id` IN (SELECT `stu_id` FROM `tb_student` WHERE `cla_id` ={MYMcla_id})";
MYMres2 = MYMthis->db->query(MYMsql);
MYMlist2 = array();
MYMlist = MYMres2->result();
if (count(MYMlist) <= 1) {
echo '';
MYMthis::goBack();
}
foreach (MYMlist as MYMk => MYMv) {
if (MYMrandom_number + MYMk < count(MYMlist))
MYMlist2[MYMrandom_number + MYMk] = MYMv;
else
MYMlist2[MYMrandom_number + MYMk - count(MYMlist)] = MYMv;
if (MYMv->stu_id == MYMstu_id & MYMv->tas_id == MYMtas_id) {
MYMkey = MYMk;
}
}
ksort(MYMlist2);
MYMcorrect_task = MYMlist2[MYMkey];
private static function changeTimeType(MYMseconds)
{
if (MYMseconds > 3600) {
MYMhours = intval(MYMseconds / 3600);
MYMminutes = MYMseconds / 60;
MYMtime = MYMhours . ":" . gmstrftime('%M:%S', MYMminutes);
} else {
MYMtime = gmstrftime('%H:%M:%S', MYMseconds);
}
return MYMtime;
}
}endprint
3.2 教师前台核心代码
实现教师前台(见图6)核心代码如下:
public function corretTask()
{
MYMres = MYMthis->db->where('tas_id = ', MYMtas_id)->get('tb_stu_tas');
if (isset(MYM_GET['select_student']) & MYMstu_id != 0) {
MYMcheck = array(
'tas_id' => MYMtas_id,
'stu_id' => MYMstu_id
);
MYMres = MYMthis->db->where(MYMcheck)->get('tb_stu_tas');
// 若不存在则返回到课程&班级列表视图
if (!MYMres->row() && MYMstu_id != 0) {
MYMthis::goBack();
}
if (MYMres->row()->s_t_score)
MYMdata['isCorret'] = 1;
} else {
if (!MYMres->row()) {
echo "";
MYMthis::goBack();
}
}
MYMscore = array('s_t_score' => isset(MYM_POST['select_class']) ? MYM_POST['select_class'] : 0);
MYMthis->db->update('tb_stu_tas', MYMscore, MYMcheck);
MYMthis::goBack();
}
MYMthis->load->model('tea_information_model', 'get');
MYMdata['norm'] = MYMthis->get->getNorm(MYMstu_id, MYMtas_id);
MYMdata['word'] = MYMthis->get->getStuTas(MYMtas_id, MYM_SESSION['tea_cla_id']);
MYMdata['corret'] = MYMthis->get->getCorretStuTas(MYMtas_id, MYM_SESSION['tea_cla_id']);
MYMdata['stu'] = MYMthis->get->getStu(MYMtas_id, MYMstu_id);
MYMthis->load->view('tp/task_correct', MYMdata);
}
public function download()
{
MYMtas_id = intval(MYMthis->uri->segment(3));
MYMstu_id = intval(MYMthis->uri->segment(4));
MYMcheck = array(
'tas_id' => MYMtas_id,
'stu_id' => MYMstu_id
);
MYMres = MYMthis->db->where(MYMcheck)->get('tb_stu_tas');
MYMlist = MYMres->row();
if (file_exists(MYMname)) // 存在時
{
force_download(MYMname, NULL);
}
else // 不存在时
{
echo "";
}
MYMthis::goBack();
}
3.3 教师后台核心代码
实现教师后台(见图7)核心代码如下:
//绑定课程&班级&教师
public function bindingCourse()
{
MYMthis->load->model('backstage_model');
MYMdata['teacher'] = MYMthis->backstage_model->getAll('tb_teacher');
MYMdata['class'] = MYMthis->backstage_model->getAll('tb_class');
MYMselect_teacher = (isset(MYM_POST['select_teacher'])) ? intval(MYM_POST['select_teacher']) : 0;
MYMselect_class = (isset(MYM_POST['select_class'])) ? intval(MYM_POST['select_class']) : 0;endprint
MYMdata['tea_id'] = MYMselect_teacher;
MYMdata['cla_id'] = MYMselect_class;
MYMcou_id = intval(MYMthis->uri->segment(3));
MYMres = MYMthis->db->where('cou_id = ', MYMcou_id)->get('tb_course');
MYMlist = MYMres->row();
if (MYMlist) {
MYM_SESSION['cou_id2'] = MYMcou_id;
} else {
MYMthis::goHref('goCouManage');
}
MYMdata['cou_name'] = MYMlist->cou_name;
if (isset(MYM_POST['binding'])) {
if (MYMselect_teacher != '' && MYMselect_class != '') {
MYMdate = array(
'cou_id' => MYMcou_id,
'cla_id' => MYMselect_class
);
MYMbool = 0;
MYMres = MYMthis->db->where(MYMdate)->get('tb_cou_cla_tea');
if (MYMres->row()) {
MYMis_repeat = 0;
echo "";
} else {
MYMis_repeat = 1; }
if (MYMis_repeat == 1) {
MYMdate2 = array(
'cou_id' => MYMcou_id,
'tea_id' => MYMselect_teacher,
'cla_id' => MYMselect_class
);
try {
MYMbool = MYMthis->db->insert('tb_cou_cla_tea', MYMdate2); } catch (Exception MYMe) {
echo "";
}
}
if (MYMbool) {
echo "";
}
}
}
MYMdata['url'] = '';
MYMthis->load->view('tb/cou_binding', MYMdata);
}
public function lookCouClaTea()
{
MYMthis->load->model('backstage_model');
MYMlist = MYMthis->backstage_model->courespaging(20, 'admin/lookCouClaTea'); // 调用login_model模型的分页方法
MYMdata['list'] = MYMlist['list'];
MYMdata['links'] = MYMlist['links']; // 显示分页
MYMdata['total_rows'] = MYMlist['total_rows'];
MYMthis->load->view('tb/cou_cla_tea', MYMdata);
}
public function deleteCouClaTea()
{
MYMcou_id = intval(MYMthis->uri->segment(3));
MYMcla_id = intval(MYMthis->uri->segment(4));
MYMtea_id = intval(MYMthis->uri->segment(5));
MYMdate = array(
'cou_id' => MYMcou_id,
'cla_id' => MYMcla_id,
'tea_id' => MYMtea_id
);
MYMthis->db->delete('tb_cou_cla_tea', MYMdate);
MYMthis::goBack();
}
3.4 系統界面实现
系统主控制平台采用简单、直观的布局,通过菜单实现对系统各个模块的调用和各窗体的显示,见图8。
参考文献:
[1] 潘凯华,刘中华.PHP开发实战1200例[M].北京:清华大学出版社,2011.
[2] LAURATHOMSON.PHP和MySQL Web开发[M].北京:机械工业出版社,2009.
[3] 曾棕根.PHP程序设计[M].北京:北京大学出版社,2012.
[4] 唐汉明,翟振兴,关宝军,等.深入浅出MySQL:数据库开发、优化与管理维护 [M].第2版.北京:人民邮电出版社,2014.
[5] 杨晓军,秦方.MVC Web开发学习实录[M].北京:清华大学出版社,2011.endprint