面向计算机系统能力培养的操作系统课程教学改革与探索
2021-03-29吴庆岗朱付保黄伟钱慎一
吴庆岗 朱付保 黄伟 钱慎一
(郑州轻工业大学计算机与通信工程学院,河南郑州 450001)
1 引言
1.1 计算机系统能力培养
计算机系统能力从提出到现在,专家学者对此进行了多次探讨,达成了诸多共识。其中,最具影响力的是2016年举办的第四届高等院校计算机系统能力培养高峰论坛,国防科技大学王志英教授将计算机系统划分为三个层次:计算机基础系统、计算机领域系统和计算机应用系统[2],同时围绕计算机类专业人才需要具备的系统能力进行了深入的交流与研讨。在这些讨论的引导下,系统能力培养在重点院校开展得如火如荼。2017年,北京航空航天大学承办了第一届计算机系统能力培养大赛,通过学科竞赛推动专业建设和学生系统能力培养。截至目前,共举办了包括操作系统、计算机组成原理和编译原理等课程在内的五届系统能力培养大赛。
计算机系统能力培养的目标是让学生在掌握计算系统基本原理的基础上,理解计算机系统软硬件之间的相互关系,使学生具备解决复杂工程问题的能力[3]。系统能力培养要求课程教学从系统的观点出发,即计算机系统软硬件相关课程的教学应当具有整体性、关联性、层次性、动态性和开放性[4]。结合自身教学实践的经验,笔者认为计算机系统能力培养离不开计算机不同课程内容之间的联系、理论知识与实践能力之间的贯通、多种教学模式的综合运用和教学过程性考核的完善。
1.2 地方院校中的计算机系统能力培养
与重点院校相比,地方院校的计算机系统能力培养相对滞后。从第二届系统能力培养大赛的结果看,获得特等奖和一等奖的学校均为985和211重点院校,而地方院校中仅有济南大学获得二等奖,河北大学获得三等奖[1]。究其原因,主要包括以下两个方面:首先,从教学主体看,计算机系统能力培养观念在地方院校教师心目中还未占据主导地位,导致授课教师只建设自己所讲授的课程,不同课程之间的联系没有给予足够重视。例如操作系统课程不太重视与计算机组成原理和编译原理等相关课程的联系。其次,从教学对象看,地方院校学生由于高考录取批次的不同,学生基础与重点院校相比有较大的差距,容易加大地方院校学生系统能力培养的难度[5]。针对地方院校自身的特点,探寻合适的计算机系统能力培养方法具有重要的现实意义。笔者以计算机系统能力培养为牵引,结合自身从事操作系统教学的经验,对地方院校操作系统课程教学改革进行探索。
2 当前操作系统课程教学中存在的问题
操作系统课程是计算机系统能力培养的重要载体,主要阐述操作系统对处理器、存储器、I/O设备、文件和信息等诸多计算机资源的管理[6]。从系统能力培养角度看,当前操作系统教学存在如下四个方面的不足:从课程内容看,没有注重课程衔接,学生的知识结构通常缺乏不同课程内容之间的相互联系;从实验教学看,课时偏少,不能保障学生实战编程能力得到足够训练;从教学模式看,传统线下教学容易受到时空约束,不能满足学生随时随地学习的需求;从课程考核看,学生平时对课程知识的掌握难以准确把握,缺乏过程性考核。
2.1 与相关课程内容的衔接偏弱
计算机系统由硬件系统和软件系统两部分组成。相应地,现有计算机类专业课程在设置时大多根据计算机系统进行划分,任课教师常常囿于本课程的核心内容进行授课,在很大程度上割裂了不同课程之间内容上的紧密联系[7]。这种课程设置方式容易导致关联知识点间的衔接被严重弱化,引起教师在授课时难以有效地对前驱课程和后继课程之间的关联知识点进行串联。操作系统课程概念多,理论抽象,要求学生具有较好的前驱计算机硬件和软件知识储备。传统课程教学将导致学生仅仅掌握某课程自身独有的知识,缺乏系统全局的意识去学习计算机软硬件的知识,进而导致计算机系统能力不足。
2.2 实验教学效果不佳
操作系统的实验课和理论课之间存在紧密联系,通过实验课可以将理论知识转化为实际动手能力。然而,实验课和理论课的总课时是有限的。在这种情况下,为了保证教学任务能顺利完成,通常实验课安排较少的学时,导致没有充足的时间用于有效训练学生的动手操作能力。为此,任课老师通常降低实验难度,仅仅保留对操作系统基本功能和主要算法的模拟验证,同时配以少量综合型实验。由于实验多为模拟验证型,且局限于课本上固有的理论知识,学生的综合实际操作能力无法得到有效训练,难以保障实验教学效果。这些实验教学状况都属于不利因素,最终会影响学生的系统能力培养。
2.3 线下教学模式受制于时空约束
目前,线下课堂依然是学生获取操作系统知识的主要途径。但是,传统操作系统课堂教学模式单一,学生只能在固定的时间和地点听老师讲解,而对于特殊情况(如由于疫情的原因不能举行线下教学),学生将无法聆听教师对相关知识点系统全面的讲解,必然影响学生的学习效果和系统能力培养。因此,该教学模式容易受制于时间和空间的约束。此外,在线下教学模式中,为了保证教学进度,课堂教学通常以教师讲授为主,容易使学生感觉自己处于被动学习状态,鲜有学生能够发挥主观能动性,做到课前认真预习,课后及时复习,进而导致学生学习效果不佳,不利于学生系统能力的培养。
2.4 过程性考核不够完善
操作系统课程考核是教学活动中的关键一环。传统课程考核多以终结性考核为主,考核依据主要是学生的期末考试成绩,同时参考学生课堂出勤率、课后作业和课堂表现等平时成绩。这种终结性考核在一定程度上可以反映学生对课程知识的掌握程度,但是不能精细地监控学生平时的学习状态,故而导致任课教师的反馈相对滞后,教师不能及时掌握学生学习情况,以便优化教学方法。同时,主要依靠期末考试来评价学生对知识掌握程度的考核方式不能公平客观地反映学生的学习情况,最终影响学生系统能力的培养。
3 操作系统课程教学改革措施
针对操作系统课程教学过程中出现的诸多问题,结合多年授课经验,笔者从课程内容之间的衔接、实验教学环节的优化、线上线下混合教学模式和过程性课程考核等四个方面提出改革措施,并在郑州轻工业大学计算机科学与技术专业本科生的教学过程中进行试点,取得令人满意的教学效果。具体措施包括以下几个方面:
(1)扰乱了市场经济秩序。违法招投标不但扰乱了市场经济秩序而且造成国家固定资产投资规模的失控,国有资产流失,影响国家宏观调控政策的实施。
3.1 加强与相关课程内容的衔接
操作系统课程在计算机专业课程体系中处于核心位置,起着承上启下的作用。具体地说,操作系统前驱课程包括计算机程序设计、数据结构和计算机组成原理等;后续课程包括编译原理、并行程序设计和计算机体系结构等。在教学过程中,教师应当注意与前驱课程的衔接,通过对相关知识点的串讲从计算机系统的角度向学生讲解操作系统的概念和原理,为操作系统课程的学习做好铺垫。下面以C/C++程序设计语言课程和编译原理课程为例,分析如何建立它们与操作系统课程知识之间的联系,以更好地培养学生的计算机系统能力。
前驱课程C/C++程序设计语言属于软件类课程,其中的函数、指针、结构体和文件操作等知识与操作系统课程之间的关联十分紧密。教师对这些知识点进行回顾,引导学生利用课余时间对相关知识进行复习,为操作系统理论课和实验课的学习做好准备,提升学生阅读和分析代码的能力。教师还可以督促学生落实代码编写规范,比如变量命名方式、代码添加注释等,培养学生良好的编码习惯。后继课程编译原理也属于软件类课程,主要介绍如何从高级语言转化为汇编语言或机器语言。教师在讲授操作系统课程时,可以给学生明确计算机程序在存储器中的存储方式,进程或者任务的执行过程等,为后续课程编译原理的学习做好铺垫。对操作系统前驱课程和后继课程相关知识点的纵向深入挖掘,可以有效避免不同课程过于强调课程自身的知识,建立不同课程知识点间的联系,有助于培养学生系统观,促使学生更好地掌握计算机软硬件知识,从而提高操作系统的学习效果,助推学生系统能力的培养。
3.2 优化实验教学环节
操作系统课程中的实验根据难易程度通常分为验证型和综合型两大类。其中,验证型实验主要复现课程中算法的执行结果、巩固和加强理论知识以及培养学生的实验操作能力,如通过上机实验验证避免死锁的银行家算法等。综合型实验则需要学生首先根据实验目的自行设计算法,在设计算法的过程中综合考虑各种因素对实验结果的影响,然后再编写代码实现该算法,如进程的动态高优先权优先调度实验等。由此可见,综合型实验比验证型实验更有利于培养学生的系统能力。然而,综合型实验在实验课教学中所占比例偏低,这不利于学生系统能力的培养。
鉴于此,优化实验教学环节是计算机系统能力培养的必然要求。合理安排操作系统的上机实验,可以锻炼学生程序设计的方法和技巧,提高学生编写清晰合理系统程序的能力,进而加深学生对操作系统知识的理解,最终提高学生分析、设计和开发操作系统的能力。对于实验环节的优化,首先,在总课时不变的情况下,适当减少验证型实验,增加综合型实验,为推进学生系统能力培养做好准备。其次,在实验课时确定的情况下,验证型实验内容不变,提高综合型实验的难度,采用随机抽查方式检查实验的完成情况,将有利于督促学生利用课余时间自主练习更多的实验内容。上述实验教学的优化途径既有区别又相互补充,其综合运用将有助于提升学生系统能力的培养。
3.3 启用线上线下混合教学模式
当前,操作系统课程教学主要采用线下课堂教学模式,通常能够比线上教学模式取得更好的教学效果。但是,单纯的线下教学模式容易受到时间和空间的限制,不能很好地满足教学多样化的需求,这时线上教学可作为有益的补充。因此,启用线上线下混合教学模式是操作系统教学发展的要求,避免线下模式的单一性,有助于更加灵活地进行学生系统能力培养。
在操作系统教学具体实施过程中,会存在各种各样的问题,比如课程教学计划与教学目标需要提前告知学生;某些过程性考核(如小测验)的批改和汇总在线下教学中需要花费较多的时间;有些章节的内容相对容易,学生可以通过自主学习完成,不必采用线下课堂进行教学等。在这种情况下,线上线下混合教学模式可以弥补单纯线下教学模式的时空局限性。例如,通过建立QQ群在线下教学之前向学生发布课前预习提示;让学生通过在线学习平台(如中国大学MOOC等)观看视频和课件等优质教学资源;在线上课堂教学中更容易实现对学生过程性考核结果的统计。因此,线上线下教学模式能够充分利用线上线下各种资源开展操作系统教学活动和教学创新,更加灵活地培养学生的系统能力。
3.4 注重过程性课程考核
传统课程考核不能准确反映学生真实学习水平,因此增加形成性课程考核所占的比例,强调自身学习过程,提高学生学习操作系统课程的主动性,增强对学生系统能力的培养。形成性课程考核是对操作系统课程考核的有益补充,可以在开课过程中利用多种现代化教学工具记录教学活动,获取丰富的形成性评价数据,更细致地掌握学生学习情况,对于可能会掉队的学生及时对他们进行学业预警,引导学生端正学习态度。同时,利用课下时间对学生进行针对性辅导,帮助学生提高学习成绩,重塑学习信心。
在操作系统最终课程成绩评定中提高形成性评价数据所占的比例,课程组制定了包括平时成绩(20%)、实验成绩(20%)和期末考试成绩(60%)三个方面在内的课程考核依据,对学生学习情况进行科学公平的综合评定。其中,平时成绩包括慕课堂记录的平时作业(随堂作业或者课后作业)成绩、课堂或课后网络论坛中学生参与讨论的成绩、课堂提问时学生回答问题的成绩以及学生课堂表现等。实验成绩则包括实验准备、实验完成、实验报告的撰写和实验验收时问题的回答情况等。通过降低期末考试成绩所占比重,提升平时成绩和实验成绩所占比重,从学生平时学习的过程中加强对学生系统能力的培养。
4 操作系统课程教学改革实践与效果分析
近三年,课程组对计算机科学与技术专业72名学生集中进行操作系统课程教学改革试点。学生学习过C/C++程序设计语言等前驱课程。在操作系统课程结束之后,跟踪学生学习编译原理等后继课程的情况。对于进程同步章节的内容,由于进程、线程、信号量等基本概念及进程互斥和同步等基本原理相对抽象,由教师进行线下教学、重点讲解。而处理机调度章节的内容相对容易,由学生自行学习,教师在线上进行问题答疑和组织学生讨论。在授课过程中,通过小测验对学生进行过程性考核,避免单纯依靠期末考试终结性考核。经过一系列课程教学改革,使系统能力培养的落地得到有效保障,大大提升了学生对课程的学习兴趣。学生能较完整地掌握计算机软硬件系统知识以及相关知识点之间的联系,过程性考核大大提高了学生的自主学习意识,开展系统能力培养的教学班级期末成绩平均有了显著提高。操作系统课程作为重要支撑,学生获得省级以上大学生竞赛奖励10余项,每年都有一批优秀学子考入985和211高校研究生继续深造,毕业生应聘到网易、滴滴等公司并且其综合素质受到好评。总之,与往届学生相比,操作系统课程改革后学生的系统能力培养得到显著提升。
5 结语
计算机系统能力培养是当今计算机领域教育教学改革的重要方向之一。为此,地方院校根据自身特点积极推进系统能力培养。在本文中,笔者结合多年操作系统课程教学的经验,总结分析当前该课程教学中计算机系统能力培养存在的问题,根据地方院校的特点,从课程内容、实验教学、教学模式和课程评价四个方面提出加强学生系统能力培养的改革措施。操作系统课程教学实践表明,笔者所在教学团队通过上述改革措施有效提升了学生的系统能力。随着智能技术的快速发展,如何在操作系统课程教学中引入人工智能最新科研成果,进一步提升学生系统能力培养,是未来值得探索的重要方向。