1. 引言
当前,以互联网为核心的新一轮科技和产业革命正席卷全球,新经济的发展壮大需要大量能够主动适应新技术、新产业、新经济发展,具备更高创新能力和跨界整合能力的卓越工程科技人才,新工科建设由此被提上日程并成为当前工程教育的重点。教育部积极推进新工科建设,先后发布了《关于开展新工科研究与实践的通知》、《关于推进新工科研究与实践项目的通知》 [1],明确新工科的人才培养定位,注重培养具备主动获取知识能力、终身学习能力、自主创新能力、批判思维能力的新型工程技术人才。新工科背景下的课程建设既强调理论知识的传授,更要注重工程教育、创新教育的交叉融合 [2],课程内容与实践的结合,增强数字化思维、计算思维的培育。
操作系统课程是高校计算机类专业的专业核心课程,掌握该门课程有助于学生更加准确地理解计算机系统的各个组成部分的功能及基本原理,理解计算机中的硬件和软件资源如何协同工作。操作系统课程的理论性较强,教学内容庞杂、抽象,对于学生来说,该门课程的学习过程枯燥、难以理解,而且与编程语言类的课程“立竿见影”的效果相比,该门课程的学习效果及结果不能立刻呈现 [3]。
针对以上问题,需要对操作系统课程的教学方法和手段进行改革,提高学生的学习兴趣和课堂参与度,达到预期的教学效果,以满足“新工科”背景下对人才培养的要求。
2. 操作系统课程的课堂教学现状
2.1. 课程内容抽象,理论性强
高校操作系统课程的教学内容主要包括操作系统引论、进程与线程、处理器调度、进程同步与死锁、物理存储器管理、虚拟存储器管理、设备管理和文件管理,主要讲授基本原理,不是针对某种操作系统来讲,内容庞杂,涉及面广。操作系统课程的先修课程包括《计算机组成原理》、《计算机网络基础》、《数据结构》等课程,这些课程的内容也有一定的难度,因此学生缺乏牢固的课程基础,这种情况也增加了操作系统课程的学习难度。学生在学习的过程中,课堂上的学习内容与实际使用的操作系统之间存在一定的距离,理论与实际不能结合起来,不能学以致用,因此学习兴趣不高。
2.2. 教学方式单一
目前,高校的操作系统课程多数采用灌输式教学方式,教学过程中以教师的教为主,学生被动接受知识,忽略了学生在教学活动中的主体地位,学生缺少独立思考和分析问题的机会,而且学生在课堂中的参与度不高,课堂互动的机会也较少,这样的课堂难以调动学生的积极性和激发学生的学习兴趣,再加上课程内容枯燥难懂,因此,单一的课堂教学方式使学生很难理解并掌握操作系统的基本概念和基本原理 [4]。
2.3. 实践环节薄弱
操作系统课程多重视理论知识讲解,而忽略了实践教学环节,实践环节的课时较少,而且实践环节的内容设计不合理,不能将理论知识与实践过程相结合,因此,实践环节不能起到帮助学生深刻理解理论知识的目的,这也增加了学生对掌握并理解理论知识的难度。学生缺少参与实践的机会,也导致学生很难提高分析问题和解决问题的能力,缺少自主创新性,也进一步导致学生失去对该门课程的学习兴趣,难以提高教学效果。
2.4. 学生忽视课程地位
学生在学习诸如C语言程序设计、C++程序设计、Python程序设计等编程语言课程时,可以利用所学知识编写代码解决实际问题,学习效果立竿见影,学生认为学习这些课程是有用的。而学生在学习操作系统课程的理论知识时,看不到这些知识在解决实际问题中的作用,这样,学生认为即使不了解操作系统的基本概念、基本原理,也可以很好地使用计算机,学生就形成一种观点:计算机专业是编程的,但操作系统课程对于编程没有任何作用。因此,操作系统课程的重要地位被忽视,学生对该门课程的学习也只是应付考试,没有深刻理解操作系统的基本原理,不能为后续课程的学习打下坚实的知识基础,在以后接触到的大型软件项目中出现的问题也不能很快找到解决办法。
3. “新工科”背景下的操作系统课程改革措施
3.1. 以需求为导向,优化教学内容
教育部积极推进“新工科”建设,需明确“新工科”的人才培养定位。在“新工科”背景下,授课过程既要注重基本概念、基本原理的讲解与传授,更要加强工程教育、创新教育的交叉融合,不同专业的培养目标各不相同,比如网络工程专业旨在培养掌握计算机技术、网络技术及通信技术的基本理论、基本知识,掌握计算机网络系统分析和设计的基本方法,具有网络编程与应用开发,网络规划设计、施工、集成、网络管理等基本能力,能在各类企事业单位从事计算机、网络相关领域的高级应用型的专门人才。因此网络工程专业的操作系统课程应增加网络操作系统、分布式系统等内容。软件工程专业应以培养掌握软件分析、设计和开发方法,具有较强的软件开发实践能力和技术创新能力,能够从事软件分析、设计、开发、应用和维护的具有高就业竞争力的应用型软件工程专业人才为目标,操作系统课程的教学内容应注重进程与线程、内存管理、处理机调度等的讲解。计算机科学与技术专业旨在培养具有综合运用所掌握的计算机基础理论知识和技能,掌握计算机系统的分析和设计的基本方法,具有从事研究、开发与测试计算机软硬件的能力的“工程技术应用型”人才,因此计算机科学与技术专业的操作系统课程应注重磁盘存储管理、文件管理、处理机调度等内容的讲解。根据培养目标来优化课程教学内容,实现学生的个性化培养 [5]。
3.2. 以知识为载体,构建混合式教学模式
单一的灌输式教学方式,以教师的教为主,学生被动接受知识,缺少思考分析与自主创新的机会,因此需要向混合式教学模式转变,改变传统的教学流程,以培养学生实践能力和应用创新能力为目标。
3.2.1. 采用“翻转课堂”模式
翻转课堂将学习的决定权从教师转移给学生,课堂教学实现由“教师的教”向“学生的学”的转变。随着“互联网+”与教育的融合渗透不断深入,科学技术逐步走向校园,逐步的走向智慧教育模式,促进智慧化教学工具与“翻转课堂”模式的融合。智慧化教学工具可以融合课前、课中、课后三个环节,以教师、学生、辅导员为服务对象。
利用智慧化教学工具,老师在上课之前提前可以发布预习任务,老师还可以选择学生较熟悉的、简单易懂的内容让学生自主学习,比如文件管理部分。老师首先给出文件系统中的基本概念,比如文件的概念、文件控制块、目录结构等,学生在课前完成这些任务的自主学习,然后反馈在预习过程中存在的难点问题。比如大部分学生反馈两级目录结构及多级目录结构比较难,老师根据学生的反馈,针对性地做好教学环节的设计,在上课过程中对两级目录结构和多级目录结构进行重点讲解,这样,可以提高课堂教学效率,实现精准化教学。
“翻转课堂”实现“由教向学”的转变,对学生的考核也突破传统的静态、单一的考核方式,转变为多维动态考核,将学生的过程性学习数据记入过程考核中,如图1所示,是智慧教学工具记录的学生过程性学习数据。
3.2.2. 生活案例引入法
可以采用结合生活中的案例对知识点进行引入,将抽象的概念具体化。比如虚拟存储器是操作系统中十分重要的知识点,虚拟存储器并没有真正扩充内存的物理容量,而是从逻辑上扩充内存容量,这个概念是十分抽象的,学生难以理解。在这种情况下,老师可以采用图书馆的案例进行知识点引入。图书馆的阅览室中有100个座位,一部分同学看完书后离开阅览室,阅览室中就空出一部分座位,另一部分同学就可以进入阅览室看书,这样,最大容量为100人的阅览室就可以满足500人到阅览室看书的需求,从学生的角度来看扩充了阅览室的空间,提高了阅览室的利用率。在操作系统中,将暂时不运行的进程调入外存,把需要执行的进程调入内存,提高了内存利用率,用户感觉内存容量好像扩大了,满足了更多进程的需求,提高了进程并发的程度,增加了系统吞吐量。
这样,通过生活中的案例引入,将抽象的虚拟内存的概念具体化,学生对虚拟内存的理解就简单多了。
3.2.3. 类比教学法
可以将生活中常见的事物融入到操作系统的课堂中,将原本复杂、抽象、难懂的基本概念,变得生活化、具体化。比如引入进程的概念可以使程序并发执行,提高处理机资源的利用率和系统吞吐量。从不同的角度,进程可以有不同的定义,比较经典的定义有 [6]:
1) 进程是程序的一次执行;
2) 进程是一个程序及其数据在处理机上顺序执行时所发生的活动;
3) 进程是具有独立功能的程序在一个数据集合上运行的过程。
无论哪种进程定义,都在强调进程是一个动态的概念,进程除了包含程序、数据外,还有一个重要的数据结构——进程控制块,用于描述进程的当前活动及进程管理的全部信息 [6]。老师在讲解进程定义的过程中,可以把程序比作静态的、没有出行任务的城市公交车,把进程比作正在出行的城市公交车,把进程处理的数据比作乘客,进程控制块可以看作是城市的公交车调度中心记录的关于此辆公交车的出行信息。只有当公交车配备了司机、燃油等资源后,才可以从公交车调度中心出发。进程是具有一定生命期的,类似地,公交车的出行也是有时间周期的,当公交车完成出行任务,再次回到公交车调度中心,一个出行周期结束。这样,将进程的动态性概念比作生活中常见的公交车,学生可以深刻理解进程的动态性概念。
3.2.4. 讨论教学法
将生活中在学生熟悉的事件引入到操作系统的课堂教学过程中,引导学生进行讨论,然后老师对知识点内容进行总结、完善。比如在多道程序环境下,进程的并发执行的导致系统中的多个进程共享系统中的资源,因此,它们之间可能存在两种相互制约关系:间接制约关系和直接制约关系 [6]。在讲解间接制约关系时,可以引入打印店中的场景,抛出问题:若打印店中原本有5台打印机,现在有4台打印机的碳粉量不足,只有一台打印机可以工作,有3位同学到打印店打印资料,这3位同学应该按照什么样的顺序打印资料呢?引导学生进行讨论,得到结果:这3位同学都可以使用这台打印机打印资料,但是需要按照先来后到的顺序使用打印机,只要有一个人在打印资料,其他同学必须等待。3位同学类似于3个进程,由于共享打印机,使得他们之间产生了制约关系,这就类似于进程间的间接制约关系,多个进程由于共享系统资源而产生间接制约关系,也称为进程互斥。接着,引出第二个问题:大家可以在教务系统中查到考试成绩,现在操作系统课程还未进行期末考试,老师还未在教务系统中录入成绩,大家能否查到成绩呢?经过学生讨论之后,答案是否定的,这就可以引出进程间的直接制约关系。进程间的直接制约关系也称为进程同步,源于进程为了完成同一项任务而相互合作。
将学生由切身感受的情景引入,引导学生进行问题讨论、总结,老师进行对结论进行完善,这种教学方式凸显了学生在课堂教学中的主导地位,实现“由教向学”的转变。
3.3. 以工程应用为基础,加强实践环节
在“新工科”建设中,需要更加注重对学生进行工程能力的培养,使学生具有较强的实践能力和技术创新能力,以解决复杂的工程问题。学习操作系统既需要具备计算机硬件知识基础,又需要有一定的程序设计能力。在计算机工程问题中,操作系统是软件资源和硬件资源之间的桥梁,因此在教学过程中,应该更加注重实践教学环节。操作系统的实践环节包括验证性实验和设计性实验两种,验证性实验是模拟操作系统中的某些工作过程或工作原理,通过模拟程序的运行来演示基本概念或基本原理,例如进程控制(包括进程的创建和终止、进程的挂起和激活、进程的阻塞和唤醒)、处理机调度算法、银行家算法、页面置换算法以及磁盘调度算法等,实验目的是帮助学生理解这些算法的工作原理。设计性实验不仅有助于学生理解操作系统的基本原理,更是注重学生的将理论知识应用于实践的能力的培养。比如组织3~5个学生为一组,实现一个模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口等功能。通过模拟操作系统的实现,加深学生对操作系统工作原理的理解,进一步了解操作系统的实现方法,并可培养学生的团队合作精神,提高学生的程序设计能力。在解决工程实践问题时应该何时使用操作系统中的基本概念和基本原理,以及怎样使用操作系统中的基本概念和基本原理都需要学生通过实践的训练获得。
3.4. 以科技为中心,关注学科前沿
“新工科”背景下培养的人才应该立足现在,面向未来,紧密关注专业学科发展,具有对新知识、新科技、新技术的快速学习并掌握能力。随着大数据、人工智能、云计算等新技术的发展推动了新一轮科技革命和产业变革,但是教材内容的更新速度很难跟得上科技发展的速度,因此教师在传授课本知识的同时,要积极引导学生利用各种媒介渠道来获取学科前言知识。可以要求学生多关注操作系统的相关新技术,形成学科前言报告,作为作业提交,并计入平时考核中。这种方法可以拓展学生的视野,培养学生的自主学习能力和终身学习意识。
4. 教学效果
自2012年以来,安徽信息工程学院一直坚持以个性化教育、智慧化教学为指导,结合人工智能新技术,致力于实现学生学习个性化、老师教学精准化、教学管理智能化。作为专业核心课程,操作系统课程安徽信息工程学院教学改革的排头兵。表1从教学满意度、课程期末考试通过率、学生学科竞赛的得奖率几个方面,将2015级学生与逐步深入改革的2016级、2017级、2018级学生进行了。

Table 1. Teaching effect comparison table
表1. 教学效果对照表
从表1可以看出,通过对操作系统的教学内容和教学方法的改革,2016级、2017级及2018级学生的教学满意度、考试通过率、学科竞赛的得奖率均有了显著的提高。
5. 结语
操作系统是计算机类专业的专业基础课,课程内容抽象、理论性强,传统的课堂教学方法使学生失去对课程的学习兴趣,课堂效率低下。概念的提出对人才培养提出了新的要求,通过对课程内容及课堂教学方法的改革,提高了学生的学习兴趣,凸显了学生在课堂中的主导地位,提高了学生独立思考、分析问题、解决问题的能力,培养了学生的自主创新能力及团队合作精神,以满足“新工科”背景下的人才需求。
操作系统课程改革后取得了良好的效果,教学满意度、课程期末考试通过率等指标得到了显著的提高,下一步的工作重点是把操作系统同大数据以及人工智能联系起来,以达到更好的教学效果,培养符合“新工科”要求的“新”人才。
基金项目
安徽省教育厅2018高校自然科学重点研究项目,“一种家用网络QoS控制器及控制方法的研究与设计”(KJ2018A0632),张云玲;2017安徽省质量工程项目“以新工科需求为导向的应用型IT人才工程能力培养体系的构建与实践”(2017jyxm0943),周鸣争;2018安徽省质量工程项目“操作系统原理大规模在线开放课程(MOOC)示范项目”(2018mooc424),程琪;2018安徽省质量工程项目“新工科背景下网络工程专业方向课程体系改革与研究”(2018jyxm0320),伍岳。