时间:2022-03-12 07:36:01
导语:在操作系统实验报告的撰写旅程中,学习并吸收他人佳作的精髓是一条宝贵的路径,好期刊汇集了九篇优秀范文,愿这些内容能够启发您的创作灵感,引领您探索更多的创作可能。
实验名称
要用最简练的语言反映实验的内容。如验证某程序、定律、算法,可写成“验证×××”;分析×××。
学生姓名、学号、及合作者
实验日期和地点(年、月、日)
实验目的
目的要明确,在理论上验证定理、公式、算法,并使实验者获得深刻和系统的理解,在实践上,掌握使用实验设备的技能技巧和程序的调试方法。一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。
实验原理
在此阐述实验相关的主要原理。
实验内容
这是实验报告极其重要的内容。要抓住重点,可以从理论和实践两个方面考虑。这部分要写明依据何种原理、定律算法、或操作方法进行实验。详细理论计算过程。
实验步骤
只写主要操作步骤,不要照抄实习指导,要简明扼要。还应该画出实验流程图(实验装置的结构示意图),再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。
实验结果
实验现象的描述,实验数据的处理等。原始资料应附在本次实验主要操作者的实验报告上,同组的合作者要复制原始资料。
对于实验结果的表述,一般有三种方法:
1. 文字叙述: 根据实验目的将原始资料系统化、条理化,用准确的专业术语客观地描述实验现象和结果,要有时间顺序以及各项指标在时间上的关系。
2. 图表: 用表格或坐标图的方式使实验结果突出、清晰,便于相互比较,尤其适合于分组较多,且各组观察指标一致的实验,使组间异同一目了然。每一图表应有表目和计量单位,应说明一定的中心问题。
3. 曲线图
在实验报告中,可任选其中一种或几种方法并用,以获得效果。
讨论
根据相关的理论知识对所得到的实验结果进行解释和分析。如果所得到的实验结果和预期的结果一致,那么它可以验证什么理论?实验结果有什么意义?说明了什么问题?这些是实验报告应该讨论的。但是,不能用已知的理论或生活经验硬套在实验结果上;更不能由于所得到的实验结果与预期的结果或理论不符而随意取舍甚至修改实验结果,这时应该分析其异常的可能原因。如果本次实验失败了,应找出失败的原因及以后实验应注意的事项。不要简单地复述课本上的理论而缺乏自己主动思考的内容。
另外,也可以写一些本次实验的心得以及提出一些问题或建议等。
结论
结论不是具体实验结果的再次罗列,也不是对今后研究的展望,而是针对这一实验所能验证的概念、原则或理论的简明总结,是从实验结果中归纳出的一般性、概括性的判断,要简练、准确、严谨、客观。
20xx实验报告范文
一、实验目的及要求:
本实例是要创建边框为1像素的表格。
二、仪器用具
1、生均一台多媒体电脑,组建内部局域网,并且接入国际互联网。
2、安装windows xp操作系统;建立iis服务器环境,支持asp。
3、安装网页三剑客(dreamweaver mx;flash mx;fireworks mx)等网页设计软件;
4、安装acdsee、photoshop等图形处理与制作软件;
5、其他一些动画与图形处理或制作软件。
三、实验原理
创建边框为1像素的表格。
四、实验方法与步骤
1) 在文档中,单击表格“”按钮,在对话框中将“单元格间距”设置为“1”。
2) 选中插入的表格,将“背景颜色”设置为“黑色”(#0000000)。
3) 在表格中选中所有的单元格,在“属性”面版中将“背景颜色”设置为“白色”(#ffffff)。
4) 设置完毕,保存页面,按下“f12”键预览。
五、实验结果
关键词:操作系统;教学改革;多元化方法;多元化评价
中图分类号:G642 文献标识码:B 论文编号:1674-2117(2015)10-0093-03
操作系统是计算机中最大的系统软件,管理着计算机系统中的所有硬件和软件,内容庞杂,涉及面广。“操作系统”课程主要介绍操作系统的基本原理和实现技术,涉及计算机硬件、程序设计语言、数据结构和计算方法等领域和内容。该课程同时是计算机及相关学科的核心课程,亦是考研的专业课之一,其重要性毋庸置疑。
“操作系统”课程的特点是理论性较强,内容抽象,课堂上所讲的原理和实际中使用的操作系统并不一致,学生学习的积极性往往不高。课程实施中传统的教学方法是以课堂讲授为主,内容比较陈旧,实验学时偏少。上述情况明显影响了以往课程实施的效果和质量。基于上述问题,笔者在“操作系统”课程教学中从分析教学现状入手,通过多元化的教学方法、教学手段、实践教学以及评价方式等对课程教学进行探索和改进,以期取得良好的教学效果。
以往教学中存在的问题
1.课程理论性强,学生学习兴趣不高
由于操作系统原理的自身特点,课程教学中概念抽象,应用性不强。学习效果不像高级语言或应用软件学习那样立竿见影,部分学生感觉学习操作系统没有实际用处。学生学完课程只是掌握了操作系统的一些概念和原理,这些原理没有和现实使用的操作系统联系起来。
2.课程内容陈旧,教学手段单一
“操作系统”课程以介绍操作系统原理为主,内容远落后于该领域最新的研究成果,教材内容也没有与时俱进。虽然近年来也出版了不少操作系统教材,但是大部分仍然侧重理论讲解和知识点描述,忽视与实际操作系统的结合。理论与实践明显脱节。随着多媒体教学的普及,每节课的信息量增多了,但是教学过程仍然是以教师为主,教师以填鸭的方式灌输理论知识,教学过程中缺乏与学生的互动和讨论。课堂气氛沉闷,教学质量大打折扣。
3.实践环节薄弱,学业评价方式单一
“操作系统”课程理论性较强,实践课时自然成为“操作系统”课程教学的重要组成部分。但是在以往的课程实施中,实践课时明显偏少。对于学生而言,往往Linux系统刚刚熟悉不久,实践课也就接近了尾声,教学效果不尽如人意。另外,以往的课程评价方式较为单一,期末成绩占很大的比重,部分学生平时不努力,考前搞突击,严重影响了教学效果。
课程教学改革的方法与措施
1.优化教学内容
鉴于有限的课时,在课程实施中适当删减教材中的内容,增加主要内容和重点内容的实例分析,如目前流行的操作系统相对应的功能是如何实现的。操作系统是计算机的管理者,要站在管理者的角度去理解操作系统。要紧跟操作系统发展趋势,与时俱进地介绍与操作系统相关的新技术,激发学生的学习热情。同时,可以借助课件制作的软件,将一些算法和流程以动画的形式呈现,让学生更加直观地理解相关知识点。
2.采用多元化的教学方法,激发学生的学习热情
在教学过程中坚持“以教师为主导,以学生为主体”的教学理念,将类比教学、启发教学、情境教学等教法融入到教学过程中,以有效提升课程教学效果。
①类比教学法。将生活中常见的现象引入到教学过程中进行类比分析,使枯燥的理论变得生动有趣。比如,在讲解进程和线程区别时,将进程和线程比作上战场的士兵,以帮助学生理解。相当于进程的士兵携带了很多物品,所以他拥有的资源多、负担重;相当于线程的士兵只携带了必要的防护工具和武器,轻装上阵,所以线程负担小,切换速度快。
②情境教学法。在课程教学中,结合内容创设特定的情境,引导学生学习和理解。如在讲解和尚打水问题时,请一部分学生将自己想象成是小和尚,另外一部分学生将自己想象成是老和尚,引导学生思考自己所扮演的角色应该按顺序做哪些动作。通过这样的情境思维体验,学生对于PV原语及对应的程序就不难理解了。
③启发式教学法。在课程教学中充分调动学生的主观能动性,将知识点分解设计成一系列问题,引导启发学生主动思考,自主寻求答案。例如,在讲解文件管理时,首先提出问题:我们在计算机中找到某一文件的图标,双击该图标后,操作系统做了哪些事情?我们的文件存放在什么设备上,操作系统是如何找到它的,设备驱动器做了哪些事情?如此一步步地引导学生去思考,激发学生的兴趣,从而引出并完成教学内容。
3.运用多元化的教学手段
①分组协作学习。为了激发学生自主学习的积极性,学生可以在教师给定的范围内选题,3~4人一组,利用网络资源和各种参考资料开展自主学习。根据设计,要求学生将学习成果提炼成PPT,教师随机从每组中选择一名学生上讲台演示和分享小组的学习成果,同时由十名评委同学打分,计算平均得分并赋予小组每个成员。教师则做好记录,并对每组学生的汇报进行点评。经过实践证明,这种分组协作学习的方式激发了学生自主学习的热情,锻炼了学生的语言表达能力和团队合作精神,课堂气氛活跃,效果良好。
②读书报告――扩展学生视野。组织引导学生追踪操作系统最新发展动向。在教师给定关键词和选题范围内,学生自拟读书报告题目,然后通过查阅参考书和科技文献撰写读书报告,并要求一个学期提交两份读书报告。通过阅读大量文献和资料,可以提高学生相关知识点的阅读量,并有效扩展专业视野。
③随堂测试重要知识点。重要的知识点在讲解完毕后,布置题目给学生做测试。通过测试情况,了解学生对该知识点的掌握程度。
④改革完善实践教学。在实践课程教学中,采用VMware虚拟化软件作为新平台模式,将多个操作系统集于一身,给学生提供一个灵活的操作平台,方便学生了解和使用各种系统,充分发挥学生学习的主动性。 Linux是开源的操作系统,在Linux系统下做操作系统实验更加直观,更利于学生的理解。例如,笔者在实验教学中,根据本校学生的情况自编实践课程指导书(基于Linux环境),内容涵盖进程的创建和撤销、进程同步和互斥、进程的通信、存储管理、设备管理和文件管理。由于实践课学时少,部分学生此前从未接触过Linux操作系统,课程初期就布置一些Linux操作系统的安装及基础知识的学习任务,以便实验正式开始时,学生可以尽快上手。实验辅导根据学生掌握的情况进行,对于普遍存在的问题,进行讲解和讨论。具体实践中,将实验分为验证性实验、设计性实验和综合性实验三种,每次实验需要提交实验报告和实验代码。
⑤采用多元化的课程评价体系。在“操作系统”课程中,采用过程评价和终结性评价相结合的多元化课程评价体系,克服以期末考试成绩为主的终结性评价体系的弊端。课程的总评成绩由以下四部分加权组成:平时成绩25%(包括作业成绩、读书报告成绩、随堂测成绩)、实验成绩25%(包括实验报告、实验代码)、讨论课成绩10%、期末成绩40%。首次上课时,即向学生公布本课程成绩评价方式和标准,让学生有心理准备和努力的方向。多元化课程评价体系可以让学生真正参与到课程的教与学的过程中,客观地评价学生的学习认真程度和知识点的掌握程度,提高学生自主学习的积极性,锻炼学生的学习能力、团队合作能力及语言表达能力等。基于上述的教学评价设计,笔者将其运用到自己的课程教学中,经过三个学期的实践探索,切实获得了较好的效果。
结束语
为了提高学生学习的主动性和积极性,笔者结合多年来“操作系统”课程的教学经验,从教学方法和手段、实践教学以及多元化的课程评价体系等角度,探讨和实践了一系列改革措施,以使枯燥的理论变得生动有趣,让学生参与到整个教学过程和评价中,激发了学生自主学习的积极性,收到了良好的教学效果。
“操作系统”课程改革是一项复杂的系统工程。为了提高操作系统课程教学质量,我们将继续探索和努力实践。
参考文献:
[1]符琦,李润求,黄力.操作系统课程教学内容和方法的探讨[J].当代教育理论与实践,2011(2):58-60.
[2]赵俊生,寿永熙,马志强,秦俊平.“操作系统”课程改革与建设的研究与实践[J].内蒙古农业大学学报(社会科学版),2010(3):165-167.
[3]李艳,王金环.操作系统课程教学改革的探索与实践[J].教育探索,2013(22):164-165.
[4]左万历,赵东范,闫昭.操作系统课程的多角度教学模式探索[J].计算机教育,2011(12):103-106.
[5]童幸生,刘义.地方高校教师教学评价多元化探索[J].教育探索,2011(7):89-90.
1 问题的提出
操作系统课程是计算机科学与技术专业的核心必修课程之一,随着计算机技术的应用越来越广泛和深入,其他相关专业也相继把操作系统作为必修课程或选修课程[1]。由于操作系统课程涉及的知识点多且杂、概念抽象、理论性和实践性都很强[2],因此,学生在学习这门课程的过程中感觉十分困难,老师在教授的过程中也容易侧重于操作系统的理论教学,很难协调好理论教学和实践教学之间的关系,教学效果往往不太理想。总的来说,当前操作系统课程教学中存在的问题和不足有:(1)理论教学与实践教学联系不紧密。这是该门课程教学中普遍存在的一个问题。由于操作系统课程所涉及的基础性和原理性内容很多,学生理解起来会很困难,消化起来需要花费较长时间,所以目前大部分高校把大量的课时分配给了理论教学。而每个学期的总学时是有限的,这样导致分配给实践教学的课时会明显不足,很多知识点无法提供相应的实验。这种重理论讲解,忽视学生的动手实践能力培养的教学方法,导致该门课程理论教学和实践教学联系很不紧密,学生学习起来会觉得很枯燥,实验任务很难完成,期末考试结束之后,会出现立马将所学知识还给老师的现象;(2)忽略了与其他课程之间的联系。操作系统属于系统软件,但它又离计算机硬件最近,所以该门课程内容既涉及计算机硬件方面的知识,又涉及软件方面的课程,如:高级程序语言设计、数据结构、算法设计及计算机组成原理等。而教授该门课程的老师所熟悉和精通的课程数量是有限的,这样导致教师在教学的过程中,很难做到利用其他课程内容来进行触类旁通的教学,进而忽视该课程与其他课程之间的联系;(3)操作系统的最新发展未被及时反映。早期的操作系统由于受到当时硬件和软件技术的限制,很多设计理念和实现方法和现代操作系统相比,显得过时和不合理。而操作系统技术和硬件的发展十分迅猛,现代操作系统中用到的一些新的技术和方法,如触摸屏技术、语音控制技术等,这些新的内容往往在目前大部分操作系统教材中没有及时地反映出来;(4)没有真正理解操作系统课程的教学目的。操作系统课程和计算机专业的其他课程不太一样,其教学目的不单纯是让学生简单理解操作系统的工作原理,也不是为了让学生学会编写一个操作系统,而是要让学生掌握操作系统管理计算机资源的方法,更重要的是学习一种思维能力[3]:一种分析问题、解决问题、评价问题解决方案优劣,并能提出更优解决方案的能力。而这种思维能力的培养在实际的教学过程中往往被忽略,抑或根本没有被意识到,从而导致大家没有真正地理解该门课程的教学目的。
通过以上分析可知,我们迫切需要一种新的科学有效的教学方法来改变这种现状。为此,本文提出了一种基于计算思维的操作系统课程教学方法:该方法将计算思维这种新型的思维方式贯穿于操作系统课程的理论教学和实践教学两个方面中,让学生学会并习惯用计算机科学的思路和方法来发现问题、分析问题和求解问题,培养学生自主实践及创新的能力,实现操作系统课程教学的真正目的。
2 基于计算思维的操作系统课程教学方法
2.1 计算思维
2006年,美国卡内基?梅隆大学周以真教授在美国计算机权威期刊Communications of the ACM上首次提出了“计算思维”的概念[4]。她指出:计算思维就是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。为了更好的理解,周教授又将计算思维解释为几种具体的思维方法:约简、嵌入、转化、仿真、保护、冗余、容错、纠错和恢复,利用启发式推理来寻求解决方案,在不确定情况下进行规划、学习和调度等[5]。计算思维的本质是抽象和自动化,周教授将其基本特征总结为以下几点:(1)计算思维是概念化,不是程序化。计算机科学不单指计算机编程,更重要的是要像计算机科学家那样去思维,且能在抽象的多个层次上思维;(2)计算思维是人的,不是计算机的思维。计算思维是人类求解问题的一种途径,人们可以利用计算机工具和自己的智慧去解决那些计算机时代之前不敢尝试的问题;(3)计算思维是思想,更重要的是计算的概念。这种概念可以用于人们进行问题求解及日常生活的管理;(4)计算思维是根本的,不是刻板的、机械的技能。根本的技能是指每个人为了在社会中发挥其职能而必须掌握的技能,刻板的技能则指机械的、重复的技能;(5)计算思维是数学思维和工程思维的互补和融合。计算机科学的本质来源于数学思维,而计算机科学又从本质上源自工程思维。我们的目的是建造能与现实世界互动的系统,而基本计算设备的限制则迫使计算机科学家必须计算性的思考。
同时,周教授认为,计算思维和人类应具备的3R(Reading,wRiting and aRithmetic)能力,即阅读、写作和算术能力一样,同样属于每个人应该掌握的基本技能,而不仅仅属于计算机科学家,对于我们计算机专业的学生来说,更是如此。下面本文以操作系统课程为载体,分别从理论教学和实践教学两个方面详细讨论如何将计算思维贯穿到操作系统课程的日常教学过程中,以改善该门课程的教学效果。
2.2 理论教学
操作系统是一门综合软件和硬件应用的课程,其理论课涉及的基本原理、思想和知识点很多。为了把这些纷繁复杂的知识点讲解得深入且全面,我们在组织教学内容时,始终坚持一个原则:紧紧围绕操作系统的四大基本功能――处理机管理、存储管理、设备管理和文件管理展开教学,注重基础性和先进性相结合,同时注意与时俱进,及时给学生补充时下最新的软、硬件技术及其发展趋势。在设计教学方法时,我们将计算思维这种新的教学思路引入到课堂教学中,引导学生积极参与知识发现的过程,让学生弄清楚问题的起源、发展、解决过程和实现方法,以及将后来还需要有怎样的改进等。通过这种教学方式,让学生的被动学习变为主动学习,让原本枯燥的理论课变得生动有趣,让学生明白那些难以理解的思想和原理其实就是人类认识问题、解决问题的正常的思维过程。
以操作系统的发展经历为例,我们可以这样给学生讲述:人们在进行科学实验和社会实践中总会有大量问题需要求解,在解决这些问题时,人们正常的思维是先分析所研究的对象,提出对问题的形式化定义,即数学建模;然后给出求解方法的形式化描述,即确定算法;最后是寻找实现算法的工具或设施。在计算机时代之前,这些工具或设施经历了古代的算盘、近代的加法器和计算器,其计算过程都需要手工进行干预,并未实现计算自动化。直到现代计算机出现之后,才使计算实现了真正意义上的自动化。早期的计算机由于受当时硬件功能的限制,其解题过程只能采用手工操作方式,故称之为手工操作系统阶段,即无操作系统阶段。随着硬件技术和功能的不断提高,计算机的运算速度也随着迅速提高,这样使得手工操作的慢速度和计算机运算的高速度之间形成了一种所谓的“人-机矛盾”,而且这种矛盾随着计算机速度的不断提高,变得越来越严重,为了解决这个矛盾,人们只有设法去掉人工干预,让机器自己来控制计算过程,于是就出现了“操作系统”这个角色,它是用一种软件方法实现运算控制全程自动化的技术,即用软件程序来代替人工干预的过程。
当我们把这段经历给学生说明之后,学生就会立马恍然大悟,原来操作系统是由于人们的客观需求出现的,是和人们的生活实践息息相关的。然后我们按此方法接着给学生讲述每一个发展阶段里所出现的新的问题或矛盾,人们又是如何想办法解决这些问题和矛盾的。通过这种方法,一步一步地将操作系统的发展经历引导出来。采用这种分析前因后果,侧重事物之间的内在联系的方法进行教学,学生不但不会觉得枯燥,而且记忆深刻。这就是将计算思维融入到该门课程教学中的优势,作为教师,我们要时刻记住培养和训练学生这种新的科学素养。
2.3 实践教学
操作系统是一门理论和实践融为一体的课程。理论教学中涉及的基本原理、技术和算法需要通过实验课来验证、理解和吸收。对于操作系统实验内容的设计,结合我校实际情况,采用了“验证性”和“设计性”两种性质的实验。验证性质的实验主要是要求学生从用户或应用软件开发人员的角度去体会和验证操作系统提供的功能。设计性质的实验要求学生在理解操作系统中所用算法和技术的基础上,能尝试自己提出算法改进意见或设计出不同效果的算法。考虑到学时限制及学生的总体水平,两种性质的实验数量比例控制在7:3左右。除此之外,我们还在下一学期安排了操作系统课程设计实验课程,要求学生能够综合运用本课程及相关课程知识解决实际问题,为将后来开发较大规模的软件奠定基础。在实验教学方法的设计上,我们将计算思维的观点引入到日常的实验教学中,要求学生带着问题去开始每一次的实验。在弄清楚实验要求和目的的基础上,积极寻找解决问题的方法,理顺思路,确定最终解决方案,然后着手开始上机验证,并详细记录验证过程中碰到的困难和问题以及相应的解决方法。最后,要求学生认真完成书面实验报告,并上交老师审阅。通过采用这种发现问题、分析问题、构建解决问题的模型并找出相应问题解决算法的思维方式来完成每一次的实验任务,能很好地提高学生上机的热情,较好地完成上机作业,并加深学生对理论知识的理解和感性认识。在考核方面,我们严格检查学生的实验设计报告,加大平时考勤及上机实验成绩在总评成绩中的比例。要求学生积极参加课堂讨论,按时完成实验作业,高质量完成实验报告,这样才能在最后的总评成绩中得到较高分数。
关键词:应用型院校;操作系统;实验教学
中图分类号:G642文献标识码:A文章编号:1009-3044(2011)13-3216-02
Design of Experimental Teaching of Operating System
LIN Yin, SU Bing
(Changzhou University, Information Science and Engineering Institute, Changzhou 213164, China)
Abstract: Since different of types of education are, training goals and requirements, the teaching and the content and form of the experiment should be different. In this paper it is analyzed that how to design the experimental teaching methods and how to locate experimental content of operating system course in the institutions of applied, Content and method of experimental items are discussed and the implementation of the results were assessed.
key words: institution of applied; operating system; experimental teaching
当前,重视实验和实践教学是各国高等教育界的发展潮流,我国与国外教育工作的主要差距也主要表现在实践教学环节上。近年来,教育部也将其作为对高等院校教学工作评估的关键性指标。2005年1月,在教育部下发的《关于进一步加强高等学校本科教学工作的若干意见》中明确要求:“高等学校要强化实验育人的意识,区别不同学科对实践教学的要求,合理制定实践教学方案,完善实践教学体系。”“要不断改革实践教学内容,改进实践教学方法” [1]。操作系统是计算机系统的资源管理软件,操作系统原理(许多场合只称“操作系统”)课帮助学生理解操作系统的工作原理和技术,课程本身具有理论抽象性和鲜明的应用性[2],决定了必须充分重视课程的时间环节,以实验教学来促进理论知识的学习。为了配合该课程开展实践教学,多年来,我院课题组潜心研究,不断进行教学改革探索和实践,在实验教学设计、教学内容、实施方法等方面形成了切实可行的体系,愿与大家切磋。
1 实验教学设计
本科的操作系统课程主要讲授操作系统基本原理,由于课时的原因,教授的内容非常有限。课程的安排通常是在操作系统的发展概述后基于操作系统的资源管理功能展开后续内容,依次为进程管理、进程调度、存储器管理、设备管理、文件管理和系统安全性等,基本上没有时间着力研究某个具体的操作系统的工作原理和技术,通常将其嵌在前期相关章节内,网络操作系统、分布式操作系统、实时操作系统等更是只能作为课外自学内容。因此,为了理解课程理论,掌握某种具体的操作系统的功能实现,必须借助于实验教学的良好实施。
1.1 实验教学方式设计
操作系统原理课程的内容多且散且杂,但是该课程的实践可以内容明确,线条清晰。实验教学可以随着课程教授的各章内容同步展开,也可以独立开设。同步展开时可将实验教学融入理论教学:先讲原理,然后介绍基于某种操作系统的实现,自然而然引出可实施的实践内容。这样做的好处是实验教学与理论教学结合紧密,实验的内容一定是理论上的某种功能在某种技术上的实现和延伸,可以摆脱纯理论的抽象和枯燥,引发学生的学习兴趣和探索兴趣,但难免只见树木不见森林,失却操作系统本身的特色和完整。如果独立开设实验教学,可以遵循学习新知识的规律,先会用系统,从文件系统的功能实现开始,然后是设备管理,构建对操作系统提供给用户使用和管理的直观认识,然后了解进程管理、进程调度和存储器管理这些比较抽象和深奥的理论,但需要更多的学时,和课程的讲授顺序也不一致,会降低实验的效果。据调查,现行的学校多数采用前一种方式,即实验与教学同步,作为课程的一部分,而不独立开设实验课程。
1.2 实验内容的定位
正确的定位才能有正确的目标,一些重点院校以自行设计一个操作系统作为实验内容的做法并不适合于普通的应用型院校,难度多大的实践项目不能达到帮助课程学习的目的反而会使学生因为畏难丧失对这门课的兴趣。几年来,通过参考大量书籍[2-6],结合教学实践和学生的反馈,我院课题组组织了该课程实验的内容。我们这样定位:
1) 对应用型院校的计算机专业的学生来讲,应该把操作系统原理的学习和应用定位在理解、熟悉和能够灵活应用,来解释计算机运行的现象和开发更好的应用程序等[2],对深层次的理论和特定操作系统的功能和操作的了解和掌握可放在高年级的专业方向课或选修课当中。
2) 操作系统实验基于操作系统原理课开设,学时有限,理论教学与实验教学比例为5:1,通常必做的实验涉及通用的操作系统基本功能实现的了解和掌握。
3) 尽管计算机系统中操作系统众多,但学校用于教学的机器基本安装的是Windows系列(以Windows XP居多)的操作系统,开源软件首推Linux操作系统,因此实验教学的内容以研究Windows系列的操作系统(后面简称为Windows系统)和Linux操作系统(后面简称为Linux系统)为主,广谱适用的理论不限制操作系统,在实验中通常以算法模拟的方法来实现。
4) 为适应学生的不同需求和能力的差异,实验分必做和选做两类,选作设不同层次。实验以掌握课程相关的理论和技术为目的,不严格区分哪个实验是验证性、设计性或者综合性,通过实验任务的不同要求以达到不同的层次。
2 实验实施
一套完整的实验体系包括实验设备、实验环境构建、实验任务书、实验过程和考核。可用的实验设备和环境是保障,实验任务书明确了实践的内容和目标,认真的实验过程才能保证目标的实现,合理的实验考核方式可以鼓舞甚至激发学生研究的热情。
2.1 实验设备和环境
基于操作系统在计算机应用上的最底层性和基础性,它的实验设备要求并不高,就目前的计算机基本配置,一人一微机足矣。软件环境的需求是:
1) 可以运行Windows系统和Linux系统。简单的方式是专门配备一台Linux服务器,学生机仅安装Windows系统,通过远程登录使用Linux系统,但由于远程登录的权限受到限制,完成Linux部分的实验时,仅管理员可以实施的操作项目不便完成;另一种方式是一台机器上同时安装Windows系统和Linux系统,给予学生管理员的权限,由此带来的问题是操作系统会由于学生无意的误操作或故意地恶意操作造成系统的破坏,给后续的和其它的课程实验带来麻烦。
2) 可以进行操作系统程序设计。Windows系统下通常使用Visual C++6.0专业版或企业版,Linux系统下使用vi编辑器编写源程序,使用GCC编译源程序。
2.2 实验项目和要求
由于课时的缘故,完成一套完整的操作系统课程实践(参见参考文献中相关资料)在实际的教学中并不可行。有限的课时需要对实验的项目精挑细选,原则是:
1) 能够帮助学生更好地使用操作系统。
2) 能够反映操作系统在此项功能上的重要作用。
3) 难度适中,需要的时间适中。学生在实验课上通常不能完成实验规定的所有任务,需要课外另找时间完成,遗留给课外的任务不能过多过难。
经过几年的摸索和反馈,实验的内容安排如表1。
2.3 实验项目的实施
操作系统原理课程内容丰富,知识点众多。学生的兴趣不同,能力也有很大差异,因此可以有差异地实现的层次设计。
1) 实验都对应于相应的原理内容进行设置。由于内容众多,每个实验都安排多个实验项目,每个项目反映不同的知识点。
2) 每个实验包括一至两个必做的项目,一至两个选做的项目。选做项目分成选做一、选作二、选做三三个层次,不同的层次将对应不同的评分标准。
3) 每个实验的必做部分反映对应原理的重要知识点。针对具体的操作系统操作和分析时选用Linux系统,程序设计项目不限具体的操作系统,学生可以使用windows系统、Linux系统或别的操作系统。
4) 选做一是选做部分的首选项目,通常是windows系统相关内容,与必做内容的Linux系统部分属于同类知识点,列为选作主要是基于课时方面的考虑,此部分内容的掌握将是学生能够更好地管理和使用计算机。
5) 选做二通常是程序设计项目。操作系统的各个功能通常有不同的实现算法,某个具体的操作系统只会选择其中的一种或两种作为处理方法。实验时,可以通过模拟各种实现算法,然后对结果进行分析和比较,从而了解实际系统的选用理由,掌握相关的原理。
6) 选作三包括“安装Linux操作系统”和“远程登录Linux系统”两个内容,是实验室已经提供的环境。如果实施,需要学生在自己的计算机上完成。在学习操作系统课程之前,不少同学连Windows都没有安装过,对分区、引导、文件卷、加载等这样的术语非常陌生,在理解的基础上完成这两个实验的难度比较大,可以开始就布置,在课程的学习期间明白安装和使用过程中种种设置的含义从而真正认识一个实际的系统,最后作为独立的实验内容在课程结束前写成报告。
3 实验效果和评分
3.1 实验效果
每门课的效果都不能达到完全的满意,操作系统课程的实验也是这样,然而依照上表的实验设计和实施的确带来了很好的效果。有同学由此对操作系统产生极大的兴趣,在专业课中有意识地选择了嵌入式系统方向。课程的最后请完成选作三实验的同学和大家交流自己的报告,同学们踊跃参与:除了在C盘安装Windows XP系统,独立分区安装Fedora 11和FreeBSD,还利用虚拟机技术在Windows系统中安装了Ubuntu 9.04,openSUSE和Debian,最后一个展示的系统是Google Chrome OS,令师生们大开眼界;有同学现场解答了同学安装和使用操作系统中遇到的问题。师生们共同的努力找到了该课程结束继续学习的方向和空间。
3.2 实验评分
评分不是目的,是鼓励学生的一种手段。评分可以在每次实验的报告提交后就进行,评分的结果会鼓励学生后续的实验更好地完成,并同时给完成不好的学生以鞭策。实验的评分实时地在网络课堂中展示,实验报告在课堂上点评,极大地鼓舞了学生的学习热情,提高了学生的完成选做实验的参与度。对学生来说,一方面可以提高课程的成绩,更大的好处是促进了课程的理解和掌握。
近年来,不但在操作系统,课题组还在其他计算机课程的教学实践中,也积极尝试将实践环节与理论环节相融合,通过实践教学来促进理论知识学习的教学方法,有效地激发了学生的学习兴趣和参与。如果能引导更多同学愿意用更多的时间投入到课程的实践,一定能提高应用型高等教育背景下的教学效果和教学质量。
参考文献:
[1] 教育部.关于进一步加强高等学校本科教学工作的若干意见[R].教高[2005]1号.
[2] 周苏,金海溶.操作系统原理实验(修订版)[M].北京:科学出版社.2008.1.
[3] 颜彬.计算机操作系统[M].北京:清华大学出版社.2009.
[4] 徐虹,何嘉,张钟澍.操作系统实验指导――基于Linux内核[M].北京:清华大学出版社,2008.
[5] 孟静.操作系统教程题解与实验指导[M].北京:高等教育出版社.2004.
关键词:网络工程专业;网络程序设计课程;教学内容
截至2008年,我国已经有143所高等学校开设了网络工程本科专业,其中大学类高校89所,“211”大学21所,学院类高校54所,高校所在地覆盖全国26个省和直辖市[1]。网络工程专业培养的是具有良好科学素养,系统地掌握网络工程技术的基本理论、方法与应用,有较强的获取新知识的能力、创新能力和实践能力,能从事网络工程及相关领域中的系统研究、设计、运行、维护和管理的高级工程技术人才。因此,该专业不仅要求学生掌握与网络工程相关的基础知识与理论,以及各种网络系统设计、建设与维护技术,如网络协议体系、网络互连技术、网络服务、信息安全、组网实践、网络测试与管理等相关知识,也要求学生掌握基本的网络应用软件与系统开发知识与技术,满足毕业生在今后的工作与学习过程中的多元需要。
为了让网络工程专业的学生掌握一定的网络应用软件与系统开发知识,很多高校都开设了网络程序设计或网络编程课程。然而,由于网络工程专业在大多数高校的开设时间不长,相关任课教师对网络程序设计课程的教学还缺乏足够的经验,因此对教学活动中的一些基本问题,如课程内容设置与学时分配、实践环节内容与安排等还缺乏统一的认识[2-3]。本文依据网络工程专业的培养目标,结合我们在教学过程中
的体会,对该课程教学活动中的基本问题进行了初步探讨,阐述了作者对这些问题的理解和认识。希望本文能引起更多同行对网络程序设计课程的关注,从而尽快提高该课程的建设水平。
1教学目标与特点
1.1教学目标
根据网络工程专业的培养目标,我们认为网络程序设计课程的教学目标是让学习者了解网络程序设计的基本概念和常用的网络编程接口,理解网络程序设计的基本原理,掌握基本的网络程序设计模型,同时具备进一步学习新的网络编程知识与技术的能力。网络工程专业的网络程序设计课程应重点教授基于网络编程接口的网络程序设计基础知识,为后续使用和开发网络应用系统打下基础。有别于信息管理类专业面向Web的网络程序设计,本课程的中心内容是基于操作系统套接口的客户/服务器程序开发技术。
1.2课程特点
程序设计课程对计算机类专业的学生来说并不陌生,但其多针对具体的程序设计语言,以学习某种程序设计语言的基本语法和用法为主。网络编程接口在本质上与编程语言无关,因此网络程序设计与以前
作者简介:纪其进(1974-),男,讲师,工学博士,研究方向为计算机网络与多媒体通信;朱艳琴 (1964-),女,教授,工学博士,副院长,研究方向为计算机网络与信息安全。
的程序设计课程并不相同。网络应用程序具有以下两方面的主要特点:
1) 程序结构较为复杂。网络程序至少涉及客户端与服务器两方面,且需要双方协同配合,因此程序的结构和逻辑都比较复杂。
2) 网络程序设计对操作系统知识和网络知识的依赖性很强。比如,多线程技术是避免程序在交互过程中发生阻塞的基本手段,因此开发者至少需理解操作系统的进程与线程的概念及多线程程序设计技术。再如消息驱动是Windows系统的基本机制,Windows网络应用程序开发也需要理解消息驱动机制。利用网络接口编程需要理解底层网络协议,特别是与网络接口直接相关的运输层协议知识。
2内容设置与学时分配
运输层以下的网络协议功能在操作系统内核中实现,或利用系统应用编程接口(API),通过专业的函数库实现[4]。尽管IEEE已经制定了网络编程的接口标准,各操作系统通常也支持标准接口,但一般会结合系统自身特点,对标准接口进行修改或扩展。因此,实际网络编程接口实现与操作系统密切相关。当前,Windows系统占据了工作站(含台式机)与小型服务器市场的主要份额,Unix系统(含Linux)则在服务器特别是大型服务器市场中仍然占据主导地位。考虑到学生毕业后的实际工作情况,接触Windows系统的机会应该更多。因此,教学内容选择的指导思想是以Windows平台网络编程接口为主,同时兼顾标准网络编程接口。
网络程序设计是网络工程专业的一门骨干专业课程,教学内容较丰富,实践性要求高。根据网络程序设计课程的教学目标和特点,我们为该课程安排了以下课堂教学内容:
第1章 网络程序设计基础知识。本章介绍网络编程相关的基本概念和知识,内容包括网络程序设计概念、进程与线程的基本概念、TCP/IP协议及其在操作系统中的实现、基于客户/服务器模式的网络应用程序模型等。
第2章 基于Berkley套接口的网络程序设计。Berkley套接口是事实上网络编程接口标准,它出自于Unix系统,Windows系统也尽可能地与之兼容。本章重点阐述Berkley套接口的基本用法,包括套接口编程的基本概念、面向连接的套接口编程、无连接的套接口编程及原始套接口编程等。
第3章 Windows程序设计基础。在Windows平台上进行网络程序设计离不开Windows系统编程知识。本章介绍Windows编程的基础知识,包括Windows操作系统的基本原理、Windows API的实现机制与调用方法及Windows消息机制。
第4章 Winsock网络编程接口规范。Winsock是Windows系统中的套接口实现,经历了Winsock1.1到Winsock2.2版本的发展。本章在第3章的基础上全面介绍Winsock网络接口规范及其使用,包括Winsock1.1及Winsock2.2的扩展能力。
第5章 基于MFC 套接口类的程序设计。MFC利用面向对象技术,对基本的Windows API进行了封装。Winsock编程接口的主要功能被封装成为CAsyncSocket和CSocket两个类。本章将通过实例说明这两个类的用法。
第6章 Windows多线程网络编程技术。多线程可以避免网络应用程序被某个调用阻塞。本章介绍多线程技术的必要性、Windows系统的多线程机制、MFC对多线程的支持及多线程机制在网络编程中的应用等。
第7章 Winsock编程接口I/O模型。支持异步网络程序开发是Windows系统的特色,为此Winsock引入了5种I/O模型实现非阻塞的套接口工作模式。本章分别介绍5种异步I/O模型的原理与使用。
第8章 Winsock编程接口选项与I/O控制命令。套接口选项和I/O控制命令是在套接口建立以后对其各种属性进行操作。本章介绍Winsock编程接口的基本选项及主要I/O控制命令的用法。
第9章 网络程序设计实例。网络编程技术具有很强的实践性,学习与分析实例可以更好地理解基本知识与技术。本章通过讲解分析实例中的各种网络编程技术巩固前面所学的知识,为以后的综合应用打下基础。
本课程重在教授网络编程的基础知识与技能,内容选择主要是为了满足教学需要,而非求全求深。因此,部分网络编程相关知识没有在课程中出现,如Winsock对网络服务质量的支持、IPv6版本套接口等。
本课程的重点内容在第3~6章。其中第3章是整个网络编程的基础部分,而第4章和第5章则包括了Windows平台下网络程序设计的基本知识,第6章的多线程技术是无阻塞同步网络编程的基本技术。第7、8两章内容与操作系统关系较密切且较抽象,是课程的难点。我校为该课程安排64 学时,其中理论讲授48学时,实验教学16 学时。根据重点难点内容分析结果,我们按表1分配课堂教学学时。
3课程实践环节
3.1实践环节的必要性
传统的网络课程教学方法多以讲授计算机网络基础理论为主、少量的验证性实验为辅。网络程序设计本身是一门实践性非常强的课程,对引导学生掌握最新的网络编程技术,培养学生的动手能力、协作精神和创新能力都具有重要作用。在学生学习过程中,如不注重理论和实践紧密结合,则不仅所学基本知识难以得到深入理解和巩固,更不能将其灵活运用于解决新的问题。因此,教师在系统讲述网络编程基础知识的同时,要充分调动学生的主动性,认真完成网络编程实验的教学。
3.2教学组织与学时分配
实验是基本的实践教学手段。通过实验教学,学生可以更快地实现从概念理解到实际编程能力的转变。每次实验前,教师首先讲解实验的设计目标、要求和所需的编程技术,要求学生做好充分的准备工作,进行初步的需求分析和程序设计。在实验过程中,教师通过解答学生提出的需求分析、设计与实现问题,为学生提供帮助。实验结束后,学生需按一定的格式规范按时提交实验报告;教师通过实验报告检查和评价学生的实验质量。如有条件,可组织学生对实验结果进行简短的讨论,让学生总结和分析自己的实验体会。
我们根据网络程序设计课程的教学大纲和实验大纲制定了实验计划。实验包括验证型、设计型和综合型实验三种。验证型实验主要让学生理解所学的网络编程知识,通过重复课堂示例掌握某一项网络编程技术。设计型实验需要学生利用某一项网络编程技术,根据具体问题要求设计并实现一个网络应用程序。综合性实验需设计并实现一个相对复杂的网络应用程序,其中需用到多种网络编程知识和技术。全部实验内容包括Berkley套接口编程实验,Winsock套接口编程实验,利用原始套接口进行PING 程序的设计及实现,基于MFC套接口类的网络编程,电子邮件程序的设计与实现(SMTP客户端、POP3 客户端程序)或FTP客户端实现及聊天室软件的设计及实现。实验报告与其他课程基本类似,有相应的实验题目、实验目的与要求、实验步骤和实验结果等内容。实验结果要包括实验过程中的问题分析、解决方式及心得。表2总结了实验的内容与学时分配计划。
有条件的学校还可以集中1周左右的时间进行课程设计。课程设计以课程教学内容为基础,实现一个具有一定规模和实用价值的网络应用系统。课程设计对所学的理论知识及实验中所学的各种方法与技巧进行综合性应用,对培养学生综合分析能力、编程动手能力具有重要作用。课程设计报告包括系统需求分析、功能设计及各模块详细设计等,类似于计算机类毕业设计论文格式。
4结语
网络工程专业是近年来为满足社会信息化需求而出现的相对较新的专业。该专业目前还没有一个明确的规范,开设该专业的各个院校对某些课程的教学尚缺乏统一的认识。本文以该专业的培养目标为依
据,结合个人教学过程中的体会,探讨了网络工程专业网络程序设计课程的基本问题。文中讨论了该课程的教学目标与特点,给出了具体的课程内容设置和实践环节安排建议,希望对完善网络工程专业以及网络程序设计课程建设具有一定的借鉴意义。
参考文献[ 规范格式]:
[1] 刘悦,张远,贾忠田. 高等学校网络工程本科专业的科学规范探讨[J]. 计算机教育,2008(4):120-121.
[2] 王一飞,吴素芹. 网络编程技术课程教学研究与探索[J]. 科技信息,2008(34):20.
[3] 冯健昭,肖德琴. 网络编程教学改革探索[J]. 现代计算机,2009(8):69-70.
[4] 叶树华. 网络编程实用教程[M]. 2版. 北京:人民邮电出版社,2010.
Discussion on Network Program Design for Students Majoring in Network Engineering
JI Qi-jin, ZHU Yan-qin
(School of Computer Science and Technology, Soochow University, Suzhou 215006, China)
关键词:数据库;性能调优;课程;教学;实验
数据库系统原理课程是计算机学科本科教学的一门非常重要的专业基础课,数据库系统不仅是最重要的系统软件之一,而且是应用信息系统开发的基石,它在计算机学科体系中占据重要地位。课程的教学目的是让学生对数据库系统的基本概念和原理有较全面的了解,同时具备使用数据库管理系统软件和开发数据库应用系统的能力。
数据库系统原理课程的教学内容主要包含关系数据模型、SQL语言、数据库设计、XML、数据存储、查询处理和事务管理等,是一门实践性很强的课程[1]。实验教学是数据库课程的重要组成部分,实验内容一般包括小型数据库管理系统实现、应用系统开发、SQL查询等,这些实验对于加深数据库基本概念和原理的理解,提高数据库应用开发能力具有重要的作用。
数据库性能调优是在实际应用开发中必然要遇到的一项工作,这项工作要求开发者既要具有广泛而深入的数据库原理和系统实现知识,又要有扎实的应用设计能力,熟悉操作系统和有关软硬件环境[2]。把性能调优作为数据库系统原理课程的一项综合性实验,可以帮助学生加深了解数据库基本原理,学会分析问题、解决问题的方法,提高计算机综合实践能力。
1性能调优实验的重要性
1) 性能调优实验符合数据库课程的实验要求。数据库系统原理课程内容丰富,只有通过动手实践才能真正深入地理解和运用这些概念和原理。课程实验的要求,一方面是深化对课程内容的理解,另一方面是提高综合运用并解决实际问题的能力。性能调优实验涉及到课程的各个方面,包括SQL语言、数据库设计、数据存储、查询处理和事务管理等,可以针对具体问题设计非常多的实验素材,结合知识点学习进度合理选择具体实验内容,在进度安排上也非常容易。另外,性能调优实验有难有易,可以根据不同的学生层次进行选择,一个学期中可以安排1个或若干个实验。 2) 性能调优是数据库学习的重要内容。性能调优本身是数据库应用开发的一项重要工作,它可以使数据库应用运行得更快更好,达到更高的吞吐量或更短的响应时间。数据库性能调优远不是按照有关指南通过短短几步就可以达到的,它需要扎实的理论基础和高超的问题处理技巧,要想获得满意的结果,调优者需要综合考虑缓冲池大小、数据结构、锁争用、应用程序需求等因素之间的复杂关联,另外到操作系统的配置甚至硬件,进行综合判断,涉及到数据库技术的方方面面。
3) 有利于提高学习的兴趣和动力。采用的性能调优实验都来自于实际应用开发,具有实践性强的特点,与实际应用相结合的实验过程可以让学生真正地投入到其中,感觉就像是自己动手解决一个实际问题,而不仅仅是为了应付课程作业,这种身临其境的体验可以极大地促进学生的学习兴趣,可以有效地促进探究型教学的开展。反过来,通过实验又可以让学生了解应用开发中所要解决的问题,从而更主动地学习课程内容。
4) 有利于培养学生独立的科研和工程能力,在教学改革中实现探究型教学。性能调优实验的过程是由教师提出问题并引导学生如何利用学到的知识来解决问题,学生通过自主地建立实验环境、测试运行、收集数据、综合分析、推导结论等环节来实现,实验的结果因人而异,并没有一个标准答案。在这个过程中,学生可以充分地体验到自主探索的乐趣,这是一种典型的探究型教学方法,可以让学生初步了解如何独立开展研究,解决实际问题。
2实验设计
2.1实验过程和要求
实验过程包括教师和学生两部分,如图1所示,教师部分以双线框表示,学生部分以单线框表示,整个过程分为实验内容选择、任务分配、实验方案设计、实验环境建立、测试运行、数据收集、分析总结、演示答辩、评价反馈、实验报告撰写、对提交的报告评分等环节。
实验的总体要求是学生按照教师给出的问题叙述,利用课程学习到的知识,在教师指导下自主完成实验方案设计和运行测试,提交的成果是综合实验报告,报告内容包括背景说明、方案设计、实验环境、测试过程、数据分析、实验结论、体会和收获等。实验一般要求利用常见的大型关系数据库,通过开发实现测试程序,调整参数,测试相关因素对数据库性能的影响。除了综合实验报告外,还可以要求学生提交详细的测试程序代码和文档。
2.2实验内容设计
以下给出几个具体的性能调优实验内容,进一步说明实验的要求,当然这样的实验有很多,可以结合具体的教学内容进行选择。
1) 缓冲区大小对数据库性能的影响。
数据缓冲区是在内存中设置的一块区域,为事务处理提供共享数据,引入缓冲区希望达到的一个主要目标就是减少对磁盘等二级存储的物理存取,事务在内存中读取数据的命中率很大程度上取决于缓冲区的大小,所以缓冲区大小是数据库系统的一个重要参数,是需要在应用系统运行中重点考虑的因素之一。在数据库实例运行的不同时期,数据缓冲区对物理内存的需求是不同的,当工作负载较大时,较小的数据缓冲区会造成频繁的I/O换页操作;当工作负载较小时,较大的数据缓冲区会造成物理内存的闲置,因此合理设置缓冲区大小,对数据库性能有较大影响。这个实验的目的是让学生充分理解缓冲区的概念和原理,并学会如何在实际应用中选择合理的缓冲区大小。
要求设计多组数据库应用,分别模拟高、低负载等多种情况,测试这些应用在不同大小缓冲区下的性能变化,性能指标可以选取吞吐量和响应时间。最好的策略是不断增加缓冲区大小,直到性能不再随缓冲区的增大而提高,从而找出最佳的缓冲区大小。实验可以采用Oracle、SQL Server或MySQL等数据库管理系统,这些数据库都提供了调整缓冲区大小的功能。
2) 规范化对查询性能的影响。
在数据库表设计中,要综合考虑应用需求、规范化、存储空间、事务处理性能等因素,一个良好的设计是多种因素的平衡。在表设计中规范化的要求一般是要达到3NF或BCNF,但有时逆规范化会带来性能的提升,例如以下两种表设计(表来自于TPC-C基准测试,做适当简化),设计1符合BCNF要求,占用存储空间少,但对于“查询在某城市购买的所有零件”,设计2在性能上要优于设计1。
模式设计1:
Customer(C_ID, C_NAME, C_CITY)
Order(O_ID, C_ID, O_DATE)
Order_Line(O_ID, ITEM_NAME, ITEM_QUANTITY, ITEM_AMOUT)
模式设计2:
Customer_Order(C_ID, C_NAME, C_CITY, O_ID, O_DATE, ITEM_NAME, ITEM_QUANTITY, ITEM_AMOUT)
实验的要求是针对不同的表设计,包括采用逆规范化、垂直划分等方法,考察在不同应用需求环境下,存储空间、性能等的差别,并在实践基础上总结出应用开发中表设计应该遵循的一些基本原则和方法。
3) 索引对查询性能的影响。
索引是提升数据库查询性能的重要手段。实验中,要求学生设计多种不同的索引场景来研究索引对数据库查询性能的影响:(1)没有索引的场景;(2)在查询属性上建立单属性索引的场景;(3)在查询语句涉及的多个属性上建立复合属性索引的场景。
学生可以通过数据库管理系统工具,考察在不同索引场景中的查询执行计划,并探究针对某个特定查询的优化索引方案。
3讨论分析
我们在数据库系统原理课程教学中进行了性能调优实验的实践,学生反映普遍很好,取得了预期的效果。根据在具体教学过程中反馈的意见,选择性能调优实验还需注意以下一些问题:
1) 性能调优实验较适合于计算机相关专业的本科生,尤其是开展探究型教学改革的课程。性能调优是数据库系统的一项复杂工作,涉及到多方面的知识,学生除掌握数据库基础知识外,还需对操作系统、硬件等有一定的了解,另外还要求学生有较高的实验方案设计能力,综合的计算机实践能力,不适合初学者。
2) 要结合学生的具体情况设计合适的性能优化实验,这需要教师对性能调优实验的难易程度有较高的掌控,充分了解学生的实际情况,包括已学习过的其他课程情况。性能调优实验有难有易,可以针对不同的学习层次和要求进行选择,做到循序渐进,既不能让学生感到问题太难而无所适从,又要有一定的难度,让学生通过实际操作提高计算机实践能力。
3) 教师在进行实验评分时要根据实验小组内每个成员的情况区分对待。由于性能调优实验需要发挥学生的综合能力,比较适合于2~4人的小组协作完成,同时还可以培养团队精神,但在评分时也要考虑到一个小组内不同人的贡献是不一样的,甚至还会出现有些小组的成员完全不出力的情况,防止这种情况的比较好的方法是教师在实验过程中要与学生密切沟通,了解真实情况。另外在实验过程中还要设置演示答辩环节,每个小组进行20分钟的汇报,讲解设计方案和结论,汇报分工和合作情况,教师进行质询和点评等,可以指定小组内某个成员回答,这样一方面通过反馈意见促进学生进一步完善实验成果,另一方面也减少抄袭、出工不出力的情况。
4结语
以前的数据库系统原理实验中,都较多地采用小型数据库管理系统实现、应用开发、SQL语言等实验,我们采用性能调优作为数据库课程实验,结合探究型教学方法,在实验过程中,学生在教师的指导下,独立设计实验方案,自主分析和解决问题,有效地提高了学生的综合动手能力,在实践教学中取得了很好的效果。进一步的工作包括优化实验过程、设计更多更完善的实验素材等。
参考文献:
[1] 王珊. 数据库课程教学改革:面向21世纪课程教材与国家精品课程[J]. 中国大学教学,2006(4):14-17.
[2] Dennis Shasha,Philippe Bonnet. Database Tuning Principles, Experiments, and Troubleshooting Techniques[M]. San Fransisco:Morgan Kaufmann Publishers Inc.,2002:1-8.
Design and Practice of Performance Tuning Experiments in the
Course of Database System Principles
LIN Huai-zhong, SUN Jian-ling, ZHOU Bo, CHEN ling
(College of Computer Science and Technology, Zhejiang University, Hangzhou 310027, China)
严格管理和方便应用是矛盾的两个方面,在机房管理上,绝大部分职业学校采用主板按装硬盘还原卡,BIOS设置了密码,安装管理软件屏蔽了控制面板、禁止USB口使用等维护和管理机房;这样严格管理,学生上机实验时受到限制,严重阻碍到学生从实践中真正体验真实的实验环境,学生无法练习操作系统的相关设置,好多实验无法完成。而如果放开管理,学生上机实验中,删除系统文件、非法调用系统参数等错误操作时,整个操作系统便会陷入一种瘫痪的状态之中。恢复难度增大的同时,也给管理员造成极大的负担,还会影响接下来的实验课程。硬盘还原卡也有其不足之处,不支持Linux系统,占用较多的磁盘空间,系统还原的速度也比较慢等[1]。
2计算机实践教学实验内容受限
(1)计算机的某些系统维护实验,要对磁盘进行破坏性实验,担心损坏硬件设备,教师一般采取课堂演示或以讲代练的方式进行教学,无法让学生很好地动手操作。(2)Windows系统下RAID技术实验,教师只能从理论上去分析讲解,无法在课堂上演示,学生也无法通过实验加深理解。(3)计算机局域网的组建、网络配置、Telnet、FTP、IIS等各种网络服务的配置、远程访问和路由的设置等,需要用到多台计算机和多台HUB,而现在的教学条件有限,学生学完课程却无法解决实际问题[2]。(4)网络安全实验,计算机面临着网络病毒的危害越来越严重,维护计算机的网络安全就显的非常重要。教师只能在课堂上口述网络病毒的性质和危害,学生似懂非懂[3]。
3计算机实验教学管理新模式
3.1实验室建设上实施(1)加大实验室建设经费投入;(2)整合、重组现有的设备,改变其交叉分散重复设置;(3)通过校企合作,产、学、研的途径,改善实验环境;(4)联合办学,资源共享等[4]。
3.2运用虚拟技术的构建虚拟实验环境(1)虚拟化技术是指将一个物理单元虚拟成多个逻辑单,供多个应用一起使用。通过安装虚拟机软件,在实验室原有的计算机硬件设备配置基础上,创建虚拟计算机和网络设备等,构建虚拟计算机实验环境这样做的主要目的,是为了提高资源的使用效率并方便管理各种资源[5]。(2)实现了在Windows系统平台上对虚拟机系统VMwareWorkstation的部署,并在虚拟机系统中搭建了WindowsServer2003平台。(3)使用虚拟技术解决了某些目前在高校实验室管理建设上的难题,实现了对Windows和Linux系统平台的虚拟化教学,也可应用于某些具有破坏性课程,如:①网络安全实验。有了虚拟机后,教师可以在虚拟机系统上植入病毒文件,开展网络病毒攻击计算机的模拟实验,同时进行计算机针对网络病毒的安全防御操作,这样一来,可以让学生更加直观清楚地了解和掌握网络病毒以及安全防御的相关知识[6]。②系统维护实验。CMOS设置、硬盘格式化、操作系统的安装和调试等。
3.3实行开放式实验教学实现时间、空间、内容和形式的全部开放,提供开放式的实验指导。开放实验教学以学生为本,从时间、空间、内容和形式上全部向学生开放。时间上可以按自己的节奏预约,不受课程表的制约;空间上实验室全部面向学生开放,自由选择仪器设备;内容上凭兴趣、爱好选择实验项目。这样突显了学生的个性,刺激了学生创造性的发挥。
摘要 本文从实验课计划和提纲、实验前的准备工作、实验课的实施和总结几个方面介绍了怎样上好计算机课程的实验课。
关键词 计算机课程 实验课
计算机科学的课程不但有较强的理论性,也有较强的实践性,理论和实践是紧密相关、相辅相成,理论指导实践,实践加强对理论的理解,特别是以职业教育为主的大专院校,计算机课程的实验课在教学计划中所占的比重是相当大的,例如,我系计算机专业教学计划中FoxPro程序设计的总课时数是80,其中讲课44课时,实验36课时,由此可见,计算机课程的实验课是计算机教学不可缺少的重要环节,有着举足轻重的作用。
在计算机课程的教学中开设实验课,就是给学生一个理论和实际相结合的机会,学生在实验中必须亲自动手操作,来加深对计算机理论知识的理解,掌握计算机是怎样操作、如何运行的。通过上机实验让学生演示和操作软件的各种功能,了解它的特点和作用,逐步熟悉和掌握软件的功能及使用。尤其是《数据结构》,《高级语言程序设计》,《数据库程序设计》等课程,学生在实验中要自己编写程序,在计算机上进行编辑处理,程序调试和运行,从中可以发现问题,改正错误,学习编程的经验,最终获得所需的结果。因此,如何开好计算机实验课,对促进学生掌握理论知识,提高实践动手能力有积极的作用。下面我们从几个方面来讨论怎样上好计算机课程的实验课。
1.完善的实验课计划和提纲
上机实验计划是实验课的总体安排。包括实验题目、时间、地点、课时分配、实验次数,硬件和软件环境等内容。以便任课老师和实验室管理人员之间能够很好的配合,提前安排上机实验的有关事项。每一次上机实验都要有实验提纲。实验提纲格式为:
(一)实验题目
(二)实验目的
(三)实验要求
(四)实验内容
(五)实验步骤及注意事项
(六)实验思考题
实验提纲必须和实验计划一起编制,两者协调一致,实验提纲是实验计划的具体内容和实施细则。由系或者教研组组织有经验的教学效果比较好的专业课教师,对每一门计算机课程的实验计划和提纲进行精心策划,统一编制,在教学中不管是那个老师上这门课,都要按照统一的实验计划和提纲进行实验,学生在实验提纲的指导和安排下上机,完成实验课程,根据实验提纲执行情况书写实验报告。教师也是按实验提纲的要求来检查实验结果,评定学生成绩。因此,教师在进行实验提纲编制时对每门课程的每一次实验课都要有周密的安排,进行精心的设计。
2.计算机实验课程的准备工作
计算机实验课程的准备工作是非常繁琐同样也是非常重要的,通常包括以下几个方面的工作:
(1)硬件环境
实验室内学生上机所需的计算机及有关外部设备都要能正常运行,功能完好,适合学生上机实验,学生所用的磁盘要合理分配,集中管理,一些辅助教学设备(如投影仪、无尘黑板等)都要能满足上机实验的要求。
(2)软件环境
实验室管理人员要根据实验计划,选择好所需的操作系统软件、高级语言环境、应用系统和辅助教学软件,预先把这些软件装入计算机内并调试好随时可供调用。若有网络环境,管理员要为每一个上机的班级设置各自的帐号,根据实验计划分配所需的软件和必要的权限。另外,版本新、功能强的杀毒软件也是必不可少的,管理人员要随时用它来清除计算机系统内的病毒。
(3)组织和管理
计算机的使用要严格管理,要保持良好的秩序、严令学生遵守实验室各项规章制度,有条件的实验室要实行学生上机自动管理(学生上机之前用上机证划卡,系统自动为学生分配一个机号,该生即可在这台计算机上上机,否则该生不能上机),该系统还可以自动记录学生的上机时间,我们曾经根据这个功能破获了学生盗窃计算机内存芯片的案件。如果实验学生的人数超过计算机台数,最好是分组进行实验,使每个学生都有上机的机会,同时也便于管理和辅导。管理人员要严格控制学生使用外来磁盘,预防计算机病毒带入实验室。
(4)教师和学生
教师要对实验课的全过程进行周密的思考,要避免出现漏洞和疏忽;而学生要按实验提纲作好实验课前的准备工作,特别要学生自己编程上机时,学生一定要在上机前准备好程序,实验时主要是编辑输入程序和调试程序。
3.实验课的实施
计算机实验课是计算机课堂教学的继续,也是教学效果的初步体现。为了上好计算机实验课还必须做好以下工作。
实验课开始时,老师要重申本次实验课的目的和要求,指明实验要点和要注意的事项,对实验中的疑难之处和可能出现的问题要给予必要的提示和说明。在实验过程中学生初次使用的应用软件或生疏命令,教师要首先进行演示和讲解。
在实验中要尽可能发挥计算机的优势,充分利用计算机辅助教学软件和多媒体教学手段,特别是学生进行程序设计的实验时,教师可以先演示和讲解自己在科研工作中开发的一些应用软件,将一些程序设计的经验传授给学生,使学生有了一些感性认识以后能尽快动手进行程序设计。另外,教师要根据教学内容选择一些效果比较好的辅助教学软件,例如,《数据结构》课程的实验课,可选择集编辑、编译、调试为一体的Pascal可视集成环境VP1和算法与数据结构的作业系统AD1,Pascal源程序可以在VP1上可视执行,能同步演示程序和数据的动态视图,为学生理解算法、学习编程,调试程序提供了便利的环境,AD1可对数据结构的程序设计作业进行测试评分,可以大大提高软件基础课的教学效果和质量。
最后一点,对学生的基本技能的训练要有高标准严要求,学生在操作计算机时一定要按规范和标准进行,如,开机、关机、入网、退网等要按正确的步骤,键盘打字的姿势要正确,特别是学生在编程时要训练学生养成良好的编程习惯和风格。要注意培训学生在计算机使用中的应用能力和应变能力,为学生今后独立操作和使用计算机打好基础。
4.实验课的总结
通过上机实验,学生对老师讲授的计算机理论知识、技术和有关算法都有了较为深刻的体会和认识,每个学生都会有不同程度的收获。此时,教师要及时督促学生总结上机实验中的收获,巩固所学的知识。为此,要求学生写好实验报告。
实验报告直接体现了学生上机操作的情况,是对实验过程进行概括和总结,具体内容如下:
(一)班级、学号、姓名、实验时间及课时数
(二)实验题目
(三)实验目的
(四)实验要求
(五)实验过程
关键词:案例教学;网络程序设计;评价体系;实践教学
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2015)28-0276-03
一、背景
随着计算机和网络的普及,在我们身边,随时随地都在利用各种应用程序实现用户之间的交互。打开浏览器,打开各种各样的聊天和通信工具,我们随时接触到的是网络。未来的IT产业,计算机网络相关的应用将成为核心。高性能的服务器设计、分布式程序的管理、数据的高效传输以及数据传输过程中的安全控制等,都是网络程序设计者要考虑的问题。“网络程序设计”作为“计算机网络”的后续课程,是计算机相关专业的一门重要课程,该课程将计算机网络技术及实践应用有机地结合,对学生加深理解和运用计算机系统、计算机网络的基本原理及程序设计能力的提高等,都起到至关重要的作用。无论学生将来是从事软件工程、网络工程项目的设计与开发,还是计算机网络相关的科研和管理工作,都极有可能需要进行网络程序设计,因此这门课程在教学中占有重要地位。但在实际教学过程中,我们发现不少学生存在程序设计能力不强、操作系统及计算机网络基础知识不扎实等问题,主要体现在以下几方面。
1.学生编程能力差,不能熟练运用VC开发工具。目前的一些高级开发工具,如VC、Java、VB、.NET、Delphi等,都可以实现基于网络协议栈的编程,但是除了VC以外,其他开发工具都是在一个较高抽象层次上进行面向对象的开发,利用这些工具学生无法深入理解操作系统网络通信的底层接口,而VC环境提供了底层的网络编程接口,因此通常是作为“网络程序设计”开发环境的首选。但由于VC环境中的MFC基础类库非常庞大,系统结构复杂,应用程序设计接口难于掌握,因此尽管学生在此之前已经学习了“C语言程序设计”及“面向对象程序设计”等基础课程,也很难在短时间内熟练理解和运用VC开发工具。
2.一些前期的专业基础课掌握不扎实。本课程会大量涉及到“计算机网络”和“操作系统”两门课程的基本内容,如线程、进程、同步、互斥等概念;网络协议模型中各层次的地位及工作原理;等等。而这些课程只偏重理论的教学,没有将一些原理应用到实践上,导致学生理解困难,没有办法灵活运用。
3.现有的“网络程序设计”教材内容难易程度往往出现两极分化,有的过于注重基础,只讲授简单的套接字接口、应用层的FTP、HTTP和POP3协议等方面的编程,没有涉及到与身边密切相关的一些网络程序,如广播、多播技术、ARP欺骗技术、P2P数据交换技术等,学生只能学到一些简单的应用,和工作的需求相距较远。有的教材偏难,甚至涉及到底层协议的开发,这样的教材也不适合应用型本科层次的学生。
针对以上问题,本文根据多年的“网络程序设计”课程的教学经验,对该课程的理论教学及实验教学内容进行了探索,提出了教学改革设想,针对理论和实践教学内容、教学方法和教学评价过程进行了研究,提出了适合于应用型本科计算机专业“网络程序设计”课程的改革方案,并在教学过程中进行了实践,实践结果表明新方案在培养学生学习兴趣、巩固基础知识及提高实践能力等方面有一定的积极作用。
二、课程的改革措施
1.教学内容的选取。作为应用型的本科院校,课程教学内容的选择要难易适中,同时符合社会对人才的需求,注重学生能力的培养,本课程偏重于学生的网络编程能力,对操作系统原理、计算机网络知识的理解和运用能力、工程驾驭能力等方面的培养。教学内容既要注重基础,也要注重实际应用的需要,强调课程的工程化和实用性等特点。为了便于学生理解相关的原理,我们针对每一部分教学内容都设计了相关案例,通过案例教学,将操作系统、计算机网络的基本原理、网络协议、一些经典的网络编程技术和实际应用案例等内容有机整合。在理论教学中,我们选择了8个方面的内容进行讲授,并设计了一一对应的教学案例,如表1所示。
在所涉及到的教学内容中,第1部分对过往知识的简单回顾,包括所涉及到的计算机网络、操作系统等方面的知识,并以一些常用的网络程序为例,简单介绍其工作原理;第2部分是考虑到学生没有VC的编程经验,通过对话框应用程序和单文档应用程序,简要介绍MFC的基本框架以及用VC程序的架构、代码的执行过程等;第3部分是对传输层之上的套接字编程接口进行介绍,同时通过设计一个应答的聊天程序,让学生理解套接字的工作过程;第4部分介绍了一个典型的应用层协议FTP的软件开发,其他的如POP3协议、HTTP协议等与FTP协议的开发过程异曲同工,因此没有介绍;第5部分通过多线程方式实现FTP文件的上传和下载,让学生掌握多线程技术;第6~7部分选择的是一些与身边密切相关的网络应用,包括广播和多播、网络扫描和检测技术及点对点(P2P)通讯技术等。
2.实验内容的设计。实践教学环节是对课堂教学环节有益的补充,也是提高学生自身能力的关键环节。考虑到学生自身水平参差不齐,我们根据课堂讲授的内容以及知识点的内在联系,设计由浅入深、由易到难的实验,尽可能选择身边应用比较广泛的案例贯穿实验环节,课堂上所讲的案例可以作为学生上机的DEMO,学生在此基础之上补充和完善。根据难易程度,我们将实验教学所涉及的知识结构分成三个层次:第一层是基础实验,强调学生熟悉VC开发平台和利用套接字接口实现基本网络通讯程序;第二层是高级实验,它在基础实验之上,实现应用层FTP协议的编程、多线程编程、ARP欺骗及打洞编程等;第三层是我们设计了两个综合实验,将综合运用所学的网络知识和编程知识,实现一个较大的程序,学生在完成高级实验时,也可以自己选择题目,但要求选择的题目必须能够体现知识的充分应用。前两层实验要求学生必须在指定的时间内完成,第三层综合性实验要求学生利用课外时间或课程实训时间完成,然后统一在实验室演示和考核。
由于网络程序都涉及到客户端和服务器端的通讯,单独一个学生很难在有限的时间内完成每个实验,因此要求学生进行合理分组,每组2~3人,共同协作,完成实验内容,这也有利于培养学生的项目协同能力。每次实验结束后,要求每个小组提交实验报告,按照软件工程的思想编写报告内容,涉及到问题的描述及定义、问题的解决方案、问题的设计思路与规划、概要及详细设计、编程体会等。实验报告是对每个案例的总结与回顾,可以加深学生对案例及相关理论知识的理解和掌握,锻炼学生的文档编写能力。
3.教学方法的设计。在课程教学过程中,根据其工程性、实用性等特点,我们采用了经典的案例教学法,采用经典案例贯穿整个教学过程,选择的案例尽量保证知识点之间的连贯性,比如在讲多线程编程技术时,可以在已开发的FTP客户端程序基础之上完善完成多线程的上传和下载功能;在讲到打洞技术时,可以在第3部分已经设计的简单聊天程序之上,实现不同局域网之间的通信;等等。在教学时由浅入深、循序渐进,改变传统的“填鸭式”教学模式,从以教师教为主向以学生学为主的方向转移,尽量让学生积极参与到教学过程中。由于该课程有较强的实践性,通过案例教学和实践,很容易激发学生的自主学习兴趣,提高学生的创造性思维。
4.构建合理的学生评价体系。在对学生考核评价体系的改革方向上,力求过程评价与结果性评价、形成性考核与终结性考试、精确性评价与模糊性评价相结合;考核内容应以课程标准为依据,倡导灵活多样的考核原则,考虑学生差异,注重学习和发展过程评价。考核方法不再仅以传统的卷面考试方式来评判,实验过程的评价占有较大的比重,根据学生在小组中承担的工作量及小组的完成情况,给出每个学生的成绩,这样可使一些动手能力强但考试成绩不理想的学生获得满意的评价结果。
三、结语
通过对“网络程序设计”课程的教学改革,我们设计了符合应用型本科人才教学的课程教学内容,根据课程工程性、实用性的特点,将教学理论与实践应用紧密地结合,构建案例教学的模式,促进学生构建良好的知识体系。在上机实践环节,我们采用了分组的方式,充分发挥了每个学生的优势,增强了学生的动手能力、写作能力。实践表明,改革后的教学方法有效地解决了以往教学中存在的学时少、学生动手能力差、理论与实践脱节、知识理解和掌握不牢固等问题,取得了良好的教学效果,对其他课程的教学和实践具有重要的指导意义。
参考文献:
[1]蒋峥峥,陈晓红,王进,等.网络工程专业“网络程序设计”课程的案例教学实践[J].计算机教育,2013,(2):27-31.
[2]刘琰,常斌,罗军勇,等.面向能力培养的网络编程技术课程教学方法探讨[J].计算机教育,2010,(18):52-55.
[3]王云儿.新建应用型本科院校以能力为导向的学生学业三维评价模式探析[J].教育研究,2011,(6):102-106.