本科“操作系统”教学方法改进与探索
2009-08-28张红光
张红光
摘要:本科“操作系统”教学,包含着比较强的专业内涵和比较广泛的专业基础知识,内容更新快,抽象概念多。这些特点致使该课程的教学需要不断地更新内容,改革教学方法,需要特殊的措施保证教学质量。文中对“操作系统”教学问题进行了比较深入的阐述,提出了解决问题的方案和措施,并对这些方案的实际应用效果进行了分析。
关键词:教学方法;认知体系;工程化思想
中图分类号:G642 文献标识码:B
1引言
操作系统的概念和设计技术在计算机专业知识体系中占有着举足轻重的地位,操作系统的知识结构中包含着多层面的内容,国内、外大学计算机专业都会将“操作系统”课程作为专业基础课程设立,南开大学将本课程安排在本科三年级的第一学期开设,计算机专业的必修主干课,其他相关专业的必修或选修课。
“操作系统”课程难教、难学是著名的,这主要是由于其所涵盖知识的宽度和广度。在院、校两级领导的支持和培育下,我们对“操作系统”课程进行了多年的教学方法改革和实践探索。涉及到了教学方法、授课形式、课程内容、考核方式等方面的内容,提出并实施了一系列的有效的措施,取得了初步的成效,2007年该课程已被设立为“高教部——微软精品课程”。
2课程特点分析
“操作系统”课程是对系统核心技术的学习,因此学习操作系统知识需要有多项计算机专业基础知识,比如需要掌握计算机硬件和计算机体系结构方面的知识,还需要了解软件工程的思想,同时还应掌握一些软件设计的基本方法。
另外,操作系统在专业知识体系中有承上启下的作用,她可以将之前学生所学知识贯通起来,形成一个比较完整的认知体系。对于本科生来说,能否学好操作系统知识对学生未来发展有诸多影响。为了提高教学质量,能够抓住教学中的实质问题,我们对“操作系统”课程进行了比较全面的分析,根据受教群体的情况分析出我校操作系统教学特点,主要包括:
(1) 学生对专业知识了解不多
对于刚进入大三的本科生来说,他们正处于学习专业知识的初期,虽然已经学习了一些计算机专业知识,但对于许多问题认识还比较肤浅;大多数人几乎未从事过比较深入的设计与开发工作,对于计算机的大部分系统层知识仅仅是停留在对书本的理解和少量的实验课程理解上。
(2) 所学知识的贯通性差
在学习操作系统前,要求学生已经掌握了计算机原理、汇编语言、数据结构、程序设计语言等方面的知识,但由于这些知识都可以自成体系,在学习时并不过多要求学生进行知识间的穿插,因此学生掌握的知识相对孤立,并没有将所学知识融会贯通起来。另一方面,由于刚开始接触专业课,难度加大,学生或多或少地存在忙于应付课程作业的状况,所掌握的知识并不牢靠,各种知识点处于分离状态。
(3) 学生解决实际问题能力差
由于学生在大学的前两年中,主要是在进行基本概念和基本知识学习,学生的实践机会普遍较少,无论是编程量还是涉及的问题复杂度都不够。因此这个阶段学生的编程能力普遍比较弱,更重要的是由于没有独立完成一项编程任务的经历,他们几乎无法解决系统设计中碰到的中等以上复杂度的问题。
(4) 没有工程设计的概念
由于以上几点原因,这个阶段的学生几乎没有任何工程设计的思想和概念。这就使得学生在理解操作系统设计策略和方法时,会碰到许多困难。
3常见教学问题
本课程中的这些状况具有一定的代表性,应该有针对性的开展教学改革,倘若处理不当就会使教学任务无法落实,对以后的专业学习带来不良影响。操作系统教学中可能出现的问题很多,针对不同的学生群体也会有不同的表现,以下从几方面分析教学中易出现的问题。
3.1建立的认知体系不完整
由于操作系统知识涵盖内容广泛,知识间层次关系也比较复杂,容易使学生无法建立起一个比较完整的操作系统认知体系。这种情况有时会影响到初学者对学习操作系统知识的信心,产生为难或惧怕心里,对学习造成负面影响;最直接的情况是,课程学完后对操作系统的概念仍认识不清,不了解操作系统技术中的典型问题处理方法和解决策略,认识模糊、概念混乱。
3.2出现理解方法上的误区
由于操作系统设计中所包含的内核技术多,需要用到掌握多种算法和原理。而有些原理推导过程非常复杂、讲解起来也很抽象,对于没有实践经验的人来说理解起来就更困难。若不注意教学可能会陷入一种误区,即将教学重点放在了对抽象概念的推导和理解上,花费大量的时间去教、去学这些理论和概念,从而偏离了学习操作系统的实际意义。
3.3所学知识不能学以致用
学生掌握知识不牢的原因有多种,是教与学多个环节出现问题后的结果,但我们这里主要谈教学中的原因。由于教学方法不妥,可能致使学生对所学操作系统知识认识非常浅薄,没有形成深刻印象,在学习完这门课程后很快会将所学内容丢在脑后,并不能对今后的学习产生有益的影响。
另外,由于操作系统技术发展历程长,今天使用的许多技术是经过复杂的演变过程形成的,而且由于每个阶段要解决的问题又会有所不同,因此所采用的技术差异也会比较大。这就形成了一种矛盾,如果一味追求理论知识的完整性,很难在有限的教学时间中讲清楚这些问题;另外,即便把这些问题都讲清楚了,也很难对解决今天的实际问题有指导意义。若所学知识不能在实际中得以应用,当遇到问题时还是无从下手、不知所措,这就形成了严重的知识与实际相脱节的问题。
4 “操作系统”教学方法改进与实践
“操作系统”教学中存在的各种问题,是新时期对“操作系统”教学提出的新课题。近年来,对“操作系统”教学改革的话题一直未断,大家也在进行着各种方式的探索,而且也取得了许多良好的成效。但是,我认为任何一种改革都应该与本校的教学实际相结合,脱离了这个基础,教学改革将会事与愿违,一事无成。
多年来,我们结合本校的实际情况进行了“操作系统”教学的研究与实践,总结了一些教训,也取得了一些经验。
4.1用实际问题引导学生做角色转换
我们知道兴趣是掌握知识的有力武器。为了促使学生了解操作系统知识,我们从调动学生学习兴趣入手。学生在学习操作系统原理之前都或多或少的使用过计算机中的一些工具,比如完成一些作业编程和程序调试,但是他们对系统本身和所带工具的设计问题很少考虑。大部分学生认为系统或工具设计不是我应该考虑的问题,或者认为其中包含的技术难度高不可攀。我们以此作为切入点,调动大家的学习兴趣。
我们采用的方法是角色转换法,在课程开始时并不急于讲述有关的基本概念,而是提出几个实际问题让大家来考虑。比如,程序在计算机中如何存放才是合理的?在编辑程序时所设立的程序规范格式是如何告诉计算机的?当同时提交多项任务请求时,计算机会不会记错了次序而产生混乱呢?当无休止地提出请求时,计算机会有多大的耐心呢?等等。所提问题有些是比较直观的,也有些是需要在系统中进行实验才能拿出数据的。
这些问题,不仅增加了学生在计算机上进行演练的兴趣,而且在演练中学生会派生出许多过去不曾想过的问题,这样学生学习的兴趣也会被激发起来。当学生在考虑这些问题时,实际上就在进行着一种角色的变换,原来认为系统理所应当为自己完成的事情,现在需要自己来考虑了,尽管大多数同学对这些问题的解答是通过所使用的操作系统有关介绍了解到的,或者有些一时还无法考虑清楚,但这种换位思考的方式正是需要得到的效果,因为这些非常有利于提高对操作系统原理学习的热情和兴趣。
学会了换位思考,学生就会加深对“操作系统”课程的认识,因为他们会利用已经掌握的知识或工具进行各种有益的探索,会提出许多合理或不合理的解决方案。这时教师要根据学生提出的内容进行有益的归纳和总结,然后再指出所提方案中的合理性和谬误之处,进而再给出“操作系统”课程总体任务描述,使学生很快理解了“操作系统”课程的实质所在,建立起对该课程的一个比较完整的认识。
4.2利用网络化教学环境强化教学效果
为了有效地进行教学,我们在每章授课中都会给出一个或若干个讨论主题,让大家在课后参与讨论,并结合平时作业进行解答。讨论形式比较灵活,可以是个人意见,也可以按小组提出比较规范的见解。在这个阶段我们采用的方法是,充分利用学校网络教学环境,完成提问、解答、交互、争论、探索、计分等项活动。这种方法强化了教学效果,使学生有机会重复他所学过的知识。
网络教学环境有许多优势,比如可以统计学生参与讨论的次数,也可以根据讨论问题的质量为平时记分加权重。更重要的是,网络环境是现代大学生非常依赖的信息获取渠道,大家参与的兴趣高,信息量大,信息交互效率高。这些有利于知识的掌握和巩固。
4.3用大作业形式培养学生解决问题的能力
我们认为,对操作系统教学的最终目标,是培养学生可以用工程化的思想和方法来解决计算机系统中需要解决的问题。按照这一目标,我们在课程中设立了大作业制度,具体做法是:当教学任务进行到一半时就向学生下发若干个操作系统需要解决实际问题的大作业,这些大作业中会包含一些具体任务,同时又要求要能自成系统进行设计。比如大作业题目可以是构建一个具有特定功能的文件管理系统,或是编写一个有特殊要求的设备驱动程序或存储管理程序等等。大作业需要花费的时间和精力都比较多,所以它们在课程评价体系中所占评分比重也大。
在大作业提交中我们给出非常具体的要求,比如要求所完成的工作必须是可以在一个特定环境中运行的系统,而且要求有完整的设计文档和使用文档;在大作业提交时必须在大课堂上进行陈述,作者要讲出所完成工作设计思想、实现方法和和测试用例,说明系统中存在的不足和进一步改进的策略等等。这样做的目的是希望学生通过大作业训练,能真正感受到工程设计的真实过程,培养一些工程设计的思想和解决问题的能力。
学生在完成大作业时会碰到许多的困难,有时为了完成一项功能他们会费尽心机,查阅大量的资料。我认为这个过程也是本课程教学的一部分,因为必须要使学生理解:对一个实际问题仅仅提出一种解决思路与真正地完成一个有部分功能的系统之间是有差距的,所付出的努力是不同的。能够面对具体实现方法和完成过程,同样是计算机专业中非常需要的技能,在调试一个系统中所经历的磨难,对学生日后的专业成长经历受益无限。
5教学效果分析
由于在教学中采用了新的教学思想和方法,教学成果已逐渐显现出来,主要体现在以下几个方面。
5.1兴趣带动了学习的主动性
新的教学方法使学生渐渐喜欢上了“操作系统原理”课程,学生由原来的被动上课变成了主动上课,很少出现逃课或课堂上走神的现象了。另外,大家对操作系统技术的研究表现出了极大的兴趣。除了课程中的内容外,同学们还会拿些他们平时碰到的各种问题来进行讨论,而且还会想方设法地建立程序测试环境,验证自己的解决思路的实现策略。
5.2可以用审视的目光看待现有系统
另一个效果是学生破除了对原有操作系统的迷信,学会运用系统设计的思想来审视系统中存在的问题了。更难能可贵的是,有些学生通过对所使用操作系统的各种表象提出了自己的改造策略,有些改造思想还被付诸了实践。我认为这一点也是非常重要的进步,因为对于一个从事计算机技术研究的人员来说,就是应该具备创造性的设计冲动,这是专业人才的基本素质。这些素质可以促使学生不断变革前人的工作,保持思想上和技术上的不断创新,才有可能创造出计算机科学领域中比较有价值的业绩来。
5.3增强了系统工程化设计能力
另外一方面,由于在课程中进行了大作业的训练,使同学们的系统设计能力和编程能力也得到了不同程度的锻炼,学生学会了用工程化的思想来解决系统问题,认识到在系统设计中工程化思想的重要性和必要性。大作业使学生有机会了解到在完成一个相对复杂的工作时应采用怎样的步骤和策略,这些是对他们实践能力的培养。
在完成“操作系统”课程的大作业训练中,有多人比较完整地对litel-OS系统进行了各个管理子功能的设计与实现,有四人在完成大作业后又对设计内容做了进一步的提炼和改造,申报了大学生百项工程题目,并在参赛中获得了学校的一等奖和二等奖。
6结束语
目前学生学习操作系统核心技术的热情比较高,各种学习体会也很多,大多数人表示:“操作系统”这门课是他们本科阶段花费心思最多、收获最大的课程之一。教师在教学中也有很多收获,在理解学生需求和困惑的同时,提升了“操作系统”的教学能力和驾驭“操作系统”课程的能力,这些会对本科教学产生直接、良好的影响。
参考文献:
[1] 徐志立. 关于操作系统课程改革的研究与实践[J]. 计算机教育,2004(1):57.
[2] 蒲晓蓉,陆庆,耿技. 改革《操作系统》课程设置强化学生基础知识[J]. 电子科技大学学报:社科版,2002(02):99.
[3] 林和,刘莉,蒙应杰,等.“操作系统”教学实验标准化进程的思考[J]. 高等理科教育,2004(02):48.