APP下载

基于新工科背景下的编程课程考核网站的设计与实现

2019-03-18黄建昌孙娜刘振超

课程教育研究 2019年1期
关键词:操作系统课程改革数据库

黄建昌 孙娜 刘振超

【摘要】针对当前传统计算机专业的教学现状,提出了新工科背景下传统计算机编程课程面临的一些问题。同时,在大数据、人工智能等不断出现的大环境下,为了提高编程课程考核的合理性、公平性,本文基于vue.js和Django框架,构建了一个在线评测系统。

【关键词】 课程改革 在线评测 操作系统 数据库

【课题】课题名称1:河北农业大学第十批教研项目:基于《C语言程序设计》课程的在线考试系统设计(课题编号:2018YB04);课题名称2:河北农业大学2018年大学生创新创业训练计划项目:针对编程课程的在线考试系统设计(项目编号:2018026)。

【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2019)01-0253-01

引言

随着新工科概念的提出,越来越多的行业与计算机专业密不可分。针对新工科人才能力培养需求,大学生计算机编程能力是新工科人才能力组成的重要部分。其中,《C语言程序设计》作为大多数高效的计算机专业基础课则显得尤为重要。在传统教学中,编程课程考核多以纸质试卷进行,不能非常科学合理的评判出一个学生的编程能力高低。 针对这些问题,本文设计了一个在线评测系统(Online Judge,简称“OJ”)。OJ系统能够编译和执行代码,并使用预设数据测试这些程序,从而分析出用户提交代码的正确性。只要有一台计算机或一部手机,用户随时随地都可以登陆账号去进行编程练习并由系统进行评测,简化了程序的评测过程,提高了学生的学习效率,减轻了教师的教学负担。

1.系统概述

OJ是一个在线测评系统。用户注册时可以选择身份(学生、老师或管理员),使用手机号(或邮箱)、学号及身份证号完成注册。用户登录后,可以在线进行编程练习,系统会对用户提交的代码进行编译,生成可执行文件并执行。代码通常在受限制的环境中运行,包括时间限制,内存限制等。代码的输出会被OJ系统捕获,然后通过与预先设计的测试数据比较,对程序源代码的正确性进行验证。这样就达到了在线测评的目的,实现了教育的信息化。该系统整体可以分为web部分和judge部分,web部分又分为前端和后台,前端网页以JS作为开发语言,使用的是流行的JS框架vue.js,轻量化后端以python作为实现语言,使用的框架是Django。

2.系统设计

2.1操作系统的选择

从原理上来看,操作系统选择Windows或Linux均可。但两者相较之下,Linux系统更加安全稳定,服务器不容易崩溃,而且Linux非常适合阻止或防止可疑恶意软件进入并影响整个系统的性能。此外,往长远打算,如果将来把该OJ系统用于正规的比赛,使用Windows系统需要商业授权,使用Linux系统更加经济。综合以上因素,本文选择了Linux操作系统。

2.2docker部署

docker是一个开源的应用程序容器引擎,允许开发人员将其应用程序和依赖项打包到便携式容器中。系统的web部分和judge部分,都是以一个docker容器运行。在web部分,系统会将网站封装成 docker镜像,然后将其下载到服务器,使其可以独立运行。此外,系统利用Postgresql和Redis构建了后台数据库,这两个数据库也分别以一个docker容器运行,也就是说,整个系统一共有4个docker容器在运行。这四部分独立运行,互不影响。

3.运行方式

系统将用户提交的源代码进行编译,生成“.exe”文件并执行。其输出结果会被OJ系统捕获并保存,然后将输出结果与正确结果比较。如果编译正确,输出和正确答案一致,且程序运行没有超出限定的时间和限定的内存,则认为用户提交的源代码正确,即Accepted(AC)。否则报出相应错误:如答案错误、运行超时、内存超限等,并向用户反馈程序的使用内存、运行时间和其他信息。具体的运行方式如图2所示。

4.系统需求

系统用户角色有三种:学生、教师和管理员。

(1)学生用户注册时选择学生身份,使用手机号(或邮箱)、学号和身份证号进行注册,每个学号只能注册一个账号。注册后可以登录,登录系统后可以进行练习,在线提交代码,提交后经过系统测评会给出结果。学生进入测评状态页面,即可查看做题情况。

(2)在教师用户注册并登录后,他可以对问题库进行更改,创建新问题或修改和删除问题,并检查每个问题的正确率。

(3)管理员可以对后台数据库进行管理。

5.结语

在新工科的背景下,学习各种计算机编程语言已经受到了更多人的重视。为了加强学生之间的学习交流,简化程序的评估过程,OJ系统顺应时代潮流而生。这对开展计算机相关教育,增强学生的计算机专业素养起着至关重要的作用,大大提高学生应用程序设计解决实际问题的能力。

参考文献:

[1]李伟光,陈希.GOJ系统的研究与实现. 科技创新导报, 2015(28): 第46-47+50页.

[2]梁嵩,王建新.在线程序语言评测系统的设计与实现. 计算技术与自动化,2010(02): 第128-132页.

[3]杨婧.基于容器技术的广播电视PaaS平台建设. 广播与电视技术, 2017(07):第46-48页.

[4]蔡云龙, 基于Docker的私有云系统的设计.电子产品世界, 2016(04): 第46-49+56页.

[5]梁嵩.基于Web的程序評测系统的设计与实现,中南大学,2010.

[6]熊茜.基于在线判题系统的C语言实验教学改革. 重庆科技学院学报(社会科学版), 2015(10)

[7]何嘉,杜斌.探讨JAVA对SQL数据库访问的一种新尝试. 成都信息工程学院学报, 2002(01)

猜你喜欢

操作系统课程改革数据库
“双创”形势下高职财务管理课程改革探索