智能教师评估系统的设计与实现论文.docx
《智能教师评估系统的设计与实现论文.docx》由会员分享,可在线阅读,更多相关《智能教师评估系统的设计与实现论文.docx(22页珍藏版)》请在冰豆网上搜索。
智能教师评估系统的设计与实现论文
智能教师评估系统的设计与实现
1绪论
1.1关于教评
所谓教评,就是在教学的过程中,通过学生在学习过程中的反馈信息,对教师的授课情况的一项调查,目的是为了及时的了解教师与学生之间在教与学的过程中所遇到的问题,有针对性的开展教学工作,提高教学质量。
教育理论与教育实践如何统一是当前教育界亟待解决的问题。
教育评价标准系统是教育理论和教育实践的中间环节,教育评价有助于教育理论与教育实践达到统一。
1.2国内外关于教评的研究及系统所实现的目标
1.2.1目前国内外的研究,主要集中在以下几个方面:
(1)教评的主体,学生教评是否科学
关于教评是大多数教学工作者都认可的一种提高教学质量的有效手段,但是由谁来评,怎样来评,说法不一。
有很多人认为学生教评总体而言是最可靠、最公正的,基本上不受各种人际关系的影响。
关键是要排除,有些教师故意迎合学生的心理,以获得较高的教评等级,可以与领导教评,教师之间教评相结合的方法来避免。
(2)教评应该从哪些方面进行评价
教评可以从教学内容、教学态度、教学方法、教学效果等方面来进行评价。
1.2.2系统所实现的目标
目前,网上已经有一些类似的教评系统,通过对这些系统的观察以及对使用过这些系统的老师和同学们的了解,我们发现:
这些系统只是简单的将评价内容以网页的形式展现出来,让同学们选择,然后将结果统一的保存提交到服务器。
这样做有很大的弊端,教评内容难于更新;教评结果的可信度有待提高;同时有多个用户登录时,系统的运行状况不好等诸多问题。
针对上述这些问题,本教师评估系统将得到很好的解决:
(1)通过读取数据库的内容,智能生成教评内容,根据用户不同的需求,可以随着数据库内容的不同随时更新,甚至可以做到不同的学科,有不同的教评内容;
(2)系统智能的判断出其中非法的评价结果(如:
所有选项类同或具有顺序的规律性)对其进行区别处理,提高教评结果的可信度;
(3)对每个参与教评的学生,只记录教评提交的结果,并不与学号相对应,做到保密;
(4)智能列出所登录的学生的任课教师,确保每个学生只允许对自己的任课教师进行教评,而且对每个教师只能评一次,提高教评结果的可信度;
(5)限制同时登录的用户的上限,或让所有用户分批登录,减轻服务器的压力,保证系统运行安全平稳。
(6)教评结束后智能统计出没有参与教评的学生,依据教评结果对被评的教师打分,智能总结出优点和不足。
1.3系统的实现工具及开发环境
系统主要使用C#语言来开发,C#语言的开发工具目前主要是微软的MicrosoftVisualStudio.NET,该工具包含了.NET开发的各种语言。
VisualStudio.NET从一开始就是为XMLWeb服务创建的开发环境。
通过允许应用程序通过Internet沟通和共享数据,允许开发人员从新的和现有的代码汇编应用程序,而与平台、编程语言或对象模型无关。
数据库的访问,使用微软.NET框架中的一种最新的数据访问技术ADO.NET来连接SQL数据库,整个数据库的配置运行均在SqlServer2000中来完成。
2系统需求分析
2.1需求概述
对于本系统来说,主要包括三类用户的需求:
管理员需求,系统可以指定教评的对象,即学生信息;可以指定被教评的对象,即教师信息;指定教评的内容,即学生通过哪些方面对教师进行评价;对教评结果的查看,即查看所有教师的教评结果。
教师需求,在教评结束后,通过登录,查看自己的教评结果。
学生需求,在教评活动开始后,登录系统,对自己的任课教师评价。
2.2系统设想
通过需求概述,可以设想到,系统至少要提供对三种不同身份用户登录的验证。
当管理员登录时,可以对学生信息表、教师信息表以及教评表的修改、更新;可以对教评结果进行查询。
学生登录,对教评表查询,做出某些判断,根据判断更新教评结果表,教师登录,查看教评结果表中对应自己的记录。
2.3系统配置
对于设计完成的系统,必须根据实际情况进行配置,否则就会容易造成资源浪费或系统运行不正常。
(1)软件配置
软件配置主要包括操作系统的选择和数据库的设计,对于我们的系统主要考虑在实际使用过程中用户对系统的稳定性、数据库的容量,用户的维护水平来确定的。
1数据库的选择
因为设计这个系统主要是供河南科技学院教务处使用,考虑到学院拥有教师1000多名,学生15000多人,数据库中需要存储相当多的记录,在教评高峰也会有很多的用户同时登录,为了保证系统的稳定性和良好的可维护性,本系统采用SQLServer数据库。
这样可以使每秒数据库并发数据访问记录数达到5000~50000。
另外,如果是一个规模比较小的学校,数据库可以选择使用Access;如果规模比较大,就要选择Oracle,当然并不是在任何情况下使用Oracle数据库都会最好,有时也会受到经费的限制,一定要根据实际情况做适中的选择。
2操作系统选择
在选择操作系统的时候,也要从用户的数量和系统的吞吐量等方面来考虑,结合我们学院的具体情况,本系统使用WindowsServer2003,这样会具有较好的维护水平。
同样对于较小规模可以使用Windows2000,对于较大规模的还可以使用Unix,这也要根据实际情况决定。
(2)硬件配置
硬件配置主要包括服务器端和客户端硬件的选择。
对于客户端没有太大的要求,一般的能够上网的机器都可以满足要求。
对于服务器端较高的配置会使系统运行的更快,更安全。
(3)网络配置
可以选择的类型有以下几种
单机模式:
服务器端和客户端在一台机器上
百兆模式:
计算机网络速度为百兆
千兆模式:
计算机网络速度为千兆
网络连接如下图所示,对于不同的模式只不过所选用的交换机不同
图2-1系统的网络配置模型图
3总体设计过程
3.1功能模块设计
图3-1系统主要功能模块
各类用户登录模块:
(1)管理员登录,主要是对系统进行后台设置,具体包括对教师和学生的信息进行设置,对教评的项目进行设置,对非法数据特征进行设置,查看所有被评的教师的教评结果。
(2)学生登录,个人信息的修改,对自己的任课教师教评。
(3)教师登录,查看自己的教评结果以及学生的留言。
学生信息管理模块:
添加、删除、修改学生信息。
教师信息管理模块:
添加、删除、修改教师信息。
教评信息管理模块:
添加、删除、修改教评信息。
非法数据设置模块:
对教评结果中有可能出现的非法数据的特征进行设置。
学生教评提交模块:
对教师进行教评,并把结果提交到服务器的数据库中。
教评结果查看模块:
查看所有的教师的教评结果。
3.2系统所需主要数据库设计
在这里给出了一些主要的数据库的建立语句,通过执行,可以很容易的生成系统所需要的数据库。
教评类别表pjItem包括的字段:
教评编号(pjNum)、教评类别(pj)
CREATETABLE[pjItem](
[pjNum][varchar]
(2)COLLATEChinese_PRC_CI_ASNOTNULL,
[pj][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
PRIMARYKEYCLUSTERED([pjNum])ON[PRIMARY])ON[PRIMARY]
GO
教评项目表pjDet包括的字段:
教评编号(pjNum)、教评内容(pjItem)、教评选项(pj1-4)、教评所属类别(pjf)
CREATETABLE[pjDet](
[pjNum][varchar]
(2)COLLATEChinese_PRC_CI_ASNOTNULL,
[pjItem][varchar](100)COLLATEChinese_PRC_CI_ASNOTNULL,
[pj1][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[pj2][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[pj3][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[pj4][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[pjf][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
CONSTRAINT[PK__pjDet__00551192]PRIMARYKEYCLUSTERED
([pjNum] )ON[PRIMARY] )ON[PRIMARY]
GO
智能判断非法数据表pd包括字段:
判断项(pdItem)
CREATETABLE[pd]([pdItem][varchar](50)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
智能统计出没有参与教评的学生名单flag学号(stuNum)、教师编号(teaNum)、标志(flag)
CREATETABLE[flag](
[stuNum][varchar](8)COLLATEChinese_PRC_CI_ASNULL,
[teaNum][varchar](4)COLLATEChinese_PRC_CI_ASNULL,
[flag][varchar]
(2)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]
GO
4详细设计
4.1页面设计流程图
通过上述的需求分析和总体设计,我们已经大致了解了整个教评系统的流程,基本上可以概括为,管理员登录,对系统做具体设置,包括设置哪些人参与教评,通过哪些标准来教评,用这些标准对谁教评;接下来,参与教评的人对被教评的人依据教评标准教评;管理员查看所有的教评结果;被教评人查看自己的教评结果。
这些只是给出了系统的大致流程,而要真正的实现这个系统,解决所列出的问题,还需要很多附加的设置与操作。
下面我们给出了整个系统较为详细的页面流程图,在详细设计过程中,将逐步地给予详细的介绍,对实现智能性方面做重点介绍:
4.2系统功能分析与代码实现
根据系统的主要功能模块和页面流程的设计,我们可以得出系统所具备的功能:
(1)其中最基本的功能是:
①管理员登录,根据实际情况添加教师和学生的信息,添加或修改教评内容,开启教评系统,允许学生登录开始教评;
②学生登录系统,根据教师上课的实际情况和所列出的教评内容,对自己的任课教师进行教评,系统对结果进行保存提交;
③教师登录,当教评过程结束后,可以查看学生对自己的教评结果,从中找出自己的优点和不足。
(2)智能完善的功能:
①根据管理员对教评库的设置,智能生成教评界面,使教评项目更新方便;
②根据学生的学号不同,自动列出对应的教师;点击对教师教评,甚至可以按照管理员的意愿,不同的学科,可以给出不同的评价内容;
③根据管理员的设置,智能生成非法数据特征库,作为评价提交结果是否合法的依据;
④对于非法的评价结果进行智能筛选,区别处理;
⑤智能统计出没有参与教评的学生名单;
⑥根据教评结果,对每个教师得出结论或者依据评分规则进行打分。
4.3各模块具体的设计
类是面向对象语言中很有特色的一种程序设计思想。
在这里,我们正是通过一个名字为DB的类,来完成对SQL数据库的连接,它包含在系统的DB.cs页面中,具体实现代码为:
usingSystem;
usingSystem.Data.SqlClient;
namespacepjtest {///
///DB的摘要说明。
///
publicclassDB
{ publicDB()
{//TODO:
在此处添加构造函数逻辑}
publicstaticSqlConnectioncreateCon()
{SqlConnectioncon=new
SqlConnection("server=.;database=test;uid=sa;pwd=sa");
returncon;//.代表本地主机;test为数据库名;sa为用户名和密码}
}
}
4.3.1各类用户登录模块
此模块设计起来相对简单,是整个系统进入时第一个呈现给用户的页面,系统中命名为Index.aspx,系统使用下拉列表框控件来对三种不同的身份的用户的选择,然后用两个文本框分别接收用户输入的用户名和密码,通过一个登录按钮对输入进行确认并提交到服务器。
图4-2系统登录界面截图
系统根据选择用户的不同,到相应的数据库中进行检索,验证正在登录的用户的身份是否合法,具体的实现,是通过SQL的Select语句,把用户名和密码设置为要查询的条件,在数据库中执行,如果相应的数据库中有这一条记录,则认为此用户存在,被认为是合法的用户;对于合法的用户,根据用户类型的不同,跳转到不同的页面;对于非法的用户给出错误提示,要求重新输入,直到输入正确的信息才可以登录。
该模块设计的关键保证合法用户正常登录,非法用户即使通过正确的地址也不能跳转,这主要是通过Session变量来判断,以保证系统的安全性。
4.3.2学生信息管理模块
此模块的设计主要是对学生数据库的修改,该模块在系统中是通过mainStu.aspx页面来实现,页面中使用DataGrid控件和数据库中的学生信息表进行绑定,对其中记录的修改都将影响到学生数据库。
包括对学生信息的添加、删除、修改等操作。
添加学生的主要代码:
privatevoidbtnADD_Click(objectsender,System.EventArgse)
{//此代码为学生信息管理页面的添加学生的单击事件
try
{//使用try语句,主要对于异常的处理
SqlConnectioncon=DB.createCon();//建立数据库连接
stringteaPwd=((TextBox)(e.Item.Cells[2].Controls[0])).Text;
stringteaItem=((TextBox)(e.Item.Cells[3].Controls[0])).Text;
stringteaClass=((TextBox)(e.Item.Cells[4].Controls[0])).Text;
SqlConnectioncon=DB.createCon();
SqlCommandcmd=newSqlCommand("updateteasetteaName='"+teaName+"',teaPwd='"+teaPwd+"',teaItem='"+teaItem+"',teaClass='"+teaClass+
"'whereteaNum='"+teaNum+"'",con);//数据库更新语句
con.Open();
cmd.ExecuteNonQuery();
this.BindToDataGrid();
con.Close(); } //语句结束
4.3.4教评信息管理模块
此模块为整个系统比较核心的模块,该模块只能由系统管理员来操作,通过该模块系统管理员可以很方便的设置教评选项,生成教评页面;对于已经生成的评选项目,还可以即时的修改,形成新的教评页面。
下面将重点介绍该模块的实现过程:
图4-5教评信息管理模块截图
对于数据库中插入语句的删除
privatevoiddgpjItem_DeleteCommand
(objectsource,System.Web.UI.WebControls.DataGridCommandEventArgse)
{stringpjNum=this.dgpjItem.DataKeys[e.Item.ItemIndex].ToString();
进入该页面后,系统首先通过两个datagrid分别与评选类别表(pjDet)、评选项目表(pjItem)的绑定列出来;在datagrid中通过模板可以直接实现修改和删除的功能,由于表中的记录有可能过多,这里要考虑实现分页;在datagrid中实现添加的功能比较复杂,这里我们采用一种比较简单的方法,在页面上添加文本框,通过文本框的输入来添加到数据库中,这里还是使用SQL语句来实现的,当点击“确定”按钮后,更改将直接影响到数据库中的记录,在更改以后,教评界面将根据数据库的记录的不同重新生成,这样的设计可以使系统维护更加简单,大部分的工作都可以让系统智能处理,即使一点都不懂计算机语言的用户,也可以很容易生成新的教评页面。
4.3.5非法数据设置模块
此模块为整个系统实现智能性的核心,它的设计原理类似于杀毒软件中的病毒库;当计算机中存在某些文件,它的运行的特征,在杀毒软件的病毒库中被认为是病毒,则就会把该文件视为病毒来处理;而在我们的系统中也是这样的,下面我们将详细介绍一下该模块的实现过程:
图4-7非法数据设置模块截图
在管理员登录该模块后,展现给用户的是一组由复选框组成的设置界面,在系统中为用户提供了一些常用的设置非法的选项,比如全部选择第一项、第二项、第三项、第四项以及选择的项目包含某种顺序规律都可以在这里指定。
这里,我们假设管理员想要设置全部选择B、全部选择C以及全部选择D是不可信的教评数据,则管理员登录后,可以选中第二项、第三项、以及第四项,然后点击页面上的“提交”按钮,接下来系统先与判断表相连接,再开始从第一个复选框开始判断是否被选中,执行相应的操作;当判断第二项被选中后,系统将生成一个全为“B”的字符串,长度为教评项目表中项目的个数,然后再将该字符串插入到判断表中,接下来再判断下一个复选框是否被选中,如果被选中则会执行与前面相类似的操作;直到把所有的复选框判断完。
这样即可按照管理员的意愿完成对非法数据模型的设置。
当管理员选中某种顺序规律时,系统会组成一些常见的有顺序的选项排列,如ABCDA…D,ABCA…C,BCDB…D等。
除此之外,为了使系统使用起来更加灵活,更大程度上的提高系统的智能性,系统还增加了用户自定义的功能,即用户可以自己设置一些除系统所列之外但也被认为是非法或不可信的模型,当选中了页面上的自定义复选框后,页面上会显示出一个文本框,在文本框里面用户可以填写非法模型。
为了方便用户使用,这里并不需要用户把整个非法排列都写出来,而是只给出局部的排列,当点击“添加”按钮后系统自动的把它循环生成相应的字符串,然后在列表框中列出来,同时把文本框清空,可以继续添加第二个自定义;同理,可以把所有你认为非法的模型都添加进来,最后整体的提交到数据库中。
举例:
如果你自定义添加了“AB”,则会生成“ABABA…B”的字符串,并插入到数据库中。
这里字符串的长度用户不需要考虑,完全由系统根据评选项目的个数自动生成。
4.3.6用户教评提交模块
此模块为学生登录后,再选择自己的任课教师,然后展现给学生的页面,在系统中命名为mainPj.aspx,该模块为整个系统的核心模块,也是被浏览次数最多的页面,其它的所有模块的设计都是为该模块服务的,都要靠该模块来实现,所以这个模块设计的好坏,将直接影响到整个教评系统运行的好坏。
以下代码为对教评界面的优化:
Privatevoidclear() //去掉datagrid中前面相同的列
{stringpjNum=this.dgMainPj.Items[0].Cells[0].Text;
stringpj=this.dgMainPj.Items[0].Cells[1].Text;
for(inti=1;i{
if(pjNum==this.dgMainPj.Items[i].Cells[0].Text)
{
this.dgMainPj.Items[i].Cells[0].Text="";
this.dgMainPj.Items[i].Cells[1].Text="";
}
else{
pjNum=this.dgMainPj.Items[i].Cells[0].Text;
pj=this.dgMainPj.Items[i].Cells[1].Text;
}
}
}
在用户进入该模块后,首选系统将检索数据库中的教评类别表和教评项目表,并按照类别将教评项目以表格的形式列出来;对于教评项目中的选项,将在选项的前面添加单选按钮,用来供用户选择。
系统对教评类别和教评项目没有任何的限制,完全可以由管理员按照实际情况或自己的意愿来设置,只要是按照正常的方式添加的,都可以很好的生成美观的教评页面。
(在这里,我们需要说明一点,如果还想增加系统的智能性,使系统更为合理。
我们还可以在点击开始教评后,记录下来被教评的教师编号和课程编号,根据教师所属系的不同和所教课程的不同,连接不同的教评类别表和教评项目表,以便做到对不同学科的教师进行不同标准的教评,这样可以使得教评更为合理,教评结果更为真实可靠。
)
以下代码为实现学生教评结果的判断并向数据库提交:
privatevoidbtnTj_Click(objectsender,System.EventArgse)
{
inta=0;
stringb="";
boolflag=true;
for(inti=0;i{ for(intj=1;j<=4;j++)
{if(((RadioButton)(this.dgMainPj.Items[i].Cells[2+j].Controls[1])).Checked)
{a=j; break; }
}
if(a==0)flag=false;
b=b+a.ToString();
a=0;
}
if(!
flag)
{
Response.Write("其中包含没有选择的项目!
请检查,确保每一项都选择");
}
//产生教评结果,存在于字符串b中;
stringteaNum=Request.QueryString["teaNum"].ToString();
//接受传递过来的教师编号
stringstr;
SqlConnectioncon=DB.createCon();
SqlCommandcmd=newSqlCommand("selectcount(*)frompdwherepdItem='"+b+"'",con);
con.Open(); //打开数据库连接
intco