APP下载

“操作系统”课程教学方法的探索与实践

2020-12-29胡龙志邓红卫俞晓润王承龙彭亚云

计算机时代 2020年12期
关键词:启发式教学法操作系统任务驱动教学法

胡龙志 邓红卫 俞晓润 王承龙 彭亚云

摘  要: 针对传统教学方法已不适应“操作系统”课程教学的现状,提出了实物展示教学法、溯源教学法、操作引导教学法,深化启发式教学法和任务驱动教学法。文章介绍了各种教学方法的操作步骤,这些教学方法在教学实践中降低了学生学习操作系统理论知识的难度,增强了学生的学习主动性,提高了学生学习的兴趣,取得了很好的教学效果。

关键词: 操作系统; 实物展示教学法; 溯源教学法; 操作引导教学法; 启发式教学法; 任务驱动教学法

中图分类号:G642          文献标识码:A     文章编号:1006-8228(2020)12-97-04

Abstract: In view of the current situation that the traditional teaching methods are not suitable for the teaching of "Operating System" course, this paper proposes the physical display teaching method, traceability teaching method, operation guidance teaching method, deepened heuristic teaching method, task-driven teaching method, and the operation steps of each teaching method are introduced. With these teaching methods, the difficulty of learning the theoretical knowledge of the operating system is reduced, the learning initiative of the students is enhanced, and the interest of students is increased, to have achieved a very good teaching result.

Key words: operating system; physical display teaching method; traceability teaching method; operation guidance teaching method; heuristic teaching method; task-driven teaching method

0 引言

操作系統是计算机系统中最重要的核心软件,它管理着计算机系统的软硬件资源,组织各种资源合理利用,为用户提供服务。操作系统是国家的基础设施,各国政府和各国企业都在努力设计、开发、推广自己的操作系统,它是大国竞争的利器。

“操作系统”课程是计算机相关专业的一门基础理论课程[1],主要介绍操作系统的基本原理和实现技术[2-3],帮助学生理解计算机系统深层次理论和整体架构,为学生以后的学习、工作和研究打下基础[4]。为了推动操作系统产业的进步和提高学生的专业水平,“操作系统”课程授课老师,需要不断完善教学方法,提高教学效率和教学质量。

1 “操作系统”课程教学现状

“操作系统”课程理论性强、内容繁多、概念抽象、原理复杂、理解困难[5]。传统教学模式一般采用集中“灌输式”的课堂授课、以知识讲解为主,老师在教学过程中强调以课堂为中心,以教师为中心,以教材为中心,即所谓“三中心”,教师教什么学生就学什么[6],在这个过程中,知识的传授是单向的,讲授形式单一枯燥,忽视了学生积极性、主动性的发挥,学生被置于被动地位,学生无法真正地了解操作系统的内部运作机理,只能机械地记忆。老师以理论讲授为主,很少在课堂上“阅读源代码和编写代码”,学生只听讲概念,不知道概念背后真实的代码和真实的产品。这样的教学现状,自然教学效果不理想,毕业生与企业的期望有不少距离。

本文打破传统的教学模式,提出实物展示教学法、溯源教学法、操作引导教学法并深化启发式教学法、任务驱动教学法,创新地建立一套“操作系统”课程教学模式,从而提高教学效果。

2 课程教学方法探讨与实践

2.1 实物展示教学法

“操作系统”是一门十分抽象的课程,设备名称非常多,例如CPU、内存、硬盘、主板、显卡等等。传统的教学模式,老师在课堂上讲CPU、内存等等设备时,一般是口述这些名词,偶尔会在PPT上展示一些设备的图片,学生只知道这些名称概念,不知道具体实物,没有直观的感受。

实物展示教学法是老师携带CPU、内存条、磁盘、显卡、主板等设备到课堂,在讲课时给学生展示,让学生亲手拿着CPU、内存条、磁盘、显卡、主板等详细地看,课程气氛活跃,学生好奇心被激发,学生不再凭空想象这些设备,而是实实在在地看着和摸着这些设备。比如在讲授“操作系统”概述时,把所有这些设备带到课堂,然后展示这些设备,并提出问题,例如“哪个是内存条”、“哪个是CPU”、“哪个是磁盘”、“哪个是显卡”、“哪个是主板”、“内存条和磁盘的区别是什么”、“大家指出哪个设备掉电后还能保存数据”等等,让学生直观形象地学习这些设备概念。

一般来说,老师在讲授某一章节时,就带着与这一章节相关联的设备,然后在课堂上展示和讲解。

通过实物展示教学法,可以让学生深刻理解课本上的设备名称,避免计算机专业毕业生“不认识CPU、不认识内存条、不认识磁盘”等尴尬现象,同时降低了学生学习设备名词的难度,激发了学生学习的兴趣。

2.2 溯源教学法

溯源教学法是把知识的来源介绍给学生,让学生知道教材上学习的知识是从哪里来的,带领学生阅读原始的资料,引导学生理解理论知识点抽象的过程。在传统的教学模式中,老师一般在PPT上展示理论的逻辑图,至于逻辑图是从哪里抽象出来的,一般不做解释。溯源教学法按照“教材→知识原始资料→教材→知识原始资料→……”的思路进行教学,解释了“知识从哪里来、又用于何处”的问题,让学生知其然,也知其所以然,让学生更加深刻地理解教材中的理论知识。

本小节介绍两种操作系统课程的知识来源:Linux内核源代码和Intel/AMD等硬件产商的产品帮助手册。Linux操作系统的内核是开源的,每个人都可以免费获取源代码。为了理解操作系统的原理,老师带领学生阅读Linux内核源代码,比如讲到“进程”这一章时,老师可以在课堂上带领学生阅读task_struct结构体,并解释task_struct结构体中state、mm、pid、fs、files等重要域的含义,让学生既能看懂教材中的抽象逻辑图,又能看到真实的内核代码,还可以回顾以前学习过的C语言知识,让学生体会到“原来教材中的知识点就是把内核的具体代码抽象成理论来的”。

在講到“内存分页管理”章节时,老师打开Intel的帮助手册《Intel? 64 and IA-32 Architectures Software Developer Manuals》,找到Intel技术文档中关于内存分页管理的位置,引领学生阅读其中重要的图例。由于教材把内存分页管理描述得很抽象,一般配置了几张抽象逻辑图,难以理解,而在溯源教学法中,老师带领学生阅读Intel官方的技术文档,可以让学生找到教材的逻辑图背后的真实的CPU设计。由于Intel官方技术文档十分详细,如果一些同学想要更深入学习和理解CPU管理的细节,那么他们可以更细致地来阅读这些文档。

由上述案例可知,溯源教学法不仅把知识的结果告诉学生,也把知识的来源告诉学生。溯源教学法要求老师不仅知道教材内容,还要知道教材知识的来源之处。溯源教学法能够让理论知识“接地气”,教会了学生知识,也教会了学生学习的方法,即:学习教材→寻找知识的源头→学习教材→……,或者,理论→真实代码、真实产品→理论→……,实现了“授人以鱼不如授人以渔”的教学理念,学生可以根据这样的学习方法,继续深入研究这些知识。溯源教学法让学生接触了产业界,拓宽学生的眼界,使得书本理论和企业生产产生联系,巧妙地解决了当前“学校教育与企业需求存在一定脱钩”的困境;再者,溯源教学法可以活跃课堂气氛,与学生今后就业关联起来了,从而提高学生学习兴趣,增强学生学习主动性,然后达到提高教学质量的目标。

2.3 操作引导教学法

传统教学法一般以“口述”为主,很少动手操作演示,从口述到口述。目前的实验课中老师也很少亲自动手带领学生写代码。这样的教学方式,学生难以入门,只知道概念,动手能力差,对知识理解不深刻。操作引导教学法,老师亲自操作来引导学生动手做实验,能够帮助学生迅速入门。这样的教学法能够增强学生学习信心,培养学生学习兴趣。操作引导教学法分为两种:命令操作和完整的程序操作。

操作引导教学法中命令操作,是老师在课堂上把命令输入,能够立刻看到命令运行后的结果,避免了纯粹的口述,让学生马上学习命令的功能以及使用方法。例如,老师在课堂上输入命令ls、cp、chmod、pwd、cd等等命令,让学生不仅看到这些命令的运行结果,而且还能学会命令的输入方法和使用语法。

操作引导教学法中的完整程序操作,老师在课堂上现场编写程序,这样能够迅速吸引学生的注意力,接着,老师带领学生编译链接程序,编译链接过程中如果有错误和警告,领带学生分析“错误和警告”发生的原因,然后修改代码,再次编译链接,最后运行程序,观察结果。这种教学法,能够快速引导学生入门,避免学生“上完半学期课程还不会动手做实验”的尴尬,与传统的实验课模式非常不同,这样的教学法主动引导学生学习,增强学生对老师的信任,打消学生对老师“光说不练、会说不会做”的质疑,拉近学生跟老师的距离,让学生从内心更加佩服老师。老师在传授知识的同时教会了学生“良好的编程规范和职业习惯”,课本知识、职业知识并进,拉近了课堂教学和企业需求之间的距离。比如,老师在讲授进程时,带领学生编写一个调用fork等函数的完整的程序。除了写程序,也要写清楚各种注释,比如作者、时间、功能描述、版权等等,使得整个程序符合编程规范。老师根据学生的学习进度适时地让学生独立完成程序。这样可以让学生迅速学会使用fork等函数,理解进程的概念,同时提高了动手能力。

操作引导教学法实践了“教与做相结合”的教育理念,也贯穿着“实践→理论→实践→……”的哲学,避免了“一说到底”的教学模式。只要能够巧妙设计与教学内容相匹配的操作命令、程序,然后在课堂上操作,就能降低学生动手操作的难度,对帮助学生理解和掌握知识点有很大作用,增强学生学习的信心,提高学习兴趣。操作引导教学法对授课老师提出了更高的要求。

2.4 启发式教学法

以教师为主体的教学模式不易调动学生的积极性。启发式教学法,充分考虑教学的本质,强调以学生为学习的主体[6],老师在教学过程中,充当引导者的角色,巧妙恰当地为学生创建问题情境,让学生发现问题,试图找到解决问题的方法,在强调系统性学习知识的同时,培养学生的独立思考能力[4,7],从而激发学生内在的学习动力,提高其自学能力。本节分析启发式教学法的两种实现方式:生活实例启发式教学法和程序实例启发式教学法。

生活实例启发式教学法,是指利用生活中的实际事情,设计出各种问题,启发学生来思考解决问题的方法。由于这样的事例就是学生身边的,学生感到熟悉,同时这些事例在现实生活中已经有了正确的答案,因此难度也很一般,学生容易找到解决问题的方案,这样可以提高学生的学习信心。接着,老师将这些问题引导到计算机理论原理,用生活实例来帮助学生理解计算机复杂的概念和理论。

程序实例启发式教学法,需要巧妙地设计程序,然后在课堂上编译、运行程序,用程序运行结果来引导学生思考问题。在讲授新内容时,老师课前设计好程序,然后在课堂上阅读、编译链接这个程序。在运行程序前,老师向学生提问,这个程序运行的结果是什么,启发学生独立思考。然后,课堂现场运行程序,展示运行结果。需向学生提出问题“为什么是这样的结果?”,选择几位同学回答。这样的教学法可以迅速抓住学生的注意力,整节课都是为了“解释程序运行结果”,这样的课堂是有目的性的,有很强的针对性,可以提高学生的学习兴趣,把这个知识点在学生脑海中形成深刻的印象。例如,在讲授“存储管理”章节时,“逻辑地址”和“物理地址”是难以区分的概念。在讲授原理前,编写两个程序,分别为pro1.c和pro2.c,如表1所示。

如分别编译、连接和运行两个程序,结果如图1和图2所示。向学生提出问题“发现什么问题了吗”。接着引导学生看实验现象,pro1中的变量num与pro2中的变量num的地址都是0x7000004,为什么它们的值是不一样的;pro1中的main函数与pro2中的main函数的地址都是0x60000ed,为什么它们运行的代码不一样,然后带着这些启发式问题来讲授物理地址和逻辑地址的概念。

由上述案例可知,只要能够合理地设计生活事例和程序实例,启发式教学法既能联系社会生活,又能联系计算机编程,能够活跃课堂氛围,极大地吸引学生注意力,培养学生的独立思考能力,激发学生学习的能动性,提高教学效果。

2.5 任务驱动教学法

任务驱动教学方法是老师把教学内容设计成一个或多个具体的任务,让学生通过完成这些任务来掌握教学内容,以达到教学目标[8]。传统的教学模式下,老师把教学内容拆分为一个一个知识点,然后依次讲授每个知识点,是以“知识点”为中心。任务驱动教学法打破了传统教学方法中的注重学习的循序渐进和积累的模式,而是以“任务”为中心,学生为实现任务目标而努力学习。这种教学模式以“任务”为目标导向,具有很强的综合性。

为了实现任务,学生用到的知识来源于:①已经学习的知识点;②还未学习的知识点;③已经学习的知识点的创新思想。通过三种不同来源的知识达到三个不同的教学目标:①复习和巩固已经学习的知识点,把各个知识点联系起来,理清它们之间的逻辑关系,然后把理论知识应用于实际工作任务中;②寻找未学习的新知识,方法包括使用网络搜索引擎、请教老师和查看论文等等,让学生熟练掌握寻找知识的常用途径,增强学生自学能力;③培养学生对知识的活学活用的能力,开拓新思维,产生对知识新的认识和理解,进而增强创新能力,并掌握一套创新方法,为以后工作和深造打下坚实的基础。

3 结束语

操作系统是一门抽象的课程,要充分发挥老师在实践教学中的优势,切实做好理论和实践相结合的教学方法。针对不同的教学知识,在不同的教学阶段,恰当地使用本文的新教学方法,在教学实践中有效地调动了学生学习的主动性,收到了很好的教学效果。我们还需要继续探索操作系统课程的建设方案,设计更好的启发式代码实例和更好的完整的程序实例,以更好地为学生、为企业、为社会服务。

参考文献(References):

[1] 李莉.操作系统课程教学方法的探索[J].金陵科技学院学报,2010.1:27-30

[2] 马晓慧.操作系统课程教学方法探索[J].计算机教育,2011.3:75-77

[3] 滕艳平,王海珍,潘海珠.高校操作系统课程教学创新模式的研究与实践[J].计算机教育,2009.7:102

[4] 王知非,罗秋滨,石研.操作系统课程教学与学生能力培养[J].计算机教育,2008.14:73

[5] 李凌云,田生文.操作系統课程多元化教学方法探讨[J].中国现代教育装备,2019.1:47-48,54

[6] 赵静文,刘翔,石蕴玉等.操作系统课程启发式教学方法探索[J].教育教学论坛,2020.10:240-241

[7] 李景峰,刘伟,郝耀辉等.操作系统课程的启发式教学研究与探讨[J].计算机教育,2010.8:93-96

[8] 黄泽伟,黎兵.“任务式”教学法在Linux操作系统教学中的应用探讨[J].重庆电力高等专科学校学报,2007.3:58-61

猜你喜欢

启发式教学法操作系统任务驱动教学法
智能手机操作系统的分析与比较
国产桌面操作系统中虚拟化技术应用研究
任务驱动教学法在军械士官大专“机械基础”课程中的具体实施
项目教学法在建设项目LCM课程实训中的创新应用
任务驱动教学法在C 语言教学中的应用研究
启发式教学在“维医五官科学”教学中的运用
高校声乐教学应用启发式教学法的分析