理论与实践相融合的“操作系统原理”课程教学研究
2017-11-27徐向英
徐向英
摘 要 针对操作系统课程理论和实践环节联系松散的问题,笔者探索了理论和实践相融合的教学方法。提出在理论授课时进行实践引导、理论教学与实验任务相关联、注重实践问题反馈以及多课程知识融合等方案。
关键词 操作系统原理 教学方法 理论与实践相融合
中图分类号:G424 文献标识码:A DOI:10.16400/j.cnki.kjdkx.2017.10.049
1 课程教学现状
随着我国高等工程教育改革的持续推进,强化培养学生的工程能力和创新能力日益成为高等院校教学改革的重中之重。尤其是电子、自动化、计算机等工科类专业,提高学生的实践能力和解决复杂工程问题的能力是适应信息化社会发展、建设创新型国家和新型工业化强国的人才培养方向。“操作系统原理”课程作为计算机科学与技术、软件工程、网络工程等工科信息类专业的必修课程,是构建专业知识网络时十分重要的组成部分。课程的教学内容涉及面广,联系了信息系统的软件和硬件系统,引入的概念抽象,且与多门先导课程联系紧密。授课时,以理论教学为主,教师往往将大量的课堂时间花费在讲解操作系统模块的运行机制和原理、分析算法设计思路、演示算法步骤等环节,学生无法直观地接触所学内容,易产生厌倦情绪,从而对理论失去兴趣。在实验或课程设计等实践环节,往往具体的实验环境(如Linux平台)并非学生熟悉的Windows环境,需要花费大量时间去熟悉實验平台的使用,使真正用于验证理论的实验时间大大减少,影响了设计和开发能力的训练和培养,从而造成理论和实践脱节,学生无法实现理论到应用的快速映射。如何避免枯燥乏味的课堂知识灌输和仓促应付的实践环节,激发学生自主学习的热情是困扰“操作系统原理”课程教师的共同问题。而目前我国工程人才培养的重点和难点正是理论教学与实践教学的深度融合问题。[1]借鉴其他高校在这方面的探索经验,[2-4]结合实验环境和学生特点,笔者进行了一些有益的尝试,取得了良好的效果。
2 理论与实践融合
2.1 贯穿于课堂教学中的实践引导
在教学过程中,教师对学生的引导十分重要。所谓“身教大于言传”,教师的实践意识和动手能力会潜移默化地影响和带动学生。理论教学时应有意识地引导学生去尝试操作系统的各种功能,从而理解抽象概念。例如,理论授课通常借助于多媒体手段教学,可以将抽象的进程概念用教室配备的Windows系统中的进程进行演示,让学生理解“程序运行一次产生一个进程”的具体含义。通过Windows系统中“任务管理器”的“进程”标签和“性能”标签让学生了解进程创建并不是那么抽象和难以理解,同时引导学生观察进程属性,此外也可以设置问题,如“为什么有些程序运行一次,系统进程数不变?”从而为后续线程的引入埋下伏笔。实践证明,用学生们最熟悉的Windows环境进行课堂演示,能直观、及时地呈现概念,较好地消除学生对操作系统理论的距离感,同时由于多媒体教学手段的普及,这一方法的使用十分方便。
2.2 与实验任务相关联的理论教学
除一些专用实验平台外,目前的操作系统实验大多使用Linux平台,受限于实验课的学时数,学生对实验所用Linux平台往往望而生畏。刚接触时觉得很新奇,但在练习命令接口和程序接口时便觉得无法适应。以至于影响后续的实践过程。由于实验课的间隔时间通常比理论课长,上一次实验的操作到了下一次课可能已经忘记,因此在理论课上,教师也应经常性地结合实验任务进行理论讲解,使实验内容得到及时复习,同时对新的理论进行导入,形成理论——实践知识链,再继续通过新获取的理论指导实践,使这条知识链不断迭代,最终可以形成完整的知识体系,如图1所示。例如,将第一次实验课安排在引入进程概念之前,使学生对Linux中的命令接口和程序接口已有所了解,在引入进程时就可以Gcc程序的运行为例,说明多个用户要求使用Gcc这一程序编译各自的C源程序,Gcc将产生多个进程。这就使学生在学习新知识的同时,复习了实验任务,同时提升了对新概念的理解,在下一次实验中又可以使用进程这个概念指导新的实验环节,从而形成知识链。
课堂理论教学可以作为实验任务的先导,在介绍了理论知识后引入一个简短实例,而将实验任务作为该实例的扩展,给学生提供一个通往更高目标点的台阶。例如,实验环节安排了Shell脚本的编程,理论教学在介绍用户接口的时候就可以在Windows环境下演示命令文件的创建和使用,通过批处理文件的操作,说明命令文件在现代操作系统中的作用,再布置实验任务,让理论和实践有很好的衔接。
2.3 注重实践环节的问题反馈
无论是实验环节还是课程设计环节,都有不少学生由于理论知识掌握不够透彻而无法正确完成任务,如果忽略这一过程中存在的诸多问题,则会加大学生的困惑,问题的累积将最终导致学生对课程失去兴趣甚至放弃深入学习。例如,尽管理论教学环节已明确了父进程创建子进程的过程,介绍了调用函数fork,但进程创建实验中仍有不少学生无法分析进程家族树的建立过程。需要通过沟通和询问才能发现不同学生的困惑所在,进而对理论课的内容进行进一步讲解,加深学生对进程创建过程的理解。因此,及时查看和询问实践报告,有针对性地进行问题的探讨,增加实践环节的教学互动将对课程的学习起到积极的助推作用。
3 多课程知识融合
“操作系统原理”课程自身实践性强,与其他课程的交互也十分密切。操作系统软件架设于硬件基础之上,涉及计算机组成原理和微机原理课程的知识,其软件模块间的设计开发方法又是软件工程和算法分析等课程的典型案例。理论和实践环节都会使用编程语言(如C语言)和数据结构方面的基本知识。加强多课程间的知识融合,不仅能构建信息学科相关理论的知识网络,还能有效强化操作系统概念和原理的理解应用,将课程知识体系庞杂的劣势变为各门课程触类旁通的优势。例如,在介绍管程概念时,使用Java管程作为案例就可以使学生在Java学习的基础上理解管程的含义。在介绍虚拟内存的页面置换算法时,可与计算机组成原理中cache的置换方式进行联系。在介绍文件的结构时可与数据库中的表结构比较。在介绍信号量机制时可与Java的线程锁和数据库的锁机制相关联。endprint
在实践环节,尤其是课程设计阶段,可以结合其它课程的理论知识,完成较为复杂的任务。例如,利用Java语言或C语言的进程(线程)间通信机制模拟实现计算机网络中客户机和服务器之间的通信;利用数据库实现文件存储空间管理的模拟等。这些任务不仅锻炼了学生的动手能力,同时也实现了多课程知识的联合,为解决更加复杂的工程问题打下基础。
4 注重能力培养
课程教学在注重实践引导之外,还探索开展了研究型教学方法,将实际操作系统作为案例,选取一部分内容布置学生分组研究。例如,布置学生分析Linux系统的内存映射机制,让学生在已有的地址映射基础上更深入地分析复杂实际案例,从而为学生提供接触实际系统,深入系统设计底层的机会。研究型教学的成果汇报是对学生研究能力、表达能力、现场应变能力的全方位锻炼。
操作系统的设计理念体现了人类社会的架构,[5]在教学中通过类比的方法,可将抽象的概念和算法思想与社会学考虑的公平、效率等理念相结合,使学生理解软件设计必须符合社会的价值取向和推动社会进步,培养学生的社会意识和责任意识。
通过教学网站、电子邮件和及时聊天工具等加强师生互动,将历年来的实践环节优秀作品(程序或设计报告)在网站公开展示,并鼓励学生提出更好的方案。实验、课程设计和理论采用单独考核方式,尤其是实验和课程设计的考核包含答辩和程序演示,且以个人而不是小组形式参加,使考核更能反映真实情况。
5 结语
理论与实践相融合的教学方法不僅是“操作系统原理”课程需要研究的方法,也是培养工程类人才普遍需要采用的教学方法。教学实践证明,这一方法是实现学以致用的有效途径。在今后的教学活动中,需要进一步挖掘理论与实践的结合点,使学生能牢固地掌握操作系统原理知识并能灵活地加以应用。
参考文献
[1] 陆勇,倪自银.“卓越计划”专业实践教学改革驱动理论教学创新探索[J].江苏高教,2016(3):90-92.
[2] 叶保留,费翔林,骆斌等.南京大学操作系统原理与实践国家精品课程建设[J].计算机教育,2014(7):45-49.
[3] 张龙翔.“操作系统原理"课程实验教学的研究与实践[J].计算机教育,2009(14):137-138.
[4] 蒋鹏,金炜东.“操作系统原理"课程开放性实践教学探讨[J].电气电子教学学报,2014(1):90-91.
[5] 邹恒明.操作系统之哲学原理[M].北京:机械工业出版社,2012.endprint