首页 > 范文大全 > 正文

操作系统原理课程关联教学方法研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇操作系统原理课程关联教学方法研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:针对操作系统原理课程教学困难的状况,分析该课程授课过程中的主要问题及出现原因,提出基于联想方式的关联教学方法,将整个计算机系统看作完整的社会体系,加强与其他学科的交叉与联系,加强与实验之间的具体关联与对应,从开发者角度加强编程与系统原理的联系,同时给出具体实例并加以阐述。

关键词:操作系统原理;关联法;交叉学习;联想教学;教学改革

1 背景

操作系统是一系列非常复杂的程序,该课程以概念抽象、知识点多而杂、逻辑层次发散为特点,因此教授该课程是一项具有挑战性的任务。很多学生在学习该课程时还未掌握相关的编程方法和硬件知识,在学习计算机操作系统内核程序时感觉十分困难。教授该课程的老师也常常陷入操作系统庞大的理论体系中,无法给出一条能贯穿整个系统的主线。许多学生在学习该课程后都不约而同地感到疑惑:计算机操作系统原理到底是在学什么?与其他课程有什么样的关系?每一部分学习结束之后如何与前一章节的知识点连贯起来?实验与教授的内容为什么难以一一对应?很多教师也都在研究如何改进该课程的教学方法,或者想办法改进实验内容及设施,这些文献从不同角度分析了传统教学模式的不足。目前的操作系统原理课程及实验内容与实际教学确实存在较多问题。

2 存在的主要问题及原因剖析

排除教师教授方法僵化、教学手段单一、实验设备陈旧等原因,我们从课程本身分析该课程的特点与难点。

2.1 课程及实验难度较大

该课程概念多、原理性强、抽象度高,学生理解起来困难;课程基础和原理性的知识居多,几乎占全部内容的70%,且重点内容和知识点分散,难以发现各概念间的内在逻辑关系。另外,操作系统自身是复杂的程序集,所涉及的实验理解和设计都有难度。

2.2 教学内容与实验无法有效关联

对于学生来说,实验和课堂内容无法有效关联,很多重点知识没有提供实验,而内容很少的部分却提供了较多的验证实验,具体情况如下:(1)有关内存管理和设备管理的实验很少或者基本没有;(2)实验多为验证性质,设计性实验数量少且较难;(3)课程学习的是各操作系统的共性问题,而具体操作系统的实验与教学内容无法一一对应;(4)操作系统与硬件紧密相关,但实验往往与硬件关联不大或难以实现。

综上可知实验内容的选择和安排至关重要,太难和太简单都不能达到学习操作系统原理的目的。国内外教师都意识到了这个问题,因此,针对实验平台和实验内容提出了一些相应的解决办法。

2.3 学生先导经验不足

先导课程开设不合理,以至于学生开发经验及硬件相关知识薄弱。另外,学生在学习该课程时,没有实现从人类思维向计算机编程思维转换。

2.4 课程内容与其他课程脱节。未能利用其他学科范例触类旁通

有些课程与操作系统课程内容联系紧密,同样的内容,会以不同角度、不同方式重现,但学生在学习时却没有把其他学科范例关联和利用起来。

2.5 考试内容与应用相对脱离

考试注重概念和原理,往往与实际应用脱离,导致学生学习重点偏移,不注重实践,对知识点的掌握流于死记硬背。

2.6 思维方式僵化,教课和学习方法不够开放

操作系统本身就是社会现象的一种浓缩和提升,是对资源的管理和分配过程,因此和社会现象以及现代管理学都能够联系起来。目前学生对该课程的学习多数采用各类模拟题进行训练,没有掌握本质,考题的方式稍微变化就无法回答,说明学生的思考能力和关联能力较弱,知识掌握得太死。

3 课程改革研究现状

自从2011年教育部关于国家精品开放课程建设的实施意见后,操作系统原理课程进入精品课程建设行列,各大学校都开始了该课程的精品课程建设工作,在教学课件、教学方法、实验平台方面做了大量工作,起到很好的示范作用,很多教师针对目前存在的弊端,从实验和教学两个角度给出了一些解决方案,一些学校为了给学生搭建更好的实践环境,甚至为学生提供了远程虚拟实验室。远程虚拟实验平台的好处显而易见,但其局限性是实验均为验证已经编好的程序,如果想更好地理解操作系统原理的实际过程,最好的方法还是动手编写相关的内核程序。

相对国内来说,国外更关注扩展教学实践范围,例如合理地进行实验内容的设计以及选取不同的实验平台。文献[8]设计并阐述了如何基于Android平台进行操作系统实验设计;文献[9]和文献[10]分别设计了基于实验的操作系统系统管理和调度的教学模式。

国内一些教师从学生学习的角度提出了一系列教学改革方法,如文献[2]探讨了以计算机思维为主体的操作系统教学改革方法;文献[3]提出了基于学生自主学习模式、互动式理论学习的教学方法改革。还有一部分教师关注教材建设和实验内容的建设,如文献[4]从操作系统课程内容角度提出了课程、实验的改革方案,强调教材建设与教学建设同等重要;文献[5]从操作系统的教学、实验等方面探讨了操作系统课程的理论与实践教学。很多教师还关注教学方法和学习理论的提高与改进,如文献[6]、文献[7]从课程内容体系的组建、教学方法、教学手段的改进、实践教学环节的合理制定等方面提出了课程教学改革的基本构想;文献[11]探讨了行为、认知、建构和人本主义4种不同的学习理论并应用于操作系统教学。

综上所述,操作系统原理课程自身难度无法克服,好的教材能起到推波助澜的作用,更需要授课老师知识的积累,因此,采用合理教学方法尤为重要,只有以人为本,充分发挥教师的作用,才能够事半功倍。由于客观原因,所有的学生都接触到名师的可能性不大,而一套合理高明的教学方法是每个普通教师都能掌握的,好的教学方法关注的是授课质量的提高,因此即使教材和实验设备仍具有客观现实制约,采用关联教学法也必将最大程度地调动学生的积极性,引导学生自主学习,提高自身的学习能力。

4 关联教学法

一个好的教学方法,不仅会让学生理解操作系统原理基础及内在机制,而且能使他们掌握关键的软件工程技能。

关联教学综合利用类比教学、联想教学方法,教学生以开发者思维学习操作系统,调动一切因素,将整个操作系统原理课程串联起来,形成一个有机的、不可分割的完整体系,而不是惯例教学中,直接根据操作系统功能将该课程主要内容分成几大模块,每个模块中又划分成小模块来讲授。操作系统概念分散的特点决定了教授过程更注重加强各知识联系而不是割裂他们,例如想尽办法将高内聚低耦合的各知识模块变成高内聚高耦合的方式。

关联教学的关键在于把知识点关联起来,根据知识点的不同,考虑不同的关联方式和关联范围。基本的知识关联可以划分为树状、串状、圈状、网状关联结构。

4.1 关联教学方法要点

操作系统原理知识结构体系使用关联教学方法要点见图1,需做到以下几点:

(1)注重学生关联思维方式的训练。

(2)引导学生换位思考,站在不同的角度学习(如开发者、使用者、管理者),不同角色关注的内容不同。

(3)提供Linux、Windows、Android或简化操作系统实验平台,将通用功能与具体应用对应起来。

(4)改变实验、课程的教学步骤,让学生自己找到问题,而不是让老师找问题问学生。经过验证,我们发现验证性实验学习方式效果比较好,教师先演示不解释,再让学生自己运行及修改,教师再提问并运行,学生再提问,教师再解释。

(5)注重实验与程序设计之间的关联。计算机编程是理解操作系统的重要途径,建议教师提供系统编程项目、操作系统模拟实验平台、教学操作系统以及商业操作系统的内核开发等实践环节。

(6)注重参考资料的查找与关联,引导学生掌握检索参考资料的能力,例如关于进程调度的一些算法可以参考数据结构的算法,内存管理等硬件知识可以参考计算机组成原理等内容。

(7)注重前后知识点的关联,依靠对比、联系、模拟等方法不断把新旧知识连接起来。

(8)加强硬件和软件的联系。操作系统本身就是为了管理计算机硬件而设计的,如果用一条主线可以将操作系统原理这个庞大的计算机体系穿起来的话,这条主线就是计算机各部分的组成。

4.2 关联思维方式的引导

更好的学习操作系统的方法就是站在一个操作系统内核设计开发者的角度去理解每个知识。

(1)与社会现象相联系的概念与算法。可以根据生活场景启发学生自主举例,由图1自主关联,最终串联所有知识点。例如,可以把CPU理解为决策者,操作系统理解为管家,管理包括软件和硬件在内的整个计算机体系,而整个计算机体系是个多层社会体系,软件可以关联运输调度、交通、各职能部门、社会结构、社会分级体系等,计算机硬件可以关联道路、房屋、仓库、土地、车辆等。

(2)与软件开发及软件工程相联系。折中与提高效率是有限资源分配与共享的共性问题,比如程序设计中的时间换空间、空间换时间的编程思维、控制理论中的次优控制、保成本控制都是对资源的一种均衡。因此,首先引导学生站在开发者、设计者的角度来学习,明确资源有限的前提,明确操作系统程序设计是对有限资源合理管理的原则。例如,程序开发中的变量申请、内存动态申请与操作系统中的内存管理是息息相关的。此外,操作系统程序本身是符合软件工程的开发与设计理念的,软件工程的思想可以在这里得到验证。

(3)学科交叉点概念关联。相关学科总会有些重复的知识点,不同学科具有不同的提法和不同的授课角度,如果教师能够在授课的时候从不同角度讲解,则对各门课的融会贯通大有裨益。例如,学生在使用Windows操作系统进行应用管理时,会涉及很多文件系统的概念,如分区、格式化、扇区、簇等;学习内存管理的离散管理方式时涉及的硬件知识和计算机组成原理具有相同的内容但表述不同。

(4)课堂内容与实验知识点进行关联。需要教师对具体的命令、调用、过程等与教材知识点进行关联引导。

(5)新旧知识点之间进行关联。新知识和旧知识的关联是衔接整个操作系统原理的关键,很多同学都无法将新旧知识点进行有效关联,似乎学了新知识就忘了旧知识。

(6)CPU执行与硬件支持的关联。教师要向学生讲授哪些是干活的人(即程序),哪些是放东西的地方(内存、外存、寄存器)。

(7)Windows设置与硬件及操作系统接口之间的关联。需要分清哪些是图形接口,哪些是程序接口、命令接口。

(8)垃圾回收体系与设备回收、资源回收的关联。这与编程的资源回收相似。

5 操作系统关联教学法举例

以Linux操作系统实验“进程的创建与控制”为例,利用系统调用forkO等方法创建、控制、退出进程。本实验对习惯采用双击Windows图标或者键人Dos命令来启动一个进程的学生来说,理解起来有一定难度,原因之一是学生没有直观看到forkO方法创建的进程,其二是程序调用多个forkO时,学生无法理解创建的子进程和孙子进程之间的关系。

理解forkO命令有“两个相同一个不同”。第一个相同是共享代码一模一样,第二个相同是执行的进度一样;一个不同即代表收到的返回值不同,相当于一段程序同时执行了两次,代码相同:可是数据区不同。仅仅用语言描述这个问题显得很抽象,如加上关联知识和一些形象化手段可以起到事半功倍的效果。

利用上节提供的关联学习方法形成思维导图,参见图2,我们对该知识点做如下扩展:

(1)找出需要理解的重点内容,包括进程与进程之间的关系(父子进程、兄弟进程),包括创建过程与退出程序关系(孤儿进程、僵死状态)。

(2)找出需要理解的概念及关联概念,如进程、进程控制块、线程、运行队列、就绪队列、阻塞队列、进程变迁、系统调用、进程优先级、多道程序设计、调度、中断、进程的状态。

(3)帮助学生将关键概念与熟悉的社会现象关联,比如什么是进程和线程。进程可以理解为完成不同工作的小组,每一组都是一个进程,目的是完成不同的任务,有独立的办公室和办公设备等。线程可以理解为每一组里面的成员,成员可以独立工作但是要和组里其他成员共享办公室和办公设备。成员和成员之间的交流比较容易,因为都在一个办公室里,而组与组之间的通信则需要一些交换手段,如电话、网络、访问等。进程的创建可以理解为在厨房做菜,父进程相当于在厨房照菜谱做菜,创建子进程相当于按照同一个菜谱在另一个厨房做菜,而父进程做到哪个阶段(如刚切好菜),子进程也做到相应的阶段;大家都按照相同的菜谱(相同程序区),在不同的厨房(数据空间独立>做菜,有各自代号(PID)。

(4)采用图形或者路线图方式表达(关联程序流图、框图、示意图等),帮助学生迅速抓住重点并理解要掌握的内容。

(5)关联其他学科相同知识点,包括计算机组成原理、C语言程序设计、软件工程、Linux和数据结构。例如与面向对象程序设计的继承与派生现象进行对比,forkO后的子进程完全继承了父进程的特征,并能“派生”,即用exectO调用其他进程或者根据forkO返回值创建其他代码,区别是forkO后父子进程是动态的,而继承与派生是静态的。

(6)章节内部关联,包括多道程序设计、进程的提出、进程调度、进程同步。

(7)关联的其他实验或外部章节,包括进程间的通信、进程间的制约关系、进程调度(时间片、先进先出等)。

(8)关联硬件,如CPU(处理器相关概念,包括硬件型号、关键参数、指标、指令集、运算能力、数据传输能力等)、内存、主板、总线、插槽、寄存器。

(9)进程的描述信息及相关命令。描述信息包括PID、PPID等,相关命令包括ps、pstree、top等。

(10)关联的系统调用,如forkO、execO、exitO、getpidO等,以及Windows系统下API函数调用、CreatProcessO等。

可以看出,进程的管理涉及的知识点较多,即使做了实验,进程的运行过程还是难以理解,而采用关联教学方法则能够对问题进行多层次多角度阐述,这要求教师不仅要教授本门课程,还要尽量找到本门课程和其他课程的相关联系,引导学生自己寻找发现本门课程与其他课程千丝万缕的联系,从而既知道自己为什么要学习本门课程,又知道从哪些方面人手提高学习能力。

6 结语

本方法的主要特点是教学生动形象,各章节联系紧密,易于整个课程内容的融会贯通,其核心是加强学生关联思维能力的训练。经过课堂实践,该教学能有效克服教材和实验设备带来的客观制约,采用关联教学法也最大程度地调动了学生积极性,引导学生自主关联学习,从而促进学生提高自身的学习和消化能力,并且能够触类旁通,进而将该能力推广到其他课程的学习中去。

参考文献:

[1]Nieh J,Vaill C. Experiences teaching operating systems using virtual platforms and linux[J]. ACM SIGCSE Bulletin, 2005, 37(1):520-524.

[2]梁正平,李炎然,王志强.计算思维导向的操作系统课程教学改革[J].计算机教育,2012(19):31-34.

[3]李佳静,徐惠,朱红.“操作系统原理”课程学生自主学习模式初探[J].科技创新导报,2012(6):145-145.

[4]蒲晓蓉,陆庆,耿技.改革操作系统课程设置强化学生的基础知识[J].电子科技大学学报,2002,4(2):99-100.

[5]叶俊民,喻莹,李源,等.“操作系统原理”理论与实践课教学研究[J].计算机教育,2009(15):73-74.

[6]陈红叶.操作系统原理开放性实践教学[J].实验室研究与探索,2009,28(12):80-82.

[7]付沙.操作系统原理课程教学改革与实践[J]。中国管理信息化,2010(21):69-71.

[8]Andros J, Nieh J.Teaching operating systems using android[C]//Proceedings of the 43rd ACM technical symposium on Computer Science Education. New York: ACM, 2012: 613-618.

[9]Davoli R. Teaching operating systems administration with user mode linux[J]. ACM SIGCSE Bulletin, 2004, 36(3): 112-116.

[10]Cohen S. Teaching Operating Systems Scheduling[C]//Proceedings of informing Science and IT Education Conference.Cassino: Informing Science Institute, 2010: 609-619.

[11]李玺,胡志刚,杨柳.学习理论指导下的操作系统原理教学[J].计算机教育,2011(21):95-97.