学生学业预警系统设计

编写不易,记得点赞收藏加关注

软件工程

课程研究报告

 

题目:大学生学业预警系统

 

 

 

 

专     业    

班     级  

学     号  

学     生 

指导 教师

 

目录

第一章 可行性研究分析 1

1引言 1

1.1项目名称:大学生学业预警系统 1

1.2项目背景和内容概要 1

1.3参考资料 1

2 可行性研究的前提 2

2.1 要求 2

2.2 目标 2

2.3 条件、假定和限制 2

2.4 局限性 3

3 所建议技术可行性分析 3

3.1 对系统的简要描述 3

3.2 处理流程和数据流程 3

3.3 技术可行性评价 4

3.4 人员 5

4 所建议系统经济可行性分析 5

4.1 支出 5

4.2 效益 6

4.3 收益投资比 6

4.4 敏感性分析 6

5 社会因素可行性分析 6

5.1 法律因素 6

5.2 用户使用可行性 7

6 结论意见 7

第二章 需求分析 7

1引言 7

1.1 项目名称:大学生学业预警系统 7

1.2 项目背景和内容概要 7

1.3 相关资料、缩略语、定义 8

2 任务概述 8

2.1 目标 8

2.2 范围 8

2.3 假定条件和约束限制 9

3 功能及业务流程 9

4 数据描述 10

4.1 原始数据描述 10

4.2 E-R图 11

4.3 层次框图 11

5 界面要求 12

6 性能需求 12

6.1 可靠性需求 12

6.2 安全性需求 12

6.3时间特性需求 13

6.4 可维护性和可扩展性 13

7 运行环境需求 13

8 需求确认 13

第三章 概要设计 14

1引言 14

1.1 项目名称:大学生学业预警系统 14

1.2 项目背景和内容概要 14

1.3 相关资料、缩略语、定义 14

2 概要设计 14

2.1 软件体系结构 14

2.2 子系统划分 16

2.3 程序模块划分和功能划分 16

2.4 人工处理过程 17

3 系统软硬件环境 17

3.1 硬件环境 17

3.2 软件环境 18

4 用户界面设计 18

5 数据库程序 18

5.1 数据连接资源 18

5.2 数据库操作 18

6 安全保密设计 18

第四章 详细设计 19

1引言 19

1.1 项目名称:大学生学业预警系统 19

1.2 项目背景和内容概要 19

1.3 相关资料、缩略语、定义 19

2 程序结构 20

2.1 程序结构图 20

3 程序设计说明 20

3.1 程序文件名 20

3.2 学业预警子系统算法说明 21

3.3 伪代码表示程序 21

3.4 存取的数据库表和字段 22

第五章 编码 23

1引言 23

1.1 项目名称:大学生学业预警系统 23

1.2 目的 23

1.3 相关资料、缩略语、定义 23

1.4 术语定义 23

1.5 引用标准 24

1.6 参考资料 24

2 学业预警子系统部分代码 24

 

 

第一章 可行性研究分析

1引言

1.1项目名称:大学生学业预警系统

1.2项目背景和内容概要

随着社会的发展和教育的普及,大学生群体规模不断扩大,他们是国家未来的栋梁之材。然而,由于各种原因,一些大学生在学业上出现了困难和问题,导致学习成绩下降、学业进展缓慢甚至辍学。这不仅对个人的发展产生了负面影响,也对社会的发展带来了挑战。因此,建立一个高效的大学生学业预警系统,能够及时发现并解决学生学业问题,具有重要的现实意义。

首先,大学生学业预警系统可以帮助学校及时发现学生的学业问题,提供针对性的帮助和支持。通过对学生学习成绩、出勤情况、作业完成情况等数据进行分析,系统可以准确判断学生是否存在学业失败的风险,并及时向相关教师和辅导员发出预警信息,以便他们能够采取相应的措施帮助学生解决问题,避免学业失败。

其次,大学生学业预警系统还可以促进学生自我管理和自我调整能力的提升。通过系统的预警和提醒功能,学生可以及时了解自己的学业状况,发现问题并主动采取措施加以改进。这有助于培养学生的自我意识、自我管理和自我调整能力,提高他们的学习效果和综合素质。

此外,大学生学业预警系统还可以为学校提供数据支持,帮助学校进行教育教学改革和管理优化。通过对学生学业数据的分析,学校可以了解到不同专业、不同年级学生的学业情况,从而针对性地制定教学计划和辅导方案,提高教学质量和学生满意度。

1.3参考资料

张剑飞,.软件工程基础与实例分析.机械工业出版社2018.11,2版:2023.1(重印).

中华人民共和国教育部.2021年全国教育事业发展统计公报[EB/OL].http://www.moe.gov.cn/jyb_xwfb/gzdt_gzdt/s5987/202203/t20220301_603262.html 2022.

王晓宁.全球经验基础上的21点启示——以国际比较视野助力教育信息化“十四五”规划起草际比较视野助力教育信息化“十四五”规划起草[J].人民教育,2020,(Z2):24-28.

白学军,原胜,都旭,孙世南,韩洋,刘羽.大学生学业失败的预警因素初探[J].天津师范大学学报(社会科学版),2022(01):70-76.

原胜.大学生学业失败的预警与应对[D].2022.

陈贤源,祝诗平,李秀艳,任强.经济可行性分析系统软件开发[J].中国环境监测,1996(05):.

赵卫东,董亮.Python机器学习案例(第二版).清华大学出版社, 2022.

赵卫东,董亮.机器学习[M].北京:人民邮电出版社,2018.

2 可行性研究的前提

2.1 要求

功能:系统包括管理员子系统、学生端子系统和教育管理者,学生登录系统可查看自己的各项信息,包括学分信息、成绩信息等等,学校管理员可以管理学生的学习成绩,发布公告等,并通过对其各项信息的测评评定其是否存在学业失败的风险,若存在则对学生发出警告,方便学校与学生之间的交流。

性能:学校的通知公告和警告提示应及时反应在学生管理系统平台上,并能够及时、正确的刷新。

输出要求:数据完整、翔实、准确。

输入要求:简捷、快速、及时。

安全与保密要求:只有准确输入管理员用户名和密码之后才能修改系统信息,普通学生用户只能登录浏览及填写,不能随意修改。

完成期限:预计6个月

2.2 目标

系统实现后能够及时发布通知公告、发送预警信息,大大降低高校大学生学业失败的风险,提高学生的毕业率,提高教学工作的效率和质量,能够更大范围的培养人才,对学生的各项影响因素进行分析,分析影响因素之间存在的依赖关系对学生学业预警结果的影响,深入发掘学生数据中的重要信息,帮助学生更好地进行自我管理,保证学生学业的顺利和学校教学水平的提高。

2.3 条件、假定和限制

建议开发软件运行的最短寿命:5年。

经费来源

硬件条件:服务器。

软件运行环境:Windows 10

数据库:MySQL 8.0

建议开发软件投入最迟使用时间:2024-7-18

2.4 局限性

由于学校课程调整频繁及人员流动性较大,以往学业预警因素分析范围狭窄,不能满足学校发展的需求。

3 所建议技术可行性分析

3.1 对系统的简要描述

学生端子系统:学生通过系统平台浏览学校发布的信息,查看学业预警结果和教师评价,管理个人信息,查询自己的画像分析,修改账号密码。

管理员端子系统:学校可以浏览学校发布的信息,管理用户信息,添加教育管理者,并为其分配角色,并根据学生信息预测其是否存在学业失败的风险,发送学业预警信息等。

教育管理者端子系统:系主任和教务处可以查看各专业和整个学校的学业预警情况及画像分析等。

3.2 处理流程和数据流程

通过分析得出大学生学业预警系统的主要功能应当有信息处理、生成预警表单两大项,则其第零层数据流图如图1-1所示,第一层数据流图如图1-2如所示:

7a10a472fb4b4debb99c4338d7eba827.png

图1-1 大学生学业预警系统的第零层数据流图

370f24fa058940ca96a1fa484f10fa67.png

图1-2 大学生学业预警系统的第一层数据流图

对于大学生学业预警系统将挑选两个代表数据字典,分别是学生基本信息表的数据字典(图1-3)和大学生学业预警系统的学生课程学习行为数据表的数据字典(图1-4)。

 

ac768f99fb894693b1253629f4a7fc54.png

3.3 技术可行性评价

成本效益分析结果表明,此项目效益大于成本。利用现有技术及当前项目档期人员调配信息充足的情况,能够完成和达到预期的功能目标,并且开发工作可以在规定的期限内按期完成。

3.4 人员

负责此系统的具体人员分配见表1-1

表1-1 人员分配表

人员类别

姓名

职能

 

分析、设计及编码

可行性分析,需求分析、详细设计、概要设计及编码实现

 

数据整理、汇总

概要设计图部分、详细设计程序文件名、E-R图

 

4 所建议系统经济可行性分析

4.1 支出

4.1.1基本建设投资

基本建设投资包括采购、开发和安装下列各项所需的费用。例如:

终端 PC 50台:5000元×50=25万元

网络设备:0元(学校自带wifi)

辅助配置:10万元

4.1.2 其他一次性支出

MySQL:0.5万元

Windows 10 家庭版:0元

操作员培训费:1万元

4.1.3 经常性支出

人工费用:3000元×6(月)×10(人)=6万元

4.2 效益

4.2.1 一次性收益

0元

4.2.2 经常性收益

减少员工10人(1000元/人)五年收益:

1000元×(1.1+1.1²+1.1³+1.1⁴+1.1⁵)×10×12×5=60万元

工作效率提高收益(工作效率提高30%):

6万元×(1.1+1.1²+1.1³+1.1⁴+1.1⁵)×30%×5=9万元

4.3 收益投资比

支出共计:42.5万元

收益共计:69 万元

整个系统生存期的收益与投资的比值=69万元/42.5万元=162.3%

4.4 敏感性分析

敏感性分析是指一些关键性因素,例如系统生存周期长短、系统工作负荷量、处理速度要求、设备和软件配置变化对支出和效益的影响等的分析。

处理速度:一般查询速度<5s。

关键数据查询速度:<3s。

5 社会因素可行性分析

5.1 法律因素

例如合同责任、侵犯专利权、侵犯版权等问题的分析。

所有软件都选用正版。

所有技术资料都由提出方保管。

合同确定违约责任。

5.2 用户使用可行性

例如用户单位的行政管理、工作制度、人员素质等能否满足要求。

使用本系统的人员要求有一定的计算机基础,系统管理员要求有计算机的专业知识,所有人员都要经过本公司培训。

管理人员也需经一般培训。经过培训人员将会熟练使用本软件。

两名系统管理员将进行专业培训,熟练管理本系统。

6 结论意见

由于项目投资效益比远大于100%,技术、经济、操作都有可行性,可以进行。

第二章 需求分析

1引言

1.1 项目名称:大学生学业预警系统

1.2 项目背景和内容概要

随着互联网技术、人工智能化的高速发展,信息化建设和数据库管理被逐渐地引入到各个行业的日常工作管理当中,以帮助人们更有效率的处理相关业务。在最新的“十四五”规划中明确提出将互联网与教育结合起来,加快教育信息化,加快建设高校信息化基础设施。目前,各大高校为了适应信息化时代的需求,纷纷进行了信息化建设,建立了自己的信息中心,为学生学业预警研究提供了数据支持。随着国家高等教育转变战略,让更多的人能够获得高等教育,据2022年3月中华人民共和国教育部发布的《2021年全国教育事业统计主要结果》显示,我国高等教育在学总规模于2021年达到了4430万人,在校学生达到3496.13万人。高等院校的学生数量持续增加,这使得信息中心的数据量呈现出爆发式的增长,并且数据信息也变得更加丰富。但可惜的是这些数据本身所蕴含的价值往往没有得到足够的关注,数据本身所蕴含的丰富信息常常被忽略。而在互联网技术高速发展的背景下,这些数据也逐渐走进了研究者的视线,怎么才能有效地利用这些数据,如何从这些数据中挖掘出有用的信息。在学生学习道路上,怎样利用这些数据信息识别出有学业失败的学生,从而有助于减少学高等教育中的学业失败,完善预警帮扶机制,及时为他们制定相关策略来支持和帮助,进一步提高学生学习质量,使学生能够顺利完成学业任务,这将是未来各大高校和研究者们要关注的一个重点。

1.3 相关资料、缩略语、定义

张剑飞.软件工程基础与实例分析.机械工业出版社2018.11,2版:2023.1(重印).

管芳笛,郭丽莹,陈以君,王红.浅谈软件工程面向对象软件需求分析的研究【J】.电脑编程技巧与维护,2021,No.428(02):22-23+54.

白学军,原胜,都旭,孙世南,韩洋,刘羽.大学生学业失败的预警因素初探[J].天津师范大学学报(社会科学版),2022(01):70-76.

原胜.大学生学业失败的预警与应对[D].2022.

王勇,李程俊.软件工程需求分析案例教学【J】.科教导刊(中旬刊),2020,No.407(11):132-133.

陈玲萍.基于FP-Growth的高校学业预警系统设计与实现[J].无线互联科技,2018,15(24):39-40+45.

赵卫东,董亮.机器学习[M].北京:人民邮电出版社,2018.

王晓宁.全球经验基础上的21点启示——以国际比较视野助力教育信息化“十四五”规划起草际比较视野助力教育信息化“十四五”规划起草[J].人民教育,2020,(Z2):24-28.

中华人民共和国教育部.2021年全国教育事业发展统计公报[EB/OL].http://www.moe.gov.cn/jyb_xwfb/gzdt_gzdt/s5987/202203/t20220301_603262.html 2022.

2 任务概述

2.1 目标

系统实现后能够基于高校学生的基本信息和期末成绩来预警学生的学业结果。该系统的主要功能需求包括以下:系统用户信息管理、学生个人信息管理、学生学业预警、教育管理者评价和画像分析。使用本系统的用户分为三类:教育管理者、学生与系统管理员。

2.2 范围

该文档是借助于当前系统的逻辑模型导出苇目标系统的逻辑模型,没有涉及开发技术,主要通过建立模型的方式来描述用户的需求,为用户、开发方等不同参与发提供一个交流平台

2.3 假定条件和约束限制

经费限制:0元

开发期限:4个月

设备条件:两台计算机

3 功能及业务流程

学业预警过程分为系统用户信息管理、学生个人信息管理、学生学业预警、教育管理者评价和画像分析几个环节。

系统用户信息管理

管理员可以查看用户信息,并根据需要添加新用户。当用户不再使用该系统时,管理员可以将该用户从系统中删除。另外,管理员也可以给当前用户修改用户角色类型。

学生个人信息管理

主要用于学生对自己的信息进行管理,包括:学生基础信息、学习信息社会关系等。学生可以查看自己的信息,同时可以对信息进行修改,以保证信息的准确性和及时性。

学生学业预警

学生是学业预警的主体,在学业预警系统中,学生可以查看基于随机森林学业预警模型对自己的学业预测结果。另外,该学业预警是基于学生的信息,所以学生在查看学业预测结果之前,必须先填写完整的学生个人信息。教育管理者是学生的直接管理人员,需要了解学生的学业情况,在本系统中将教育管理者分类两类:系主任和教务处。系主任只能查看自己所管理的专业的学生学业预警信息,并且还可以对学生的学业预警结果提出指导性的建议。教务处则可以查看全校学生的学业预警信息,但不给予评价。

教育管理者评价

当学生的学业预警结果不是很理想的时候,系主任可以通过学生的画像分析对学生进行相对应的评价,提醒学生并给予帮助。同时,学生也可以查看教育管理者对自己的学业预警结果给出的相对应的措施评价来进行改正。

画像分析

学生可以查看基于随机森林特征重要性分析模型的画像分析,学生依据画像分析同时结合教育管理者的评价找到自己的不足之处,并加以改正争取顺利完成学业。

教育管理者可以查看本校学生的整体画像分析,帮助教育管理者快速了解学校学生的整体情况。通过画像分析可以知道本校学生中哪些因素对学生学业结果的影响最大,了解各个专业的学生学业结果数据分布等等。

大学生预警业务流程图如图2-1所示。

26e68bfef6b449f89041b8a5f19d4863.png

图2-1 大学生预警业务流程图

4 数据描述

4.1 原始数据描述

学生个人信息环节

(1)输入数据

1)管理员录入学生信息环节

录入数据包括学生学号、学生姓名、年龄、性别、专业代码、所属学院、户籍地情况、入学年份、入学成绩、学习出勤情况、形考成绩、提交作业次数、家庭作业成绩、阶段测验成绩、在线浏览次数。

2)学生录入信息环节

母亲学历、父亲学历、母亲职业、父亲职业、债务情况等社会关系字段可修改,提交时需要验证必输字段。

3)学生信息查询环节

系统给出当前学生所有信息类别,可选择某一类别查看其明细,学业预警查询则跳转到学业预警功能。

(2)输出数据

1)学生信息登记界面

2)学生信息修改列表界面、学生社会关系列表修改界面

3)学生信息查询界面

4.2 E-R图

本系统E-R图如图2-2所示。

f1dbe2674cb64e5da2ad51432d355ea7.png

图2-2 大学生学业预警系统E-R图

4.3 层次框图

大学生学业预警系统层次框图如图2-3

e9a157bc4b354288b2316ea64001eae0.png

图2-3 大学生学业预警系统层次框图

 

5 界面要求

界面内容:主题突出,相关术语明确,菜单设置合理,界面布局规范,内容丰富,文字准确,语句通顺。

导航结构:具有明确的导航指示,方便用户使用。

技术环境:界面大小适当,能用各种常用浏览器以不同分辨率浏览,无错误链接和空链接。

艺术风格:界面版面形象清晰,布局合理,字号大小适宜,字体选择合理,前后一致,动与静搭配恰当,色彩和谐自然,与主题内容相协调。

6 性能需求

6.1 可靠性需求

系统应保证7×24h内不宕机,保证10人可以同时在客户端登录,此时系统能正常运行,正确提示相关内容。

6.2 安全性需求

系统有严格的权限管理功能,各功能模块需有相应的权限方能进入。系统需能够防止各类误操作可能造成的数据丢失、破坏,防止用户非法获取网页以及内容。

6.3时间特性需求

无论是客户端还是管理端,当用户登录,进行任何操作的时候,系统应该及时地进行反应,反应时间应在3s以内。系统能监测出各种非正常情况,如与设备的通信中断,无法连接数据库服务等,以避免出现长时间等待甚至无响应。

6.4 可维护性和可扩展性

本系统的应用平台设计选择B/S结构和VCM开发模式,采用基于Javaweb技术和python分类技术并且符合J2EE开发规范的系统应用平台,使系统具有良好的可维护性和可扩展性。

7 运行环境需求

本系统无论是学生端、教育管理者端还是管理员端都可以通过网络登录到本系统中。系统运行的环境如下:

客户机:普通PC

CPU:P4 2.0GHz以上

内存:256MB以上

能够运行 IE 6.0 以上版本的机器

WEB服务器:

CPU:P4 2.0GHz 以上

内存:1GB以上

硬盘:80GB 以上

数据库服务器:

CPU:P4 2.0GHz以上

内存:1GB以上

硬盘:80GB以上

8 需求确认

经双方评审确认,此需求说明书描述的功能符合南昌工程学院的实际业务流程,满足实际需要。以此文档作为人力资源管理系统项目的开发、验收依据。

【确认签字】

甲方:南昌工程学院公司                     乙方:空客信息技术有限公司

代表:南昌工程学院校长                     代表:

日期:2023年 10月1日                     日期:2023年 10月1 日

第三章 概要设计

1引言

1.1 项目名称:大学生学业预警系统

1.2 项目背景和内容概要

最近几年,机器学习迅速发展并在各个领域中发散出他的光彩,特别是教育领域中机器学习技术已经被人们普遍接受和认同。机器学习的引入,能够满足学校对学生学业进行分析预警的需求,以预警那些可能面临学业失败或者退学风险的学生。另外,还可以帮助教师和学生发现影响学生学业的重要因素。利用机器学习构建预警模型可以使教育管理者能够更好地开展工作,而学生学业预警技术的出现提高了教学质量与学习效果。

1.3 相关资料、缩略语、定义

张剑飞,.软件工程基础与实例分析.机械工业出版社2018.11,2版:2023.1(重印).

余久久.软件工程简明教程[M].清华大学出版社,2015.

赵会盼.一种基于UML的面向对象的软件需求分析方法[J].电子技术与软件工程,2021,(09):63-65.

陈贤源,祝诗平,李秀艳,任强.经济可行性分析系统软件开发[J].中国环境监测,1996(05):.

刘亚宁.面向医疗的随访系统的设计与实现[D].西安电子科技大学,2020.

赵卫东,董亮.机器学习[M].北京:人民邮电出版社,2018.

2 概要设计

2.1 软件体系结构

图3-1为大学生学业预警系统总体结构框架图。大学生学业预警系统主要包括管理员端子系统、学生端子系统和教育管理者端子系统。

管理员端子系统主要维护系统的用户信息,为系统添加和删除用户,新增用户包括单个新增和批量新增,同时也可以使用Excel文件进行批量导入。另外,可以修改用户角色类型,当用户角色为教育管理者时,对教育管理者在进行细分。

学生端子系统主要是个人信息管理和查看学业预警信息。当学生点击学业预警按钮时,如果没有填写个人信息,会提醒先填写完整的个人信息,当学生点击查看画像分析时,如果没有学业预警的记录,会提醒该生暂无学业预警记录,并返回到学业预警菜单。

教育管理者子系统分为系主任和教务处,两者的功能都可以查看学生的学业预警结果以及关于学校全体学生的画像分析。区别在于系主任只能查看自己所管理的专业的学生学业预警结果,并结合学生的画像分析提出相对应的评价;而教务处则可以查看全校学生的学业预警结果但不对其进行评价。教育管理者的画像分析主要是全局分析,展示学生学业预警模型分析出来的学生特征排序图以及基于学校专业的预警结果总体分析。

da201f3914784abbb305513971ba3ee8.png

0fda5f1987c0427fbf848eac6690ba8d.png

图3-3 大学生学业预警系统的H图

2.2 子系统划分

学生通过学业预警平台了解学校概况,查看自己的个人信息,修改信息并了解自己的学业预警结果,教育管理者通过管理者的授权及时了解学生学业情况并为其提供合理的改进建议,方便了学生与教师之间的沟通,大大提升教学质量。系统包括学生端子系统、教育管理者端子系统和管理员端子系统。

2.3 程序模块划分和功能划分

此部分包括前端程序划分和后端存储过程的划分和功能分配,其中系统功能-模块对照表见表3-1。

表3-1 功能-模块对照表

模块名

功能描述

 

登录模块

通过用户输入用户名和密码实现用户登录,并判断用户权限

 

学生模块

用于学生对个人信息的维护和管理。

 

管理员模块

用于用户信息管理、教职工管理和修改密码

 

教育管理者模块

查看由学生信息和预警结果结合生成的图像

 

学业预警模块

查询学业预测情况

 

画像分析模块

查看由学生信息和预警结果结合生成的图像

 

2.4 人工处理过程

学生相关上课考勤情况和成绩需要进行人工记录传入数据库,教师评价需要教师手动发布在学业预警平台中。

3 系统软硬件环境

3.1 硬件环境

客户机:普通PC 

CPU:P4 2.0GHz以上

内存:256MB以上 

能够运行IE6.0以上版本的计算机

Web服务器:

CPU:P4 2.0GHz以上

内存:1GB以上

硬盘:80GB以上

数据库服务器:

CPU:P4 2.0GHz以上

内存:1GB以上

硬盘:80GB以上

3.2 软件环境

操作系统:UNIX/Linux/Windows XP Professional或以上版本

数据库:MySQL  8.0

开发工具包:JDK Version 1.42

Web服务器:Tomcat

浏览器:IE 6.0以上

4 用户界面设计

菜单栏用JavaScript和动态HTML以及JSP实现菜单功能。程序实现要求可以实现多极菜单,具体应用时只使用三级。菜单的样式是用来实现界面左侧的树状菜单。从栏目表中取出数据,并显示在系统栏目位置。栏目的顺序和操作都是动态配置,并动态生成显示给用户。栏目显示在界面的上边,分单行显示。

5 数据库程序

包名是com.nova.comm.student

5.1 数据连接资源

数据连接源用统一的数据库资源获取和释放程序,主要是实现得到数据库连接和释放连接以及释放结果集的语句。

5.2 数据库操作

统一的数据库操作,实现数据库的insert、update、delete、select操作,可以简化数据的操作。在insert、 update、delete、select方法中,通过传入SQL语句(包括存储过程的调用语句)、参数以及参数值来执行数据库操作。

Select方法返回String( )类型的二维数组数据。其他操作返回操作的行数。

6 安全保密设计

为确保系统的安全性,系统采取应用系统使用验证(操作员验证)、数据库登录验证两种验证方式相结合的方法验证用户。

安全性的要求还体现在以下方面。

建立安全的管理制度。

保证系统安全。

解决系统异常应急处理

第四章 详细设计

1引言

1.1 项目名称:大学生学业预警系统

1.2 项目背景和内容概要

在上述背景下,本文引入了随机森林算法来构建学生学业预警模型,并根据得到的学业预警模型设计实现学生学业预警系统。同时,在预警结果的基础上结合随机森林的重要性特征分析,提升对学生学业预警模型的可解释性,进一步对学生的各项影响因素进行分析,分析影响因素之间存在的依赖关系对学生学业预警结果的影响,深入发掘学生数据中的重要信息,帮助学生更好地进行自我管理,帮助教育管理者更好地了解学生,进行有效的指导,从而提高高校学生的学业完成度。

1.3 相关资料、缩略语、定义

张剑飞,.软件工程基础与实例分析.机械工业出版社2018.11,2版:2023.1(重印).

白学军,原胜,都旭,孙世南,韩洋,刘羽.大学生学业失败的预警因素初探[J].天津师范大学学报(社会科学版),2022(01):70-76.

原胜.大学生学业失败的预警与应对[D].2022.

许露佳.软件工程教育云平台构建部署子系统和题库子系统的设计与实现【D】.南京大学,2019(07).

王进.B/S模式下的三层架构模式[J].软件导刊,2011,10(03):30-31.

石冬凌主编.面向对象软件工程[M].东软电子出版社,2013.03.

余久久.软件工程简明教程[M].清华大学出版社,2015.

2 程序结构

2.1 程序结构图

大学生学业预警系统结构图如图4-1

4909559b4a3a439e9ee8c5f942926d57.png

图4-1大学生学业预警系统结构图

3 程序设计说明

3.1 程序文件名

子系统名:学业预警子系统

编写者:李进珍 编写日期:2023年11月13日

第6次修改 修改人:郑可钦 修改日期:2023年11月28日

程序名称:Risk_Demo.ipynb

程序功能描述:

收集学生信息

对收集到的信息进行数据预处理

网格搜索及模型训练

结果分析与可视化

特征重要性分析

输入/输出项:

输入数据

 学生信息收集环节。

录入的数据包括:学生学号、学生姓名、浏览次数、已上课数量、总浏览时间、形考成绩等

输出数据

学业失败预测结果界面

画像分析情况界面

系主任学业预警界面

3.2 学业预警子系统算法说明

该功能是学生与教育管理者都拥有的功能,当学生或教育管理者点击学业预警时,将学生的数据信息作为模型的输入,就会得到一个预警结果。

管理员登录后,录入学生学生学号、学生姓名、浏览次数、已上课数量、总浏览时间、形考成绩等信息,因为教育管理者分为了系主任和教务处,这两类的区别就在学生学业预警结果的查询。

当系主任点击学生学业预警结果时,页面将显示自己所管理的学生的预警信息,对学生学业预警信息的操作包括:学业预测和添加评价,系主任下的学生学业预警结果界面。当教务处点击学生学业预警结果时,页面将显示全校学生的预警信息,教务处下的学生学业预警结果界面。另外,在学生学业预警中还有查询功能,查询使用的是对学生姓名的模糊查询以及按照专业分类的查询,方便教务处对不同专业的学生进行查看。

当学生点击学业预警结果时,可以查询自己的学业预测情况,学生学业预警界面。点击学业预测,学生可以查看自己的学业预测结果,如果学生没有填写完整的个人信息,系统则会提醒学生补全信息。学业预警结果会存入数据库,学生下一次登录时,就可直接查看结果,同时还可以看到教育管理者留下的评价。

3.3 伪代码表示程序

学生学业预警

进入学生学业预警相关信息录入界面

程序体填写录入数据结束

学生学号=“”

学生姓名=“”

年龄=“”

性别=“”

专业代码=“”

户籍地情况=“”

入学年份=“”

入学成绩=“”

学习出勤情况=“”

形考成绩=“”

提交作业次数=“”

家庭作业成绩=“”

阶段测验成绩=“”

在线浏览次数=“”

程序体提交数据结束

启用数据库连接类

连接“学生信息”数据表

将学生学业预警的相关信息写入数据表中

调用python学业预警文件对信息进行分析

输出学业预警结果和画像分析结果

学生学业预警end

3.4 存取的数据库表和字段

大学生学业预警系统中学生数据表见表4-1,用户信息见表4-2,教育管理员系统表见4-3

7a147c811ced46f7b50d030d7a23897c.png

第五章 编码

1引言

1.1 项目名称:大学生学业预警系统

1.2 目的

系统实现后能够基于高校学生的基本信息和期末成绩来预警学生的学业结果。该系统的主要功能需求包括以下:系统用户信息管理、学生个人信息管理、学生学业预警、教育管理者评价和画像分析。使用本系统的用户分为三类:教育管理者、学生与系统管理员。

1.3 相关资料、缩略语、定义

张剑飞,.软件工程基础与实例分析.机械工业出版社2018.11,2版:2023.1(重印).

白王斌,冯向萍,王业,等.基于数据挖掘的学业预警模型构建[J].新疆大学学报(自然科学版)(中英文),2020,37(02):183-189.

邹宇航.基于机器学习的学习预警系统的设计与实现[D].北京大学,2021.

李昂,韩萌,穆栋梁,等.多类不平衡数据分类方法综述[J].计算机应用研究,2022,39(12):3534-3545.

赵卫东,董亮.Python机器学习案例(第二版).清华大学出版社, 2022.

赵卫东,董亮.机器学习[M].北京:人民邮电出版社,2018.

1.4 术语定义

Def:python程序中的一个方法

RandomForestClassifier:随机森林分类器

StratifiedKFold:k折交叉验证方法

1.5 引用标准

<企业文档格式标准>南昌工程学院

1.6 参考资料

张剑飞,.软件工程基础与实例分析.机械工业出版社2018.11,2版:2023.1(重印).

赵卫东,董亮.Python机器学习案例(第二版).清华大学出版社, 2022.

赵卫东,董亮.机器学习[M].北京:人民邮电出版社,2018.

邹宇航.基于机器学习的学习预警系统的设计与实现[D].北京大学,2021.

陈彦超.基于TabNet的学业预警模型研究与实现[D].西北大学,2022.

李昂,韩萌,穆栋梁,等.多类不平衡数据分类方法综述[J].计算机应用研究,2022,39(12):3534-3545.

Ali A,Shamsuddin S M,Ralescu A L.Classification with class imbalance problem:A review[J].2015.

2 学业预警子系统部分代码

1)划分数据集和训练集

X = df.iloc[:,0:len(df.columns.tolist())-1].values

y = df.iloc[:,len(df.columns.tolist())-1].values

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.30, random_state = 21)

from collections import Counter

from imblearn.over_sampling import SMOTE

sm = SMOTE(random_state=42)

print('Original dataset shape %s' % Counter(y_train))

X_res, y_res = sm.fit_resample(X_train, y_train)

print('Resampled dataset shape %s' % Counter(y_res))

X_train = X_res

y_train = y_res

from sklearn.preprocessing import MinMaxScaler

from sklearn.preprocessing import MaxAbsScaler

scaler = StandardScaler()

X_train = scaler.fit_transform(X_train)

X_test = scaler.transform(X_test)

2)利用网格优化对随机森林模型进行调参

param_grid = {

    'min_samples_split': range(2, 10),

    'n_estimators' : [10,50,100,150],

    'max_depth': [5, 10,15,20],

    'max_features': [5, 10, 20]

}

scorers = {

    'precision_score': make_scorer(precision_score),

    'recall_score': make_scorer(recall_score),

    'accuracy_score': make_scorer(accuracy_score)

}

classifier=RandomForestClassifier(criterion='entropy',oob_score=True,

random_state = 42)

3)构建随机森林模型

def grid_search_wrapper(refit_score='precision_score'):

    skf = StratifiedKFold(n_splits=5)

    grid_search = GridSearchCV(classifier, param_grid, refit=refit_score,cv=skf, return_train_score=True,scoring=scorers, n_jobs=-1)

    grid_search.fit(X_train, y_train)

    y_pred = grid_search.predict(X_test)

    print('Best params for {}'.format(refit_score))

    print(grid_search.best_params_)

    print('\nConfusion matrix of Random Forest optimized for {} on the test data:'.format(refit_score))

    print(pd.DataFrame(confusion_matrix(y_test, y_pred),

columns=['pred_neg', 'pred_pos'], index=['neg', 'pos']))

return grid_search

4)利用模型预测混淆矩阵结果

grid_search_clf = grid_search_wrapper(refit_score='recall_score')

5)重要性分析

classifier = grid_search_clf.best_estimator_

importances = classifier.feature_importances_

std = np.std([tree.feature_importances_ for tree in classifier.estimators_], axis=0)

indices = np.argsort(importances)[::-1]

print("Feature importance ranking:")

for f in range(X.shape[1]):

    print("%d. feature %d (%f)" % (f + 1, indices[f], importances[indices[f]]))

plt.figure()

plt.title("Feature importances")

plt.bar(range(X.shape[1]),importances[indices],color="r",yerr=std[indices],

align="center")

plt.xticks(range(X.shape[1]), indices)

plt.xlim([-1, X.shape[1]])

plt.show()

6)输出影响较大的前五项影响因素

result_importances=list(zip(df.columns[0:len(df.columns.tolist())-1], classifier.feature_importances_))

result_importances.sort(key=lambda x: x[1])

result_importances

 

  • 17
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值