APP下载

基于MVC的程序设计课程慕课平台的设计与实现

2017-05-09张标汉

武夷学院学报 2017年3期
关键词:视图程序设计控制器

张标汉

(三明学院信息工程学院,福建三明365004)

基于MVC的程序设计课程慕课平台的设计与实现

张标汉

(三明学院信息工程学院,福建三明365004)

针对课程教学与改革的需要,开发了一套类慕课在线学习与测试系统。该系统采用.NETMVC模式进行开发,设计了模型类、控制器类和相应的视图页面来实现该系统。系统提供了课程的维护、学习的监督、作业的布置、测试的判定等基本的功能,为课程教学与改革提供了基础平台和技术支持。

程序设计;慕课;HUSTOJ;MVC

程序设计课程是计算机相关专业的基础课,为了提高该课程的教学质量,诸多高校针对该课程进行了不同方向的教学改革实践与探索,提出了案例教学法、理论与实践一体化等改革措施,这些改革都一定程度上提高了程序设计课程的教学质量[1-3]。此外,程序在线测试平台(online judge,OJ)在课程改革中也被寄予厚望,很多高校都在探索利用OJ平台激发学生的学习兴趣、提高学生的编程能力和综合实践能力[4-5],这些学校正是在OJ系统的辅助下提高了本校程序设计课程的教学效果。

正是看到了OJ系统对程序设计课程教学的较大作用,国内不少知名大学都开发了自己的OJ系统为本校的程序设计课程教学和竞赛服务[6],但这些OJ系统对其他学校来说不是免费的。限于技术力量不够许多学校没能自己开发OJ系统,因此,这些学校转向寻找开源的系统,HUSTOJ是目前国内许多高校正在使用的开源OJ系统。但该OJ系统仅支持程序的在线测评,尚不支持课程的在线学习,在有些方面难以满足不同学校的个性化需求。本文针对程序设计在线学习平台建设的需要,在HUSTOJ的判题核心的基础上对在线学习平台进行了设计,并利用.NETMVC编程实现了一个类慕课系统。

1 系统概述

1.1 慕课平台的基本功能

慕课(massive open online course,MOOC),即“大规模开放的在线课程”,是一种在线课程模式[7]。慕课具有在线视频学习、在线作业、在线辅导答疑、在线测评和考试等基本功能。设计和开发本慕课平台系统的最初目的实际上是为了在程序设计课程教学过程中实践翻转课堂教学模式,作为课堂教学的辅助平台供本校学生使用。学生在平台的学习与程序设计课程的课堂教学同步进行,教学过程中学生先按照教师布置的任务进行教学视频的学习,并完成一定的课前练习;然后在课堂上教师主要进行答疑解惑,讲解习题;学生课后再完成平台上的课后练习和测试。

本慕课平台主要有课程视频管理、课程拓展资料管理、课程题库管理、作业与测试管理、成绩管理和辅导答疑(论坛)等主要功能。其中课程视频管理主要是课程视频的创建、上传、更新和删除;课程拓展资料管理主要是课程相关的参考资料、授课PPT等文件的上传、更新等操作。课程题库管理主要是维护课程相关的题目,系统中的题目主要有两类,一类是客观题,一类是编程题,客观题的判断依据预设的标准答案,而编程题的判断则依托HUSTOJ判题核心。

1.2 系统判题核心简介

本系统采用的编程题的判题核心是HUSTOJ,该系统是由华中科技大学毕业生开发的一个遵循GPL协议开源的程序在线测评系统,后来张浩斌对该系统进行了大量改进,使得系统功能更加完善[8]。目前已知国内有50多家高校、科研机构采用HUSTOJ搭建了自己的OJ系统。HUSTOJ基于Linux平台,采用MySQL和PHP开发,系统包括判题核心Judged和Web界面两个部分。由于原系统的Web界面部分不适用于本慕课系统,因此本慕课系统主要使用了HUSTOJ系统的判题核心Judged,将该判题核心Judged部署在Ubuntu Linux平台上。对于Web界面部分,本系统采用.NETMVC(Model-View-Controller)进行开发,使用的是C#语言。系统的基本架构如下图1所示:

图1 系统基本架构Figure 1 The system basic structure

1.3.NET MVC简介

本系统采用.NETMVC技术进行慕课系统的开发。MVC是一种软件开发架构模式,它把软件系统分为三个基本部分:Model(模型)、View(视图)和Controller(控制器),这三个部分相对独立,职责单一。Model负责与应用程序业务逻辑相关的数据处理,包括数据的验证、对数据库数据的存取。View负责与用户的交互,通常是Web页面,用户通过视图向系统输入数据,发出数据请求,系统通过视图向用户显示请求的数据。Controller主要负责逻辑处理,处理用户的请求并负责与Model进行数据的交互,并控制应用程序的流程。总之,在MVC模式中,用户通过视图向服务器提交请求,控制器处理用户的请求并负责与模型进行数据的存取,并将处理的结果返回给视图,由视图向用户展示结果,.NETMVC的运行机制如下图2所示:

图2 MVC运行机制Figure 2 Operatingmechanism ofMVC

2 系统设计

2.1 系统功能模块

系统主要包含课程管理、学习管理、作业与测试管理等模块。课程管理包括课程的创建、课程资料的维护,由授课教师申请创建一门课程,在申请通过审核后,授课教师上传该课程相关的资料,比如PPT课件、授课视频、拓展资料等,课程资料由授课教师自行维护。学习管理包括学员的学习行为的记录(包括学习进度、作业完成情况、参与讨论情况等)、监督学员的学习并在必要时提醒学员继续课程的学习(包括提醒学员及时完成课程作业、准时参加课程测试等)。作业与测试管理包括作业的布置、批改,测试的创建和维护,其中测试维护包括课程题库的维护。各功能模块如下图3所示:

图3 系统功能模块Figure 3 System functionmodule

2.2 数据库设计

系统由于采用.NETMVC进行开发,因此在数据库方面选择了Microsoft SQL Server 2008来存储系统的数据。根据系统功能模块的设计,数据库中主要有如下一些数据表:

表1 课程表Table 1 Course

课程表主要存储了慕课系统中的课程信息。

表2 学员选修课程表Table 2 User course

学员选修课程表存储了学员所选修的课程的信息。

表3 课程资料表Table 3 Course document

课程资料表存储了课程的所有资料的信息,包括课程视频、课程PPT、参考文献等。

表4 课程视频学习进度表Table 4 Course video process

课程视频学习进度表存储了某一位学员学习课程时观看某个视频的进度。

3 系统实现

在.NETMVC程序设计中通过定义模型(Model)类来实现对数据库数据的存取,定义控制器(Controller)类来实现程序流程的控制,定义视图(View)来与用户进行交互,接受用户的数据请求并转交给控制器类来处理。

3.1 模型(Model)类

系统定义了若干的模型类来实现对数据库中表的操作,通常对于数据库中的每一个表都会定义一个模型类与之映射,通过这种一一映射实现数据的存取操作。系统定义的模型类主要有4类。

(1)Course类:与数据库中的Course表相对应。

(2)UserCourse类:与数据库中的UserCourse表相对应。

(3)CourseDocument类:与数据库中的Course-Document表相对应。

(4)CourseVideoProcess类:与数据库中的Course-VideoProcess表相对应。

其中Course类的定义如下:

public partial class Course

{

public int ID{get;set;}

public string CourseName{get;set;}

public int CourseWeek{get;set;}

public int TeacherID{get;set;}

public string Description{get;set;}

}

其余几个模型类的定义与此类似。

3.2 控制器(Controller)类

控制器类主要用于处理用户的请求,并与模型类进行交互实现数据的存取操作,并将处理结果反馈给视图。系统定义的控制器类主要有3类。

(1)HomeController类:主要用于系统前台页面的处理。

(2)CourseController类:主要用于课程管理。

(3)StudentController类:主要用于学员的课程学习和管理。

其中CourseController控制器类的定义如下:

public class CourseController:Controller

{

SMCIESEntities db=new SMCIESEntities();//数据库

///〈summary〉

///课程的创建页面

///〈/summary〉

///〈returns〉〈/returns〉

[SysAdminAuthorize]

public ActionResult InsertCourse()

{

return View();

}

///〈summary〉

///处理课程的创建请求

///〈/summary〉

///〈returns〉〈/returns〉

[SysAdminAuthorize]

[HttpPost]

public ActionResult InsertCourse(Course c)

{

return View();

}

}

3.3 视图(View)

视图主要用于与用户进行交互,接受用户的输入并由用户发起数据操作的请求(插入数据、查询数据等)。视图的请求通常提交给某一个控制器的某一个Action进行处理。视图的编写使用HTML语言结合CSS、JavaScript、JQuery、AJax等技术来实现。在视图的设计过程中通常会使用布局页或母版页。

4 结语

系统为了满足课程教学的需要,实现了一个类慕课系统。在该系统中教师可以创建课程并维护课程资料、布置作业、组织课程测试并评定学生的学习成绩。学生通过该选修某门课程,观看课程视频、完成课程作业、参加课程测试并最后获得系统评定的课程成绩。在该系统的开发过程中采用了.NETMVC开发模式进行开发,通过设计模型类、控制器类和相应的视图页面实现了整个系统。该系统的投入使用将为《C语言程序设计》课程的教学,尤其是该课程的翻转课堂教学改革与探索提供技术支持。

[1]胡枫.C语言程序设计的案例式教学的设计[J].青海师范大学学报(自然科学版),2010(4):48-51.

[2]谢竞博.C语言程序设计教学中的问题及改革建议[J].重庆邮电大学学报(社会科学版),2008,20(2):137-140.

[3]储岳中.C语言程序设计理论与实践一体化教学的几点实践[J].计算机教育,2012(12):22-25.

[4]朱月秀.基于ACM竞赛的C程序设计课程教学改革[J].漳州师范学院学报(自然科学版),2012(1):96-99.

[5]廖雪花,厉兰洁,唐思娩.基于OnlineJudge的C语言程序设计实验课教学改革研究[J].计算机教育,2016(6):130-132.

[6]陈荣钦,胡永良,应建健,等.在线评测系统中的源码相似度检测研究与实现[J].实验技术与管理,2014,31(4):109-111,149.

[7]百度百科.慕课[EB/OL].(2015-11-14)[2016-07-29].http://baike.baidu.com/view/10629886.htm.

[8]张浩斌.基于开放式云平台的开源在线评测系统设计与实现[J].计算机科学,2012,39(11):339-343,348.

(责任编辑:叶丽娜)

Design and ImplementofMOOCSSystem for Programming Coursebased on MVC

ZHANG Biaohan
(School of Information and Engineering,Sanming University,Sanming,Fujian 365004)

A software system is designed for the online learning and testing.It like a MOOC system.The system is developed by.NET MVCmodel.In the system,the Model class,Controller class are designed,and the view pages are also designed to show the data for users.The system provides the basic functions,such as themaintenance of the curriculum,the supervision of the study,the arrangementof the homework,the judgmentof the testand so on,which provides the basic platform and technical support for the course teaching and reform.

programming;MOOCS;HUSTOJ;MVC

TP311.5

A

1674-2109(2017)03-0102-04

2016-09-12

福建省高等学校教学改革研究项目(JAS14765)。

张标汉(1977-),男,汉族,讲师,主要从事计算机应用的研究。

猜你喜欢

视图程序设计控制器
工商业IC卡控制器改造为物联网控制器实践
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用
模糊PID控制器设计及MATLAB仿真