刘永川,刘 春,熊才权,叶志伟
(湖北工业大学 计算机学院,湖北 武汉 430068)
操作系统是计算机类专业的核心专业课程。与其它专业课程相比,其内容广泛、庞杂,知识点难度和跨度较大,与计算机系统结构、计算机组成原理、数据结构等诸多课程有着紧密联系。一些实力雄厚的国外高校如麻省理工学院、普林斯顿大学等,所开设的操作系统课程教学目标是引导学生设计与实现一个小型操作系统[1-2]。该目标能很好地培养学生的系统操作能力[3],但对教学硬件条件、师资力量、学生整体素质的要求非常高。
北京航空航天大学计算机学院在2007 年引进麻省理工学院操作系统实验的基础上,经过多年持续建设,设计与实现了一套基于MIPS 平台的操作系统实验系列,通过六大实验引导学生逐步实现一个小型操作系统[4]。多年的教学实践结果证明,该实验系列对学生帮助很大,但同时也暴露出一些问题,例如:以4 名学生为一组,按小组完成实验,很难区分同组内学生的工作量和学习效果;只有46%的学生能够完成全部实验(如果不是按小组完成实验,而是要求每个学生独立完成实验,完成率可能还将大幅降低);帮助学生解决实验过程中的问题需耗费大量教学资源;教师很难提供细粒度、及时的指导;缺少自动化的实验环境等。
南京航空航天大学建设了基于公有云的操作系统实验平台[5],取得了一定的教学效果,同时指出:“目前学生提交的程序由教师和助教人工进行测试,如何进行自动化测试甚至实时将成绩反馈给学生是一个很有价值且值得探索的方向。”
对于广大地方高校,由于教学硬件条件、师资数量、学生整体素质等限制,不能照搬国内外名校的教学方案。一方面,教师难以对每个学生的每次作业、实验提供一对一、针对性的指导;另一方面,部分学生由于相关课程基础不扎实,难以独立完成作业、实验。这些痛点问题导致一些学生无法得到有效的训练,且教师难以准确掌握学生平时的学习状况,难以针对学情及时调整与改进教学设计,也不能充分调动学生的学习主动性、积极性,因此不符合以产出为导向、以学生为中心,持续改进教学的教育理念[6-8]。
图1 以框图形式呈现了广大地方高校操作系统教学中的痛点问题及其影响,图中箭头可解释为“导致”。由图1 可见,痛点问题对教师、学生均产生了负面影响,并且对教师的负面影响还会作用到学生,从而加深对学生的影响,最终导致教学目标难以达成。为解决或部分解决广大地方高校在操作系统课程教学实践中的这些痛点问题,从2018 年开始,湖北工业大学计算机学院尝试采用云班课[9-10]管理学生作业,并采用在线评价(Online Judge,OJ)平台[11-12]管理学生实验,不断改进教学。
Fig.1 Pain points in operating system teaching and their influences图 1 操作系统教学中的痛点问题及其影响
云班课是一种信息化教学辅助工具,支持PC 端(通过浏览器)和手机端(通过APP)操作,可提供信息化教学所需的常见功能,如在线测验、在线作业、作业匿名评价、教学数据分析等。为利用云班课管理作业,鼓励学生独立思考、独立完成作业,准确评估学生对知识点的掌握情况以及考察学生的学习态度,教师可将作业分为客观题和主观题两种形式,并分别进行相应的教学设计。基于云班课管理学生作业的框架如图2所示。
Fig.2 Framework of students' homework managemennt based on cloud class图2 基于云班课管理学生作业框架
客观题作业包括单选题和多选题。教师课前在云班课上准备好若干道选择题,涵盖上一章节的主要知识点。在上课过程中,教师可随时要求学生用自己的手机完成答题。所涉及的知识点可能来自教材或PPT,但更多地来自课堂上教师的讲授、程序的演示及课堂讨论的问题。通过类似的措施可提高课堂出勤率,引导学生认真听讲,积极参与课堂教学活动,提高其学习兴趣。
如图2 所示,客观题作业能够及时、有效地反馈学生整体学情。这是因为答题时间仅限几分钟,每个学生在各自手机上看到的题目是乱序排列的,并且每道题的所有选项也是乱序排列的(这些是云班课提供的功能)。在短短几分钟内,学生们无暇他顾,只能集中精力完成自己的答题。而对于传统方法,即教师通过批阅学生课后作业的方式掌握学生整体学情,既难以确保及时,又无法确保有效(因为无法确保课后作业是学生独立完成的)。
学生群体的答题结果可由云班课以多种形式统计呈现,从而帮助教师及时、准确地掌握学生学习状况:哪些知识点应该强化,哪些学生需要帮扶,今后如何改进相关知识点的教学等。以上符合以学生为中心、持续改进教学的教育理念。
主观题要求学生课后在作业本上完成,并在规定的时间节点内拍照后做成PDF 文件上传到云班课,若逾期上传则依据逾期时间的长短扣分。设置主观题作业主要是为了弥补客观题题型单一、一些知识点不便出客观题等不足,如图2 所示。主观题作业由学生之间进行匿名互评,教师在布置主观题作业时,已在云班课上设定好若干评分点,并给出参考答案。主观题及其评分点是一同给出的,参考答案在学生匿名互评开始后由云班课平台公开。
为了鼓励学生认真参与互评,以评审者的视角看待并学习其他同学的答题,参与互评活动本身也可作为本次作业的一个评分项,每个学生以匿名方式随机评价3 份他人作业,即可获得该项分数。教师可对学生互评活动进行适当监管,确保互评活动公正、有序进行。教师的监管可以如下方式进行:对每次作业,教师抽取若干份亲自评阅,可随机选取,或选取学生评分最高和最低的若干份作业;个别学生可能对自己的作业得分有异议,则其作业也由教师亲自评阅。
实验主要由学生在课后完成,课堂上教师对实验难点进行讲解,对遇到困难的学生提供必要指导,鼓励学生尽力通过自主钻研解决困难。对于实验做得比较好的学生,可以请其在课堂上分享自己的实验心得,并由教师引导所有学生进行讨论。
在线评价平台已被广泛应用于各类程序设计大赛,其能够自动判定用户提交的程序逻辑是否正确,具备自动查重、答题统计、排名等功能。将在线评价平台应用于操作系统实验,可实现自动呈现学情、自动评分和自动生成实验报告等功能,甚至能够自动定位错误,从而提高学生独立完成实验的信心。
基于在线评价平台管理学生实验的框架如图3 所示,图中箭头可解释为“服务”。由图3 可见:①教师的工作、系统自动完成的工作都是为学生服务的,体现了以学生为中心的教育理念;②系统自动完成的工作也是为教师服务的。在传统教学中,原本由教师完成的繁重工作如检查学生实验中的错误、批阅实验报告、评分、统计学情等,现均由系统自动完成,从而极大地提高了教师工作效率,使其能够集中精力根据学情设计并辅导学生实验、持续改进教学。
笔者于2018年搭建在线评价平台时,采用最低配置的阿里云服务器:单核CPU,1GB 内存,20GB 硬盘,1M 外网带宽,同时配备Ubuntu-14.04-Server 操作系统,安装HUSTOJ在线评价平台[11]。该平台开源且免费,在国内被广泛应用。
按此方案搭建在线评价平台,成本低廉,且完全能够应对两个班级约60 名学生同时做实验。选择其它品牌的云服务器、操作系统和在线评价平台也是可行的,甚至选择校园内网服务器代替公网云服务器也是可行的。
Fig.3 Framework of students' experiment management based on online evaluation platform图3 基于在线评价平台管理学生实验框架
许多操作系统功能的模拟实验可以依托在线评价平台完成,记为第一类实验,表1 列出了其中一部分实验;另外有一些实验不能依托在线评价平台完成,记为第二类实验。表2 列出了不能依托在线评价平台完成的实验,以及其不能依托在线评价平台的原因。本文主要论述采用在线评价平台管理第一类实验。
Table 1 Operating system experiments supported by online evaluation platform表1 可依托在线评价平台完成的操作系统实验
Table 2 Operating system experiments unable to be supported by online judge表2 不可依托在线评价平台完成的实验
将在线评价平台用于管理学生实验,除利用在线评价平台自身的程序查重功能自动判定程序逻辑是否正确外,教师还可通过精心设计实验,实现自动定位学生实验程序中的错误类型。这里以多级反馈队列调度算法实验为例进行具体说明[13]。
若系统只有1 个队列,则多级反馈队列调度算法将退化成时间片轮转调度算法;此时,若系统中总共有m个进程,第i个进程的服务时间为Ti,则当时间片T≥ max{T1,T2,…,Tm}时,多级反馈队列调度算法将进一步退化成先来先服务调度算法。这两种情况属于多级反馈队列调度算法发生质变的边界条件,能够考察学生的逻辑思维是否缜密。很多学生提交的程序在一般情况下能够正确工作,但在这两种边界条件下,不能正确退化成时间片轮转调度算法和先来先服务调度算法。
教师可将这两种边界条件下的在线评价平台测试数据分别列为第j、k组数据,当学生提交的程序未能通过第j、k组数据测试时,由在线评价平台返回相应的错误提示代码,让其知道该程序至少存在这两种逻辑错误。这将帮助学生快速找到实验程序中的关键错误,可大大提高学生通过自身努力完成实验的信心,同时节省了教师时间。
在线评价平台能够自动判断学生提交的程序是否逻辑正确,然而正确就给100 分,错误就给0 分,显然不是很合适。因此,需要通过设计合理的评分规则实现自动、客观评价学生实验,以达到鼓励学生通过自身努力独立完成实验的目的。
容易看出,学生提交多少次代码才能达到逻辑完全正确且查重通过,这“次数”和“查重通过”能够比较有效地反映学生逻辑思维的缜密程度与学习态度。据此,教师可对学生实验采取如表3所示的评分规则。
Table 3 Experiment scoring rules表 3 实验评分规则
学生每次提交的代码正确与否、查重通过与否等各项数据均被在线评价平台记录到数据库中。因此,利用数据库查询命令,能够快速统计所有学生的实验成绩,从而自动呈现学情。并且,基于这些数据和预先准备的实验报告模板,软件可自动生成实验报告。该方式一方面可避免学生提交的实验报告格式不一,另一方面还能为学生节省撰写实验报告的时间,以便其能够更专心地投入到实验中。
对实验结果进行有效评估,能够帮助教师准确掌握学生的学习状况,并针对学情及时调整和改进教学。“有效评估”的前提是:学生群体的实验结果具有较高的真实性。在线评价平台的自动查重机制能够确保学生独立完成实验,为“有效评估”提供了前提保证。
笔者基于在线评价平台设计了5 个必做实验,且从实验1 到实验5 难度依次加大。笔者以近一届160 名学生作为考察对象,要求所有学生独立完成这5 个实验。在实验要求的期限内,学生若未能提交一次正确的代码,相当于放弃该实验,将视为未参加实验。这里以“参加实验比例”和“独立完成比例”两项指标评估实验结果:前者定义为参加实验的学生人数与学生总人数之比,后者定义为提交了正确代码且通过了查重的学生人数与参加实验的学生人数之比。“参加实验比例”能够较好地量化实验难度,该比例越高,实验难度越低;“独立完成比例”能够较好地量化学生成绩的有效性,该比例越高,成绩有效性越高。
表4 给出了实验结果相关数据。图4 以折线图的形式展示了“参加实验比例”与“独立完成比例”随实验难度增加(即实验序号增加)的变化趋势。由图4 可见,虽然实验1 最简单,“参加实验比例”接近于1,但只有约65%的学生能够独立完成;实验2-实验5 的难度显著高于实验1,但独立完成比例显著高于实验1,80%以上的学生能够独立完成实验2-实验5。
Table 4 Data of experiment results表 4 实验结果数据
Fig.4 Line chart of experiment results图 4 实验结果折线图
实验1 的独立完成比例显著低于实验2—实验5,其中的主要原因可能是:第一次基于在线评价平台做实验,部分学生对在线评价平台的查重机制抱有侥幸心理;相当数量的学生经历实验1“查重未通过”之后,能够更加诚实、认真地对待后续实验。实验难度虽然对“独立完成比例”有一定影响,但不是主要原因。在某届学生中,笔者曾有意将难度最高的实验5 改作第一次实验,结果实验5 的独立完成比例降为0.23 8,而之后的实验独立完成比例都能保持在80%以上。此结果在一定程度上印证了笔者推测,同时证明采用在线评价平台管理学生实验,有效培养了学生群体诚实、认真的学习态度。
以云班课和在线评价平台作为信息化教学辅助工具,灵活应用到操作系统课程的教学实践中,能够有效解决一些地方高校操作系统教学中的若干痛点问题,且成本低廉、实用性强、易于推广。云班课能够帮助教师及时、准确地掌握学生的学习状况,从而有针对性地调整教学,提高教学质量。在线评价平台能够实现对学生实验自动评分、自动呈现学情、自动生成实验报告、自动定位实验程序中的错误类型等功能,从而大大节省了教师资源,帮助学生快速找到实验程序中的关键错误,大幅提高了学生通过自身努力完成实验的信心。
从2018 年至今,在4 届学生中,笔者基于云班课和在线评价的操作系统教学受到了学生广泛好评。在湖北省计算机类专业人才培养合作联盟2021 年度会议——操作系统分论坛上,笔者向与会的湖北地方高校从事操作系统教学的一线教师们详细介绍了该教学方案,受到了广泛关注。
云班课和在线评价平台还可与翻转课堂[14-16]、Boppps[17-18]等教学模式进行有机结合,从而更好地提升教学效果。当然,基于云班课和在线评价的操作系统教学目前还存在一些不足之处,如前文所描述的第二类操作系统实验尚不能利用在线评价平台进行管理。如何对这类实验进行自动化评分与自动化定位程序错误类型,是一个值得进一步探索的方向。