操作系统课程在应用型本科高校的教学改革与实践
摘 要:本文通过分析“操作系统”课程的教学现状,结合笔者在应用型本科高校进行该课程教学和改革的一些体会,提出了教学过程中全局观的建立,探讨了体验式教学法的具体措施,改革了当前教学活动中的薄弱环节。
关键词:操作系统;全局观;教学
中图分类号:TP316.7 文献标识码:A
1 引言(Introduction)
操作系统是计算机系统中的重要系统软件,它是计算机系统中软硬件资源的管理者,用户与计算机硬件的接口,操作系统在计算机系统中有如☿此重要的地位,使得该课程成为计算机科学与技术及相关专业的专业必修课。通过该课程的学习,可以使学生理解计算机系统工作原理、了解操作系统的结构与实现技术、初步具备系统软件开发技能,为后续相关课程的学习奠定基础,为将来从事各种研发工作提供必要的理论基础和技术准备。
操作系统课程是在先修了程序设计语言、数据结构、计算机组成原理等专业课后开设的课程,因此要求学生能在扎实的基本功上开始本课程的学习。但操作系统所包含的内容广泛、概念抽象而庞杂、专业集成度高,知识点和原理的讲授显得比较枯燥。而且操作系统在长期的发展过程中,出现了多种策略和算法,在课堂上要讲解这些处理机制所依据的技术条件及其优劣,如果教师只是简单地把教学内容灌输给学生,将很难激发学生的学习兴趣和学习主动性[1]。
另外,操作系统课程的学习要求学生有较强的抽象思维能力,有深厚的程序语言功底、扎实的数据结构基础和一定的硬件基础知识,学生在知识基础不完备、缺乏系统性学习的情况下难免有畏难情绪。如果在教学过程中不注意理论与实际的结合,会使大部分学生对操作系统的学习只是停留在理论层面上。即使布置了上机实践内容,由于运行结果不像其他程序设计语言或应用软件能够有立竿见影的效果,学生会片面地认为这门课就是理论课,只需要记忆术语和解决机制就行了,不需要深刻理解,就算学好了也没有用处。最终这门主干课程变成了最“无用”的课程。
2 以全局观思想为主线展开教学(Teaching with
tชhe overall viewpoint)
操作系统课程的前导专业课有C语言、计算机组成原理和数据结构,本课程还与计算机网络、Java程序设计、编译原理、数据库等课程有着密切的联系[2,3],因此操作系统课程是计算机及相关专业非常重要的“承上启下”的课程,在教学过程中必须以“大课程观”的思路与其他专业基础课的内容和知识相结合。在各章节涉及到相应部件的硬件知识时应融合计算机组成原理课程的知识;在介绍存储管理中程序的编译链接时应结合编译原理课程的知识;在介绍进程同步互斥、死锁等内容时要结合数据库原理、计算机网络的相关概念,通过这种联系将多门专业基础课程有机地贯通起来,不仅使本课程的教学不再枯燥,也体现本课程的“有用性”,有效地促进了整个专业理论体系的完善。
操作系统课程分为处理器管理子系统、存储器管理子系统、设备管理子系统、文件管理子系统[4],在教学中强调模块化设计思想,以软件工程的观点训练学生将大型软件划分为若干较小的模块,再对各模块进行需求分析和功能设计,使学生提前接受软件工程课程的基本知识。
抓住“大课程观”这根主线后,在展开教学的时候引导学生纲举目张的学习。“纲”就是操作系统是计算机软硬件资源的管理者,“目”就是处理机、存储器、外设、文件这些具体对象的管理,作为管理者要考虑如何有效地管理使得内部协调推进,还要考虑与外部进程安全而有效地联系。各部件之间是相互关联的,构♪成一个有机的整体,教师应该引导学生沿着一条主线系统而不是孤立、盲目地学习。
3 体验式教学方法的实践(The practice of
experiential pedagogy)
在操作系统课程的教学过程中,如何让枯燥的理论焕发出它本质的魅力,既调动学生的学习兴趣,又兼顾知识体系的融合性,这就要求任课教师注意授课技巧。
通过在应用型本科院校的实践,总结出一套体验式教学方法。具体就是,教师在介绍理论之前,首先以生活中的事件为载体,以生动的、形象的、学生愿意参与讨论的案例为背景,吸引学生思考,积极探讨并提出多种解决方案,然后比较各方案的优缺点,讨论是否还有更优的方案、是否照顾到各类用户的需要。
以调度算法为例,设置医院这种生活化的场景,将病人比喻为进程,当多个进程到达时,作为院方最简单的解决方案是先来先服务。然后引导学生展开讨论:如果是急病或慢性病怎么处理?如果用户只是来开药不需要看医生也要等那么长时间吗?这时候再抛出教材上的短进程优先、多级反馈队列等算法,由于学生首先站在有感知问题的角度看问题,已经有了生活的体验,这时再从具体到抽象,比起一开始就介绍空洞的理论,学生更容易理解和接受,而且由于参与了讨论,激发了学生学习兴趣,更促进了研究性学习的氛围。在研究完进程调度算法后,任课教师可以继续带动学生展开讨论,正如人们到银行办业务、到火车站买票一样,只要人多必然要排队。同理,系统中只要有多个进程竞争资源就要构造不同的队列,操作系统为了保证其有效性,提出了各种调度算法,在后续章节研究置换算法、磁盘调度算法等问题时还会遇到相似策略,学生可以举一反三地学习。通过这种点、面相结合的教学,帮助学生理解各知识点是相关联的,不能割裂地、孤立地学习,要有全局观。
其实,操作系统中的许多经典算法和原理都和人们现实生活中的行为相类似,或者说这门课程更像是管理学。将生活中的现实问题与操作系统的原理关联起来,就能够加深学生对原理的理解。在该课程其余原理的教学中,可以结合等公共汽车、电视选秀节目这些学生感兴趣的例子进行类比,将已知知识抽象、升华为操作系统知识,不断提高学生的理解力和解决问题的能力。
4 突破教材的局限(Breakthrough the limitation of the textbooks )
教材的内容总是高度理论化的,而且滞后于当前技术的发展。因此教师在教学过程中要能够突破课本,带动学生进行探究性学习。例如在介绍设备管理的磁盘调度问题时,可以拿一块硬盘实物给学生看,讲解机械硬盘的寻道时间和旋转延迟时间是如何产生的。再进行知识拓展,介绍目前正在推广使用的固态硬盘,由于其基于闪存或基于DRAM等存储介质,使得它具有存储速度快、抗摔性能强、低功耗、无噪音等特点,但也带来容量小、寿命短、价格贵的♥问题,引导学生结合计算机组成原理课程的有关硬件知识,研究比较两类硬盘的性能参数,比较两者在调度算法、缓冲技术上可以采用哪些不同的技术,使学生不仅可以了解目前操作系统发展的动态,而且可以激发学生继续探究和学习的兴趣。
教材涉及的算法较多,以内存管理为例,介绍了首次适应、最佳适应、最坏适应等分区分配算法,也提到了快速分配算法和伙伴系统,这些算法教材只给出了设计思路,没有详细的代码。教学中,教师可以通过课堂演示或上机实践的环节,使学生能够通过观察实验结果,真正了解各算法的优缺点,弥补教材叙述的不足。
另外,还可通过建设动态教学网站,利用网络课件、网络作业、网络资料库等教材外的资源。教师可以提供一些电子资源的链接、上传一些电子书,以及当前最新研究成果,丰富教学内容,拓展学生的视野,提供学生课后学习的可能性。
5 结论(Conclusion)
操作系统课程的基本原理枯糙而抽象,学生理解起来比较困难,为了提高教学效果,我们在授课过程中尝试多种教学策略,将课程中的重点和难点与生活化的事例进行类比,通过这些与学生生活相关的实例讲解延伸到抽象理论的介绍,使学生易于理解。同时注重与其他专业课程知识的关联和衔接,既使得本课程的教学具有事半功倍的作用,而且锻炼了学生计算思维的能力,锻炼学生创新思维、分析问题、解决问题、评价问题解决方案的能力,并尝试提出更优的解决方案。这些教学尝试在实际教学的实践中,确实起到▲了良好的效果,值得在应用型本科高校中继续实践下去。