1. 引言
1.1. 选题背景
在当今的高科技时代,应用计算机技术来管理高校选课信息,进行选课操作,是必然的趋势。在线的学生选课系统是学校在本科生培养中必需侧重关注的一部分,来避免出现选课中的学生,在随机选课或者为了凑学分而选课时,不认真学习,甚至出现逃课等问题,导致期末成绩不理想的情况 [1] 。选课系统的各项功能必需符合学校的要求,既要能节约时间,又能实现学生与管理员通过留言版功能即时的交流与反馈。学生选课系统包含有关学生选课信息的管理、处理和存储的信息浩如烟海,例如管理员要根据学生选课情况来发布热门选课排行榜的通知并且统计数据,以及由此形成饼图和直方图,让学生能够更加直观地看到热门选课的情况。由于数据量大,易丢失,难以找到,同时,以前的选修系统依靠手工操作,老师的工作量大,出错率高,错误后更正复杂,选课工作耗费的时间过长 [2] 。学生人数一直增长,过去的学生选课方式无法满足管理的需要并且传统的学生选课系统复杂的操作方式难以让学生适应,并且学生无法提前了解课程信息,很难有效选课,难以实现快速选择最喜爱的课程,为此引入基于意愿点的选课系统来改善选课环节是非常必要的。
对于高校而言,大量的教师职工信息、学生信息和课程信息难以进行有效管理 [2] 。对于教师而言,他们有必要了解自己当前学期开设的课程信息是否有误,联系方式是否正确,以及选择该课程的学生的基本信息比如学生投放的意愿点数、专业等;对于学生而言,他们应该提前了解课程的相关信息,并根据个人的兴趣、意愿和需要进行选课。要通过建立利用意愿点选课的意识来实现学生选择心爱的课程,做好信息管理工作,避免学生随便选择待选课程,提高课堂的活力,减少学生逃课情况,稳固上课秩序。管理员能够快速查询选课信息,增加或更改课程的信息,如当课程上课地点发布错误时,及时更改错误信息,并在留言版中说明。
1.2. 选题意义
目前,高校选课制度的特点如下:
1) 数据量巨大:现有的选课管理模式管理学生,部分高校有成千上万的学生对专业选修课和通识教育选修课进行不同的选择,相关数据浩如烟海 [3] 。
2) 随机选择:高校的每个专业都配备了一定数量的选修课或跨学科的选修课程,只有每个学生选择与自己未来发展相关的课程,比如想做导游的同学可以选择导游管理选修课,持之以恒地学习感兴趣的知识从而扩大知识面才能最终达到提高学生的综合素质,智商与情商共同培养,专业素养于人文情怀两手抓,培养复合型人才的目标。
3) 时间有限:从开始进行选课工作到发布选课结果的间隔最多一周,往往只有三到五天 [4] 。
因此,学校利用线上教学管理来落实学生选课是行之有效的最优解 [5] 。高校使用因特网进行教学管理工作,可以及时、高效地处理浩如烟海的学生数据 [6] 。基于意愿点的选课系统能有效实现学生快速判断选课信息并按照兴趣选择最符合自己需要的课程,同时,学生能够看到热门选课排行榜,放弃选择热门课程从而能够成功选课。最终,管理员能够根据意愿点排名给出每门课程的选课情况,例如某门课限选50人,已选60人,管理员删除意愿点排名第51到60名的学生选课信息,发布最终的选课名单。
为满足高校的需要,对本学生选课系统有以下三个要求:
1) 操作简单:显示界面简单明了,风格统一,最好能与高校目前的风格一致。操作简单易上手,管理员在可以发布选课信息之后,通过留言版通知学生选课,如果有错误的信息,学生也可以和管理员通过留言版互相反馈交流。系统操作人性化,尽可能在操作违规和出现权限外操作时立即给予温馨提醒并中止当前操作退回到前一个操作。系统要适合普通计算机水平的学生和老师使用,不要有太过复杂的功能,简单易懂为好 [7] 。
2) 温馨提示:管理员规定不同年级的学生错峰选课,且应提示目前的热门课程,以减少学生盲目选择热门课程导致选课失败的可能性。
3) 安全可靠:基于意愿点的学生选课系统应能够进行数据安全备份,快速地恢复丢失或损坏的数据,以防丢失学生的选课信息或弄错选课信息如上课教师名称等,引起不必要的混乱和教学事故,同时确保选课信息发布和存储的安全,例如可以给存放各种数据的数据库加设密码。
1.3. 选题的国内外研究现状
美国的信息技术起步相比中国更早,计算机普及程度也更高。于1970年末,美国国家科学基金会陆续在美国各州建立了6个超级计算机中心,由此为互联网技术的发展和普及创造了先决条件。国外的信息化教学方面比之于国内具有较少的冗余性和可扩展性等特点更为详尽,发展速度更快而且也比较早。约在1970年末,美国通过因特网控制课程的信息和进度。成熟的在线教学模式使得学生可以高效的在有网络的情况下进行网上选课或在线学习等。
近年来,中国教育水平不断提高,各高校的学生人数不断扩大,学科质量稳步上升,人才培养计划也逐步完善。充分使用教育教学资源,加强本科生的教育培养工作,是每个高校都非常重视的教学环节,高校也不例外。高校在教学管理方面,已经开始利用英特网管理教师信息、学生学习成绩等信息。利用网络不仅可以实现信息的同步,还保障了信息的准确和安全。
中国教育事业的发展,有必要向国外一些有经验的高校进行学习,采纳国外在网络教学中的有利资源。如果将这些资源合理的运用到中国高校中去,是目前需要解决的问题,也是中国教育产业的一个推动力 [8] 。
1.4. 研究内容
本文对现有的国内外成熟的学生选课制度的突出优势进行了分析和研究。完成以上工作后,本文进行对高校现有的选课系统调查等活动后应用系统设计技术sql数据库来设计基于意愿点评价的学生的选修课程系统,设计基于意愿点的选课系统架构,系统功能,和数据库以期达到学生、老师和管理员的要求,提高上课的效率和质量,实现不同学科的人才培养计划,实现人才的综合素质培养。最后本文实现基于意愿点的学生选课系统,并进行测试,查看本系统的各个功能是否已经实现,是否仍然存在bug。
1.5. 系统目标
通过基于意愿点的学生选课系统,可以一定程度上防止出现学生选课的盲目性。不同年级的学生在不同的选课时间段错峰选课,从而避免选课拥堵,并且发布选择热门课程榜,让学生避免争夺热门课程最终导致无可课上的情况,提高上课效率和满意度 [9] 。
1) 学号前两位不同的学生在不一样的时间段进行选课,给学号前两位不同的学生设定选课倒计时,倒计时结束不能选课从而分散选课人数,来让学生错峰选课。
2) 选课前发布待选课程的详细信息,比如当学生想要查看中国近代史这门选课的介绍时,输入课程名称,就会出现中国近代史由黄国伟老师教授等信息使得学生在正式选课时可以顺利选择真正与自己未来发展相关的课程。统力求实效管理员与学生可以通过留言板及时发布信息和反馈信息,学生能够在选课倒计时结束前基于意愿点进行选课操作,且能够看到热门选课排行榜及热门选课的统计数据。
3) 给予学生在选课过程中最大程度的自主权,以防出现想选某门课的学生没选上,而某些学生为了凑学分却选课成功的情况,尽可能地让学生能够学到自己渴望的知识,比如想考导游证的学生可以选择导游基础的课程,从而增强学生的上课热情提高上课的出勤率 [10] 。
2. 系统设计
2.1. 功能模块设计
具体模块结构如图1:

Figure 1. System module structure diagram
图1. 系统模块结构图
1) 为解决选课前学生对可选课程知之甚少的问题,基于意愿点评价的学生选课管理系统设计了查询待选课程详细信息的模块,比如想要选择信息系统开发工具的学生可以了解到“信息系统开发工具由柳巧玲老师教授,C#是非常实用的编程语言,推荐感兴趣的同学!”这一介绍;后期学生选课时可以了解课程基本信息 [11] 。
2) 为解决选课时学生蜂拥而上导致系统崩溃的问题,基于意愿点评价的学生选课管理系统增加了划分选课时间段的功能:通过学生信息获取学生所处年级,对学号前两位不同的学生划分不同选课时间段,对不同年级的学生发布不同的选课时间通知,错峰选课,发布选课公告,通知符合时间段的年级的学生进行选课。
3) 设置课程意愿点:系统管理员共设置99个意愿点。学生合理分配到通识教育选修课和专业选修课上防止出现大家平均分配意愿点导致排序结果相同的情况,让学生之间形成博弈。
4) 筛选:系统管理员根据学生投放的意愿点数进行排序,意愿点数投放多的学生优先选课,当选课人数超过课程容纳的最大人数,例如课程容纳50人,有60个学生投放意愿点,删除意愿点排名第51到60名学生,生成最终的选课名单。
2.2. 数据库设计
2.2.1. 概念结构设计
ER图如图2:主要有管理员、学生、教师等实体组成 [12] 。
2.2.2. 逻辑结构设计
将E-R图转换为与数据模型相符的关系数据模型就是逻辑结构设计的过程。要回答如何将实体和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码 [13] 。
1) 关系模型主要有:
学生(学号,姓名,性别,专业,出生年月)如表1
管理员(用户名,密码,类别)如表2
意愿点(课程编号,课程名称,课程性质,意愿点数,学生姓名,学号)如表3
教师(工号,教师姓名,所在院系,联系方式)如表4
课程(课程编号,课程名称,课程性质,学分,总学时,上课学时)如表5
2) 表结构

Table 1. Student information table structure
表1. 学生信息表结构

Table 2. Administrator table structure
表2. 管理员表结构
2.3. 代码设计
系统设计者必须对系统涉及的数据进行有效的分类、排序、统计和检索,就需要对被识别的对象的特点进行代码设计。
本选课系统的代码设计主要有3个,分别为:学号代码、课程号代码、教师工号代码。具体如表6~表8:

Table 7. Code design of curriculum ID
表7. 课程号代码设计

Table 8. Code design of teacher ID
表8. 教师工号代码设计
3. 基于意愿点选课系统的实现
3.1. 系统功能实现
3.1.1. 系统登录
如图3在系统首页可以看到,引入了timer1控件实现了“欢迎登陆学生选课管理系统”字符串的滚动,以及加入了友情链接,学生可以自由登陆其他网站,例如“学生个人信息系统”、“教务在线”、“高校官网”、“奥兰系统学生版”、“高校微博”、“网络服务”、“中国知网”、“审计资源”、“校友会”、“教育资源”等网站。
如图4管理员登录可以看到选课系统的课程信息,比如201520161学期,编号为4的信息安全课程,是专业选修课,总学时为48课时,授课学时为32学时,3学分,在A204上课,上课时间是1~18周周四5~7节等信息,这些信息对应着SQL server数据库中的表 [14] 。
如图5教师在登录界面首页可以看到自己开设的课程信息,选择查询学期,可以看到自己在201502161学期开设的JAVA程序设计,课程编号为1,是专业选修课、共计32学时等信息。
如图6学生在登录首页可以看到自己的个人信息,学号为12040001的学生。姓名是金包子,性别男,于1990年3月26日出生,信息管理专业,而且可以看到距离选课结束的选课倒计时信息,一般为十分钟,倒计时结束,选课结束,停止选课。
3.1.2. 管理员操作模块
如图7管理员点击添加课程按钮,在201502161和201502162学期中选择一个,课程编号不能和已有的重复,需大于60,课程性质在专业选修课和通识教育选修课中选择一个,上课地点在A201至D305中选择,再填写其他相关信息可以进行课程添加。

Figure 7. Administrator adding curriculum
图7. 管理员添加课程
管理员点击教师信息按钮,可以对教师信息进行管理,如图8可以看到老师工号,姓名,联系方式,所在院系。
点击学生信息按钮,可以对学生信息进行管理,如图9可以看到学生学号,姓名,性别,出生年月,专业。

Figure 10. UI of administrator’s curriculum will-point’s information
图10. 管理员课程意愿点信息界面
如图10点击课程意愿点信息按钮,可以进入课程意愿点信息界面,选择当前学期,输入课程名称,点击查询课程意愿点按钮,可以查询学生选择课程所投放的意愿点信息,按从高到低排列,如果选择该课程的人数超过课程所容纳的人数如50人,选择意愿点投放数量排在第51位后的学生点击删除信息按钮,删除这些学生的选课信息。
如图11点击热门课程排行榜按钮,即可看到目前的热门课程,提醒学生慎重投放意愿点,不要一味的追求热门课程,导致学分不足。

Figure 11. UI of administrator’s popular courses’ leaderboard
图11. 管理员热门课程排行榜界面
如图12通过点击统计按钮,可以看到各门课程的报名人数和选课人数占比。点击饼图按钮,可以看到由此形成的饼图。点直方图按钮可以看到由此形成的直方图。具体信息见表9。

Table 9. Popular courses’ information
表9. 热门课程信息
由此可见,插花艺术、美术鉴赏、数据采集与审计是最热门的三门课程,学生在选课时应慎重考虑选择这三门课程。
如图13管理员可以发布留言信息,输入留言人,点击添加留言按钮进行留言。
3.1.3. 教师操作模块
如图14教师点击个人信息按钮,可以看到个人信息,包括工号、教师姓名、联系方式、所在院系的信息。
如图15教师点击学生信息按钮,选择查询学期,可以看到在自己所选学期,选择自己开设课程的学生名单,包括学生学号、姓名、性别、出生年月、专业、所选课程名称的信息。

Figure 14. UI of teacher’s personal information
图14. 教师个人信息界面
3.1.4. 学生操作模块
如图16学生点击课程信息按钮,即可看到当前学期开设的课程编号、课程名称、性质、总学时、学分信息,输入课程名称点击提交,即可看到课程的详细信息。
如图17学生点击已选课程信息按钮,点击查询信息,即可看到自己已选的课程,分别给选中的通识教育课程和专业选修课程赋予意愿点,当两面课的总意愿点超过99就会提示意愿点数不能超过99。
如图18当学生赋予通识教育课程和专业选修课程的总意愿点数小于99,点击提交即可提交成功。
4. 总结
目前,越来越多的高校选择在线选课方式进行选课管理。采用基于意愿点的选课系统不仅利于学校管理,还利于学校培养高素质人才,完成教学目标。
实现基于意愿点的选课系统,需要做到以下3点:
1) 结合高校现有的选课系统和选课流程,扩充本系统的数据库,比如录入各年级学生的学号、姓名、专业等信息。选课界面与高校现有的选课系统保持一致。
2) 系统的设计和数据库的设计要充分考虑实际情况,比如学生模块要符合学生的选课需求,加入关于选课的详细信息描述,热门选课排行榜等内容,如有疑问可以通过留言版进行反馈和交流。
3) 学生对投放意愿点的规则和流程有充分的认识,能够顺利进行选课活动。
基于意愿点的选课系统已经基本上实现,但是仍然存在不完美之处。例如还可以加入背景音乐来提高用户友好性。
因此,本系统还可以进行以下2方面优化。
1) 功能扩展:老师也可以进行学生选课的管理,比如若老师非常欣赏一个学生,那么哪怕他的

Figure 17. Student’s choosing curriculum information UI
图17. 学生已选课程信息界面

Figure 18. Student’s submitting “will point” UI
图18. 学生提交意愿点界面
意愿点数排名较为落后,老师可以利用自己的权限,赋予该学生意愿点更多的权重,使得该学生的意愿点排名靠前,可以顺利选上心仪的课程。
2) 系统的升级和对接:基于意愿点的选课系统可以和高校已有的排课系统、学生个人信息系统对接,并且系统可以向着手机APP转型,在手机上也可以方便的进行操作 [15] 。