《C程序设计》课程交互式作业管理平台设计与实现
2019-05-23俞庆英孙丽萍夏芸
俞庆英 孙丽萍 夏芸
摘要:《C程序设计》是高校计算机专业及相关理工科专业的必修基础课程,《C程序设计》课程实践教学是C语言学习过程中一个重要环节。为减轻教师在C语言实践教学过程的繁重任务,提高学生的学习效率和学习效果,开发并实现了一套C语言交互式作业管理系统。该系统主要功能包括用户管理、题库管理、作业管理、练习管理、成绩统计与查询等。系统使用Web方式开发,开发环境为MyEclipse +Tomcat+ JSP+ MySQL。通过对《C程序设计》课程交互式作业管理平台的个性化设计,充分发挥教师的指导作用,调动学生的学习积极性,提升学生发现问题和解决问题的能力,促进师生交流以及学生之间的协同合作,从而提升《C程序设计》课程的教学质量。
关键词:C语言实践教学;程序设计;交互式作业管理
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2019)08-0029-03
开放科学(资源服务)标识码(OSID):
《C程序设计》是大学计算机专业一年级学生的专业基础课程,也是众多高校为大一理工类新生开设的一门公共基础课程。学习C程序设计课程有助于学生理解哪些是计算机擅长解决的问题,怎样的方式方法是计算机擅长的手段,能为计算机专业学生后续学习数据结构、面向对象的程序设计等专业核心课程奠定良好的编程基础,也有助于非计算机专业学生更好地利用计算机来解决本专业领域内的问题。
实践教学是《C程序设计》课程教学的重要组成部分,有利于加强学生的素质教育,培养学生的实践能力和创新能力[1]。《C程序设计》实践教学内容主要體现在将理论课知识灵活应用于实际问题的解决中,对具体问题的编程作业完成情况可以体现出学生对知识的掌握程度。在实际教学过程中,作者发现,大一新生在初学C语言课程时,对理论课学习和实践课训练无法有效结合。而由于学生人数较多,教师在上机作业批阅方面花费了大部分时间,无法与学生进行一对一细致交流,导致师生之间在作业完成质量方面缺乏及时的交互探讨。为了提高《C程序设计》课程的实践教学效果,教师必须及时对学生的上机作业进行评价,有针对性地对学生欠缺的知识内容进行补充,并培养学生的自学能力。
随着新时代计算机技术和网络技术的不断发展,基于ACM/ICPC的在线测试系统应运而生,能实现计算机程序评阅工作的自动化和高效性[2-3]。然而,如果将在线测试系统直接用于检查本科学生程序作业的完成情况,则存在两种极端。一方面,对于编程能力强的同学,该测试系统无疑是增强其学习积极性的良好手段,刷题的成果大大提升了其编程兴趣;另一方面,对于编程能力不足的同学,往往因为各种小细节的规范问题而无法顺利通过系统的验收标准,需要花费大量时间和精力用于细节检查,导致在有限时间内只能完成较少数量的题目,长此以往,这些学生的编程自信心和学习兴趣都会受到极大影响。因此,为提高《C程序设计》课程的教学效果,建立一套准确、高效、合理、实时交互的程序评测和管理系统已成为迫切的需求。
1 《C程序设计》课程编程作业管理现状及存在问题
1.1 编程作业管理现状
《C程序设计》是一门重在上机实践操练的课程,编程作业必不可少。目前主要存在两种形式的作业管理方式:一是教师先布置作业,学生完成后上交纸质作业或者提交电子作业到指定服务器上,然后由教师对纸质作业一本一本地批阅或对电子作业逐个打开查看,最后人工汇总登记所有同学的作业完成情况;二是教师通过在线测试系统指定题目,学生完成程序编写后在线提交,由在线测试系统评判程序对错,最后教师通过在线测试系统提供的统计功能汇总学生答题通过的数量。
1.2 存在的问题
人工批阅和汇总的方式较为烦琐,虽然便于教师及时了解学生的学习情况,但是给教师的工作带来了不必要的负担,急需寻找自动批改或自动统计作业完成情况的先进手段。于是,在线测试系统在程序设计类课程的实践教学中得到了广泛的应用[4,5]。然而,在线测试系统对输入输出的格式要求较为严格,仅依据程序运行结果评判程序的对错,无法对程序源码进行细致的分析,不能评判学生运用所学技术解决问题的能力。虽然在线测试系统可以作为测定程序对错的依据之一,可以大大缓解教师的工作压力,但程序具体的编写质量仍然需要教师人工评判。
一方面为了减少教师批阅编程作业和汇总学生作业完成情况的负担,另一方面也可以让教师及时了解到学生的具体程序编写能力,本文设计并实现了一个基于B/S结构的《C程序设计》课程交互式作业管理系统,利用该系统,学生可以随时提交其程序代码,教师及时在系统上进行批改,并将结果实时反馈给学生。通过该系统的使用,教师可以对整个实践教学过程进行高效的管理,包括导入师生信息、添加试题库、布置作业、批阅作业、查看统计结果等功能。除判断程序运行结果是否正确外,还提供教师评阅界面,对学生程序进行评价打分并将结果反馈给学生。
2 《C程序设计》交互式作业管理平台
《C程序设计》交互式作业管理平台,为教师在《C程序设计》课程实践作业批改、统计及反馈等工作提供了有效合理的管理方式,为学生及时查看教师批阅意见和作业答案提供便捷实时的平台。基于《C程序设计》课程实践作业的交互式管理新模式,师生互动交流得以增强,学生学习效果更加明显,效率显著提高。
2.1 系统模块
本系统模块结构如图1所示。
后台主要采用数据库的操作方式,能够对数据库进行分类管理及便捷操作。主要数据表包括:学生基本信息表、教师信息表、试题表、作业表、答题表等。
2.2 详细设计与实现
1) 登录管理
教师和学生使用本地电脑通过访问《C程序设计》交互式作业管理平台主页,在如图2所示的登录界面输入账号和密码后登录,分别进入教师操作主界面和学生操作主界面。
2) 基本信息管理
信息的操作权级别由高到低依次为:admin(管理员),teacher(教师),student(学生)。
教师用户登录系统后,可以对所有学生用户学生基本信息进行相关管理,包括:查看、添加、删除、修改自己所教学生用户的信息。教师在添加学生时,可以选择Excel文件导入(图3)和手动添加(图4)两种方式。各用户在修改自己的信息(图5)时,对不同信息要做不同处理。例如:学生的学号、专业、班级,教师的职工号、专业,管理员的编号(ID)等关键性的信息都是不允许自己修改的,只能由信息操作权级别比自己高的用户修改。
3) 题库管理
教師在登录该系统后,可以对题库信息进行相关管理,包括:查询、添加、删除、修改题库里的题目等。
执行查询:教师可以在全部试题的数据库中根据“多条件”(出题时间、出题者、题目内容等)进行准确或模糊查询。执行添加:教师可以根据界面指示添加不同的类型的题目,添加方式分为批量导入(Excel)和手动输入(单个);在添加试题的过程中,需判定题库中是否已存在所添加题目,根据判定结果做不同处理。执行修改:教师只能修改自己添加的题目和其他教师授权修改的题目。执行删除:允许教师对题目进行批量删除。任何教师可以向其他教师对自己所出试题的操作设置开放和共享权限。
4) 作业管理
教师用户成功登录系统后,可以根据Action后台提供的信息查询、修改、删除、创建(添加)平时作业,并将操作的信息和结果保存到后台数据库相应的表中,同时教师也可以实时查看提交状况和批改作业。图6所示为教师查看已布置作业的界面。
教师进入作业模块后选择操作对象是平时练习作业。1) 教师可以从各个类型题库选择若干个题目组成一次练习作业,并设置作业名称、作业提交截止时间、完成作业的对象。2) 教师也可以对自己布置的作业进行查询(多条件准确或模糊查询),可以添加题目的数量和完成作业的对象,也可以删除练习中部分题目和完成作业的对象。3) 教师也可以查看本次作业学生的提交情况(已提交、未提交等)和选择批改作业(如图7所示)等操作。
5) 练习管理
不同的用户类型进入该模块具有不同的权限。学生可以查询相关信息(作业、答案、提交情况等),选择提交作业等操作;教师可以查询相关信息(作业、学生的完成情况等),选择公开答案等操作。
学生用户:学生可以根据教师姓名查询其布置的作业,也可以根据课程名查询教师布置的作业,在显示查询到的作业界面中,学生可以通过下拉列表选择性地查看相应作业,如选择查看所有的作业、已完成的作业、未完成的作业等;可以进行二次查询筛选,同时可以看到每一个作业的截至提交时间;选择其中的一个作业进入,可以看到选择答题区域、查看答案按钮,查看自己的答题对错情况(在教师公开答案后);同时学生还可以查看此次作业每一题的提交情况。图8为学生查看作业列表页面,图9为学生提交作业页面。
教师用户:可以根据界面指示查看自己出的所有作业,还可以根据某些条件(如截止日期、作业的名称)选择性查看作业。选择其中一个作业进入,教师可以选择公开某一题或者全部题目的答案(图10),同时教师也可以查看本次作业目前提提交情况(图11),可以精确查询到完成某一题的学生名单和答案状态以及未完成学生的名单。
3 结束语
作为大学计算机专业的一门基础课程,《C程序设计》是专业基础知识,是学习其他专业知识的第一步阶梯;对于非计算机专业而言,程序设计的学习有助于理解计算机的能力所在,从而能更好地利用计算机来解决本专业领域内的实际问题。
一个行之有效的编程作业管理系统对《C程序设计》的实践教学效果有大大的促进作用,满足了师生之间的交互需求,既有助于教师高效管理作业并实时了解学生的学习情况,也有助于学生及时查缺补漏,巩固所学知识。可有效提高学生的学习积极性和主动性,培养学生的逻辑思维能力和C语言编程实践能力,从而达到培养学生灵活使用C程序设计方法解决实际问题的教学目标。今后还计划在系统中添加一个作业相似度比较的功能,根据比较结果查看作业抄袭情况,加强对实验过程的管理,督促学生独立完成作业,减少作业抄袭现象。
《C程序设计》课程交互式作业管理平台可以对传统作业管理模式的不足之处进行弥补和完善,可以将《C程序设计》上机课程跃升至互动与实践的新高度,不断提升该课程的教学质量。
参考文献:
[1] 朱士中,陈凤,先晓兵,等.基于移动终端和条码技术的实践教学管理平台研究[J].软件工程,2017, 20(4):22-25.
[2] 徐义春, 邓波.ACM在线评测系统与程序设计教学[J].时代教育,2015(9): 35-36.
[3] 赵磊, 吴玉培, 廖彬.基于ACM/ICPC在线测评系统的设计[J].电脑知识与技术,2013, 22(9): 5004-5006.
[4] 王涛春, 罗永龙,左开中.基于在线评测的数据结构实践教学探讨[J].计算机教育,2010(10): 88-91.
[5] 张利强,李尧.基于B/S的高校程序在线测评系统设计与实现[J].通信与信息技术,2018(4): 33-36.
【通联编辑:王力】