




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中美两国高校本科教育改革的比较及启示 摘要:本文从本科生的培养模式、课程设置、教学方法及校园文化建设等方面对比了中美两国高校的计算机专业本科教育体系,分析了两种教育体系的优缺点。关键词本文来自:计算机毕业网 :本科教育;教育改革;中美两国1 美国研究型大学本科教育改革对我国有着很好的借鉴作用在高等教育发达的美国,早在上个世纪80年代就展开了研究型大学本科教育改革,1983年4月,美国全国高教质量委员会发表了国家在危难中,教育改革势在必行的报告,揭开了美国大规模教育改革的序幕。之后美国卡内基教育促进发展基金会又分别发表了学院美国本科生教育的经验和重建本科生教育:美国研究型大学发展蓝图(又称博耶报告)两份报告,这两份报告指出了本科教育的8个冲突问题,并提出了改革本科教育的14点建议及10条途径。这两份报告对美国的本科教育改革起了很大的推动作用。报告公布后,各研究型大学都开始结合本校实际从以上十方面积极改进本科教育,掀起了研究型大学本科教育改革的浪潮。为了了解现状、深化改革,卡内基委员会又于2001年5月开展了一次“重建本科教育:博耶报告三年之后”的调查研究。调查对象涉及全国123所研究型大学,调查发现本科教育地位有所提高、方式有所改进,十条建议得到了相当的响应,美国高校本科教育质量得到了根本性的改变和提高,正在吸引越来越多的全世界优秀学子赴美完成本科教育。中国当前正处在本科教育改革的关键时期,学习、借鉴美国本科教育改革的成功经验,对促进我国本科教育改革有着非常重要的意义。2 中美高校本科教育的比较及启示笔者在2006年曾经到美国依利诺伊大学香槟分校计算机系进行过为期半年的交流学习,本文以下部分结合本人的亲身体会对比中美本科教育在培养模式、课程设置、教学方法、考试形式等方面的差异,分析当前制约我国本科教育发展的因素,从而取长补短,促进我国本科教育的改革和发展。2.1确立以研究型学习为基础的培养模式在博耶报告发布之后,美国研究型大学纷纷调整本科教育的培养模式,将本科教育的重心从被动学习、接受知识转移到以研究和发现为基础的过程上来,本科学生的学习以研究为基础,充分利用研究生教育和科研项目资源为本科教育服务。笔者在依利诺伊大学香槟分校计算机系旁听过多门计算机专业本科课程,发现大部分计算机课程都没有统一教材,教学的内容和进度由老师提供的课程提纲(Syllabus)来决定,但老师一般会给学生指定一批参考书。这样的教学方式导致学生课后要做大量的阅读、归纳、分析和总结,根据老师提供的课程提纲来构建这门课程的知识体系,有很多知识需要经过自己思考和实践才能得到。这种教学方式的好处是不言而喻的,但不好的地方就体现在教学的质量很大程度上取决于授课老师的水平和责任心,有一定的随意性。而我国大部分高校的本科培养模式更多体现出来的是一种知识传授的培养模式,非常重视教材的选择,所选教材的内容体系就是课程的内容体系。在这种方式下,教材的选择就非常重要,好的教材可以节省老师和学生时间,提高效率。但不好的地方就体现在对教材的依赖过大,教学活动受到一定的限制,学生比较被动的接受知识,缺乏压力去查资料、归纳分析所学内容。在我国目前高校师资紧张、班级学生人数众多、教学资源不足的情况下完全采用美国的研究型学习培养模式并不一定适合,这样将导致教学水平难以监管,学生发展不均衡。但是我们可以考虑在目前这种知识传授的培养模式下逐步引入研究型学习的意识,在一些适合的课程里面进行研究型教学的试点工作,不指定教材,将学习的主动权交给学生,逐步确立以研究型学习为基础的培养模式,从而培养学生终身自我学习和研究的能力。2.2确立跨学科发展的课程设置体系美国研究型大学很早就确立了通识教育和跨学科发展的概念。由于科学技术的发展,对于一些综合、复杂的问题越来越需要多种知识、理论和方法予以解决,跨学科成立研究中心已经成为一种趋势。近年来,美国研究型大学纷纷成立跨学科教学和研究中心,打破院系的界限,整合教育科研资源,积极推进跨学科教学和科研。例如2003年哈佛大学(Harvard)和麻省理工学院(MIT)各自建立了一个跨学科研究中心(Center of Excellence),中心集合了来自生物学、数学、统计、工程学和计算机信息科学等方面的专家,大家协同合作解决系统生物学问题。而我国大部分高校之间院系界限分明,不同学院师生之间的交流比较少,学生基本上没有跨学科选课。为了培养学生综合的学科应用能力和开阔的视野,本科生教育应该采取跨学科的方式,打破院与院之间长期形成的相互独立的这种局面,建立一种跨学科本科生教育机制,开设一定数量的跨学科综合课程,允许不同学院的学生互相选课,培养宽口径、复合型人才。2.3采取讲授、讨论、个案分析、角色扮演等多种教学方法,激发学生自主学习的积极性美国高校的课堂教学方式多样,主要表现有讲授、讨论、个案分析、角色扮演等。低年级的课程以讲授为主,但高年级的课程则更多以演讲、提问、讨论、分析等方式为主。教师除了担任知识传授者的角色之外,还起着学生团队学习的组织者和引导者的作用,并且努力将这种团队学习的功能延伸到课外,极大地调动了学生自主学习的积极性和创造性。而我国高校的课堂教学以“讲授”为主,教学方法比较单一,尽管老师在课堂上讲得非常全面、具体,但教学效果有时并不理想。究其原因,老师讲得太多、太细,没有给学生留下一定的研究和思考的空间。现在大部分教学都用PPT课件上课,很多学生课堂上不做笔记,课后如果又不复习,对于课堂的教学内容只是简单接受,没有经过自己的思考和实践,这样必然导致教学效果不佳。因此我们要积极学习美国高校丰富多彩的教学方式,出台相关制度,鼓励老师勇于创新,大胆尝试,采用多种教学方式来充分调动学生自主学习的积极性。2.4建立通识教育,重视学生口头和书面表达能力的培养美国大学一直以来非常重视通识教育,学生往往在一年级完成通识教育之后,才由学生根据自己的兴趣和爱好来选择专业。而在通识教育中非常强调学生的口头和书面表达能力的训练。比如在利诺伊大学香槟分校,计算机专业的课程有两种,一种是属于学校要求的,每个专业都必须修的通识教育课程,学分为3951学分,另外一种是学院要求的专业课程,学分为7685分,学生毕业的总学分为128学分。其中在通识教育中科技论文写作课程有两门,且均为必修课,学分为7学分,占到毕业总学分的5.5%。科技论文写作这门课程主要是训练学生的科学思维方式、严密的逻辑推理和综合的分析应用能力。而反观我国高校的通识教育里面,缺少对应的课程训练,许多学生毕业后仍缺乏对知识的整体把握,学生不知道如何富有逻辑性的思考、条理清晰地写作和表达。因此建议我国高校应该重视学生的口头和书面表达能力的培养,开设相关的课程,培养学生逻辑和严谨的表达思想的能力。2.5引入TA、RA机制,补充师资力量,搞好课堂教学大部分美国高校为了补充师资和科研力量,普遍推行TA、RA机制。TA指的是教学助理(Teaching Assistant),RA指的是研究助理(Research Assistant)。在美国的高校,承担某门课程的教授通常会在研究生或高一年级本科生中选择一些学习过本门课程,并且取得了优秀成绩的学生来担任TA,协助老师开展教学。学生有问题往往先和TA接触,由TA协助老师回答问题,批改作业,带学生实习等,如果有TA解决不了的问题,再及时向授课老师反应,由老师来解决。通过这种机制,老师和TA组成了一个教学团队,定期召开教学研讨会议,了解学生们的学习情况,并及时采取相应的措施,不断改进和完善教学。对比我国高校,RA的机制普遍得到推广,但TA机制还未很好的推行。由于扩招,我国高校的班级人数激增,由原来的三、四十人普遍发展到七、八十人甚至上百人。如果一个教师承担某门课程的教学,通常对这一百多学生从授课到解答问题、批改作业、带实习等所有事情都由这个教师来完成,教师工作繁重,影响进一步的教学科研工作。因此很好的借鉴美国高校TA、RA机制,在课堂教学中引入TA,可将老师从一些琐碎的工作中解脱出来,将更的精力投入到教学和项目研究上去,反过来进一步推动教学的发展。 2.6营造独具特色的校园文化氛围,建设师生的精神家园美国大部分世界知名学府都非常重视建设独具个性色彩的校园文化,并以此作为自己的象征和精神家园。比如美国哈佛大学崇尚追求真理,将“以柏拉图为友,以亚里士多德为友,更要以真理为友”作为自己的校训,昭示着哈佛大学“求是崇真”的立校宗旨。耶鲁大学号称“总统摇篮”,“永远强调对社会的责任感、蔑视权威、追求自由和崇尚独立人格”的校园精神使其为美国历史上培养了5位总统和众多美国一流大学的创始人。邻近哈佛的麻省理工学院,其“强调研究及独立探索新问题”的校风使其成为全世界有志青年衷心向往的工科麦加圣地,而有着“比黄金更能给加州人带来光荣和喜悦的大学”美誉的加利福尼亚大学伯克利分校有着蜚声世界的自由开放学风。对比国内的一些知名大学,也有着自己独特的校园文化,比如清华大学 “自强不息、厚德载物”和“行胜于言”的校风已成为一代代清华人毕生追求的理想,北京大学自五四运动以来,确立了“爱国、进步、民主、科学”的传统和“勤奋、严谨、求实、创新”的学风,是中国历史上“新文化运动”中心和多种社会思潮的策源地。上述每一所世界知名学府都有着自己独具特色的大学精神,他们吸引着来自全球的优秀学子在其中尽情挥洒自己的青春,形成人尽其材,各施所长的局面。当这些学子们在事业上做出卓著贡献的时候,总不会忘记要回馈自己的母校,损赠巨资帮助母校建设 摘要:目前在我国职业教育中推广任务驱动教学法,该教学法用于程序设计语言教学成效显著。笔者就任务驱动教学法在程序设计语言类教学中的应用做了初步的实践与探索,认为在程序设计语言类教学中采用任务驱动教学法,相对于传统教学而言优势明显,能有效组织实施教学。关键词:任务驱动;程序设计语言;任务情景1引言“C语言程序设计”、“C+程序设计”、“JAVA程序设计”、“VB.net程序设计”、“C#程序设计”等课程是软件开发类学生的必修专业课程,此类课程传统的教学采用理论和实践脱节的教学法,老师感觉教学实施很困难,学生感觉不能理解所教内容,没法独立完成简单程序的编码任务。而任务驱动教学法可以把理论教学和实践教学很好地结合起来,将其运用在程序设计语言类课程中,可以改变老师难教,学生难学的现状,使学生成为教学的主体,容易激发学生的学习热情,达到自主学习的目的。程序设计语言作为基本的软件开发工具之一,学生的知识结构、操作技能和分析问题、解决问题的能力是学生专业学习的着重点。本文就任务驱动教学法如何在程序设计语言类课程中的实施谈谈笔者的初浅认识与实践体会。2任务驱动教学法及其对程序设计语言教学的适应性任务驱动教学法是基于建构主义学习理论的一种教学方法。它强调学生要在真实情景中的任务驱动下,在探索任务和完成任务的过程中,在自主学习和团队协作的环境下,在讨论和会话的氛围中,进行学习活动。这样学生不仅能学到知识、提高技能,还能培养实践动手能力,提高学生的探索创新精神。学生在完成任务的过程中始终处于主体地位。教师的角色是学习情景和学习任务的设计者、学习资源的提供者、学习活动的组织者和学习方法的指导者。任务驱动教学法给学生提供了充分的自由,使学生成为学习的主体,改变了“教师讲、学生听”的传统的讲授型教学模式,创造了以学定教、学生主动参与、自主学习、团队协作,探索创新的新型的学习方式。任务驱动教学法对程序设计语言教学的适应性主要表现在一下几方面:2.1探究教学策略在实践中笔者发现,学生感觉编程类课程枯燥乏味,又难以理解,许多知识点抽象空洞,不能和实际应用结合起来。学生学习没有兴趣,光凭教师的讲解学生也难于理解。而任务驱动的教学方法能激发学生学习的积极性和主动性,提高课堂教学的效益,帮助学生熟练掌握和运用知识,起到事半功倍之效率。根据任务驱动教学法是基于建构主义教学理论教师以任务链的方式合理的呈现任务并有效地组织学生合作交流,使学生通过自主活动来建构知识和完善自己认知结构的特点,探究有效的教学策略为:任务提出自主探索、合作交流引入知识点任务解决。2.2设计任务情境,激活学习积极性如何提高学生学习积极性和主动性?如何将枯燥的编程知识与实际应用及开发结合起来?笔者通过实践分析发现通过任务驱动的教学方式可以提高学生的学习积极性和思考问题的主动性。在这种任务驱动的教学方法实施下,学生通过自主探索与合作交流,可以提高自身分析问题与解决问题的能力。通过师生互动,在角色平等中共同进步,通过多方互动在多方协助中成长。结合所要讲授的知识点,授课教师可创设相关知识点所对应的任务情境,以某个人物角色贯穿整个任务情境。使学生感觉问题贴近现实生活,能够学以致用。2.3以项目驱动的方式融合课程所需知识点,形成支撑课程的知识链通过任务驱动的方式引入知识点的讲授,以项目驱动 的方式融合所讲授的知识点,将分散的知识点串成知识链。在课程的知识点讲授的同时,让学生分组分工完成一综合项目例如“猜数游戏”、“酒店管理系统”、“航空公司客户管理系统”等的设计与实现,在具体任务的解决过程中,能培养学生的团队协作、沟通能力以及对知识的理解和掌握能力。3任务驱动教学法教学实施笔者就以Java程序设计语言中程序控制结构这部分内容的学习为例,阐述任务驱动教学法在程序设计语言类课程中的运用与实践以及与传统教学的区别。3.1任务驱动教学法在Java程序设计中程序控制结构部分的教学实施(1) 任务提出教师创设一问题情境,通过编写游戏的方式,激发学生兴趣,引入需要学生掌握的程序控制结构的知识介绍。【问题情境】用Java语言编写一个猜数字的游戏,由电脑随机产生一个100以内的整数,让用户去猜,如果用户猜的比电脑大,则输出“大了,再小点!”,反之则输出“小了,再大点!”,用户总共只能猜十次,并根据用户正确猜出答案所用的次数输出相应的信息,如:只用一次就猜对,输出“你是个天才!”,6次以内猜对,则输出“还将就”,八次才猜对,输出“过关了,不过还要努力!”,如果十次还没有猜对,则游戏结束!(2) 自主探索、合作交流在该环节,学生被分为了若干小组,分别对已有知识的掌握进行自主探索,分组交流,找出该问题的解决方案。通过学生的分组交流和对知识的自主探索,学生得出需要用到的知识结构如下:循环控制结构,用于控制输入的次数不超过10次,每次输入与电脑产生的数进行比较;条件判断结构,用于判断输入的数是否与电脑产生的数一致;条件判断结构,用于判断输入的次数是否为小于2,大于2同时小于6,大于6同时小于8,大于8同时小于10,以此来显示对游戏者的评语。(3) 教师点评,并引入知识点在解决该问题的过程中,需要用到程序控制结构中的循环控制以及条件判断结构,由于游戏者输入的次数只有10次,建议用for循环来实现游戏次数的控制。判断游戏者是否猜对以及对其的游戏评语可以用if-else语句及其嵌套来实现判断操作。(4) 问题解决通过学生的自主交流、探索与教师的点评,得出该游戏的如下解决方案:import java.util.*; import java.io.*; public class CaiShu public static void main(String args) throws IOException Random a=new Random(); int num=a.nextInt(100); System.out.println(请输入一个100以内的整数:); for (int i=0;i=9;i+) BufferedReader bf=new BufferedReader(new InputStreamReader(System.in); String str=bf.readLine(); int shu=Integer.parseInt(str); if (shunum) System.out.println(输入的数大了,输小点的!); else if (shunum) System.out.println(输入的数小了,输大点的!); else System.out.println(恭喜你,猜对了!); if (i=2) System.out.println(你真是个天才!); else if (i=6) System.out.println(还将就,你过关了!); else if (i=8) System.out.println(但是你还真笨!); else System.out.println(对你.无语了!); break; 3.2传统教学法与任务驱动教学法在该内容上的教学比较传统教学法与任务教学法在教学内容设计,教师与学生活动法上都发生了很大的变化,产生了不同的教学效果(如表1所示)。4教学反思在任务驱动下的教学实施中教师教学方式和学生学习方式都发生了很大变化,笔者感受到任务驱动教学法的设计及实施在“程序控制结构”这讲内容中是有效的、可行的,真正促进了学生自主学习,也让学生深刻理解到所学知识运用于何处,将理论知识与实际生活中的具体问题有效结合起来。4.1任务驱动下的教学实施中教师教学方式地转变课堂组织通过教师设计的任务驱动下的教学流程让学生在自身认知经验的基础上自主地体验一个游戏程序需要运用的知识,尤其是如何更好的运用程序控制结构在实际问题中。学生可以尝试运用符合自己认知经验的方法来解决实际问题。教学实施过程中学生能较好地在体验、探究、实践和质疑中学习。在课堂教学实践中,教师的作用主要体现在以下几点:(1) 创设合适的学习情境;(2) 帮助学生设计恰当的学习活动;(3) 帮助学生学会利用学习资源;(4) 帮助学生对自己的学习过程进行评价反馈;(5) 帮助找到自己的差距与学习目标。某些传统教学的重点与难点,教师往往在设计的时候找不到着眼点,而现在通过精心设计的任务,学生成了学习的主体,教学的中心成为了学生探索解决方案的过程,实际问题的合理运用,可以缩短较难的程序开发思想与学生认知水平之间的距离,实现更富于启发性、开放性以及探索性的教学。在传统教学中,由于教师一味的进行知识灌输,不能很好的调动学生的积极性,在课堂上不可避免地忽略了一些学生。但在任务的驱动下,学生能够自主学习,民主地发表自己的见解,勇敢地提出质疑,平等地相互交流,积极地建构自己的认知结构。 4.2任务驱动下的教学实施中学习方式地转变情境学习理论认为,有用知识的获得必须镶嵌在相关或“真实”的情境中。它强调情感和活动相互联系所产生的教学价值。本节课教学设计中设置的学习情境为学生的合作交流提供了空间。从教学实践来看,体现了学生的学习方式在以下这些方面发生了转变:(1) 从被动接受知识到主动探索知识和经验地转化;(2) 学生所学的知识从枯燥乏味的向有趣的、有意义地转化;(3) 学生在教学实施中由非主体向主体转化;(4) 学生在课堂上从单一的理论知识向多元的情境学习地转化。通过学生自主探索的结论的展示与交流,充分展现了学生的认知过程。教师参 摘要:本文讲述了在面向对象编程语言Java的教学中,如何通过使用有效的教学方法和技巧,让学生从理论上能够很好地理解三层架构,从实践上能够很好地运用三层架构进行网络及数据库程序开发。关键词:Java教学;三层架构;网络程序Java是近年来非常流行的编程语言,其安全性和可移植性是两个最大的优点,并且是纯粹的面向对象语言。因为Java语言的实用和受欢迎程度,越来越多的高校都选择了Java这门编程语言给学生讲授。虽然Java摒弃了C和C+语言中一些复杂的语法格式,不少人认为它是简单的,但实际上,对于没有面向对象理论的学生,仍然需要花费比较多的时间才能入门。笔者已连续七年从事Java教学,并在教学中不断地探索和总结,找出了一些很好的、能引导学生进入Java殿堂的方法。下面以Java教学中较困难的三层架构为例进行说明。1概述三层架构是目前流行的架构设计模式,它由表示层、业务逻辑层和数据访问层三个层次结构组成。通常情况下我们所说的三层架构,实际上并不是指确定的数值“三”,三代表“多”,三层架构实际上叫做多层架构。在本文中,只论述真正只有三层的架构,即“客户端中间层服务后台数据库服务器”这样的架构,主要探讨在Java这门特定的语言中如何更好地向学生传授三层架构的编程理念与方法。2让学生从感性上认识三层架构Java是面向对象的语言,但很多教师在教学的时候却忽略了他们“面向的对象”,即坐在教师面前的学生,不注意因材施教。如果是对于已经具有面向对象思想的学生,在讲解很多的内容时可以比较轻松的带过;但对于初次碰到面向对象编程语言的学生,在讲授过程中,教师必须要让他们先理解面向对象,然后才能讲在Java中的对象是怎么样的。同样的道理,在进行三层架构编程的教学时,如果学生连三层架构都认识不清,如何能学好这方面的编程呢?教师首先可以通过“问答式教学”让学生了解,传统的两层架构的缺点。可以这样引导学生:将大家已经编写好的访问数据库的程序,转换成Applet在网页中运行。已知在本地计算机测试能够成功运行,那么,当把Applet传到Web服务器上,其他的用户通过你编写的网页能否正常的访问数据库呢?学生思考一下便知道,在本地计算机上能够成功是因为正确的配置了ODBC数据源。但是,浏览网页的用户并没有相应的配置数据源,也没有访问数据库的驱动程序。在这些计算机上,就无法连接到后台数据库。教师在讲授比较复杂的内容的时候,最好不要先讲一大堆理论,而是最好先让学生建立一种感性上的认识。教师要么通过生动的语言,要么通过形象的比喻,让学生建立感性认识。对于三层架构,可以这样比喻:两层架构是学生直接把作业交给教师;三层架构是学生把作业交给课代表,之后由课代表交给教师。在两层的情形中,每一个学生都要知道老师的办公室在什么地方;而在三层的情形中,普通学生无需知道老师的办公室在什么地方,只需课代表知道就可以了。3让学生从理论上认识三层架构在传统的两层架构中,只有客户端和后台数据库,这就要求两点:一是客户端必须具有数据访问的引擎,这样才能连接数据库;二是每一个客户端都需要知道后台数据库的位置。而对于三层架构,客户端把数据发送到中间层服务器,中间层服务器再负责和后台数据库之间的数据传递。显然地,三层模型具有很大的优点。对客户端而言,它不需要数据访问引擎,它也不需要知道后台数据库在什么地方。客户只需要知道中间层服务器在什么地方就可以了。这种实现方案,实际上提高了系统的安全性:对客户端而言,服务器是隐藏的,客户不知道服务器的具体位置。图1是三层架构程序的示意图:在让学生从总体上了解了三层架构之后,接下来,需要讲解和三层架构编程相关的一些概念。学生必须掌握这些知识,才能进行后续的实际编程。要给学生讲解的几个概念是:协议、套接字、IP地址和端口。协议:当计算机之间进行通讯的时候,需要遵循一定的规则。数据以包的形式从一台机器发送到另一台。这些规则管理数据的打包、数据传输速度,以及重新创建数据将其恢复成原始形式。这些规则被称为网络协议。网络协议是通过网络进行通讯的系统所遵循的一系列规则和惯例。网络协议如TCP/IP、UDP、Apple Talk和NetBEUI。Java提供了一个丰富的、支持网络的类库,这些类使得应用程序能方便地访问网络资源。Java提供了对用户报文协议(UDP)及传输控制协议/因特网协议(TCP/IP)的支持。套接字:传输控制协议(TCP)提供了一条可靠的、点对点的通讯通道,客户机/服务器应用程序可以用该通道相互通讯。要通过TCP进行通讯,客户机和服务器程序建立连接并绑定套接字。套接字用于处理通过网络连接的应用程序之间的通讯。客户机和服务器之间更深入的通讯通过套接字完成。Java被设计成一种网络语言。它将连接功能封装到套接字类里,而使得网络编程更加容易。套接字类(即.Socket类)用于创建一个客户套接字,而服务器套接字类(即.ServerSocket类)创建一个服务器套接字。IP地址和端口:TCP协议需要两个数据项:IP地址和端口号。互联网设备都带有一个称为IP地址的逻辑地址。IP地址具有特定的形式,每个IP地址都是32位的数值,表示4个范围在0到255之间的数值。目前采用的32个二进制位进行编码的IP地址又被称为IPv4标准,下一代编码将采用IPv6标准,以128个二进制位进行编码。端口号是一个逻辑概念,不同的端口用来响应不同的服务,常用的端口如21、80、110等。可以这样理解:IP地址让我们找到特定计算机,而端口号让我们找到计算机上的程序进程。4让学生掌握Java中三层架构程序开发的方法下面以NIIT提供的Java教材为例,讲解三层架构程序的开发。软件需求是:用户在界面中输入数据,数据以对象的方式发送给中间层服务器,中间层服务器验证数据后,连接到数据库服务器并执行存储操作。以下是教学中的要点。4.1了解要用到的相关类和方法(1) 服务器使用的类:创建服务器的过程就是创建在特定端口监听客户机请求的ServerSocket对象的过程。当收到一个合法请求时,服务器套接字获得客户机创建的Socket对象。服务器和客户机之间的通讯通过套接字发生。服务器套接字等待来自整个网络的请求。它根据请求完成操作,并将结果返回到客户机。ServerSocket类在客户机/服务器应用程序中代表服务器。ServerSocket类提供在特定端口上创建套接字的构造函数。如果传入端口的参数值为0,则在自由端口上创建套接字。ServerSocket的构造方法:public ServerSocket(int port) throws IOException功能:创建服务器套接字,并绑定到指定的端口上。例如:ServerSocket server=new ServerSocket(5460);注意:该类在构造的时候,可能导致例外的发生。例如,指定的端口已经被占用。 (2) 客户端使用的类:创建一个套接字客户机的第一步是创建Socket对象。Socket类的构造函数接收两个参数 IP地址和服务器监听的端口号。Socket clientSocket = new Socket(“5”,5460);在上述代码片段中,主机名是“5”,端口号5460是服务器监听所在的端口。4.2了解封装数据的方法创建网络服务器时,服务器程序如何与客户进行交流?也就是服务器如何知道客户所传递的数据到底是什么格式?客户机与服务器的数据传递的前提包括:(1) 二者在数据的发送和接收上必须保持一定的格式,相互间能识别;(2) 要保持格式的一致性应事先约定;(3) 实现一致的方法是,客户端在发送数据时,将数据封装到一个类里面。服务器端接收到数据后,把收到的数据强制转换为相应类型;(4) 要达到上述目的应该使用java.io包下的ObjectInputStream、ObjectOutputStream类。4.3 写程序时的步骤(1) 用来封装要传递数据的类。下面是一个例子:import java.io.*;public class MyFriend extends Object implements SerializableString vName;String cSex;String dBirth;String cPhone; (2) 编写接收和存储数据的类(Connect)用一个客户请求套接字作为构造参数,之后读取收到的数据并进行格式化(造型操作)。ObjectInputStream streamClient= new ObjectInputStream(inFromClient.getInputStream()MyFriend data=(MyFriend)streamClient.readObject();(3) 编写监听端口、响应客户请求的类(AppServer)服务器程序通过ServerSocket类监听客户的请求,由于客户不止一个,所以,服务器程序应该是一个多线程的程序。通过extendsThread方法可以让服务器类实现多线程。(4) 编写客户端程序4.4调试时的注意事项对于客户端而言,客户程序中要指定中间层服务器的IP地址和端口,通过IP地址和端口连接到中间层服务器。对于中间层服务器而言,它要接受客户端传递来的数据,所以必须运行在和客户端约定好的一个端口上。另外,中间层负责访问后台数据库服务器,所以必须保证ODBC的成功配置。调试的时候必须注意启动顺序:第一,后台数据库(如SQL Server)正在运行;第二,中间层服务器启动,开始侦听来自客户的请求;第三,运行客户端。5小结以上以三层架构为例,展示了如何更好地将知识传授给学生。教师要很好地完成传道授业的重任,除了在专业领域提高深度与广度外,还需要相当的责任感。要用心去准备每一堂课,要和学生换位,站在他们的 决策树技术在基于Web入侵检测技术中的应用研究关键词:决策树;入侵检测;Web服务器;ID3 摘要:在分析了Web服务器的安全性问题后,根据入侵检测技术的原理,提出应用基于误用的检测技术检测针对Web服务器的攻击,针对基于误用检测技术的不足,简述了决策树技术的原理,提出了应用决策树技术改进原来的规则分类,并通过实例验证了其可行性。 一、引言 越来越多的公司、政府部门和个人都使用Web站点作为信息发布和资源共享的平台,Web应用日趋广泛,安全性也日益突出,因此对入侵攻击的检测与防范、保障计算机系统、网络系统的安全已经成为刻不容缓的重要课题,尤其是保护Web服务器的安全问题更加紧迫。 Web服务的安全问题可分为两部分:一部分是传输中的安全问题,包括数据防窃听和数据完整性等;另一部分是Web服务器端和客户端本身的安全性问题。前者可以通过各种安全协议来加强其安全性;而后者,就需要通过防火墙和入侵检测(Intrusion Detection)技术来进行防范。 一般来说,防火墙的抗攻击性很强,但仅依靠防火墙作为对Web服务器的保护是不充分的,需要通过入侵检测技术来对其进行防范。 入侵检测通常分为异常检测和误用检测。误用检测模型是收集非正常操作的行为特征,建立相关的特征库,当监测的用户或系统行为与库中的记录相匹配时,系统就认为这种行为是非法入侵。该方法类似于病毒检测系统,其检测的准确率和效率都比较高。 异常检测模型首先总结正常操作应该具有的特征(用户轮廓),当用户活动与正常行为有重大偏离时即被认为是入侵。异常检测系统的效率取决于用户轮廓的完备性和监控的频率。因为不需要对每种入侵行为进行定义,因此能有效检测未知的入侵,但是异常检测的假设是入侵者活动异常于正常主体的活动(如用户行为和系统资源使用情况等),建立正常活动的“活动模式”,当主体的活动违反其统计规律时,认为可能是“入侵”行为。这种方法虽然能检测未知攻击,但较难建立合理的“活动模式”,有时异常并不意味着入侵,所以该方法一直存在误警率高的问题。此外,确定“正常”行为特征轮廓和选取特征量都很困难,又由于需要实时地建立和更新系统或用户的特征轮廓,所以所需的计算量很大,异常检测会消耗更多的系统资源。 研究表明,一个能检测网络应用层攻击的有效的入侵检测系统至少应该具备以下两个条件: (一)检测的准确性。高误警率将会使入侵检测系统失去使用价值。 (二)检测的实时性。快速检测到攻击,能进行及时响应。 为了满足保护Web服务器的要求,采用误用检测技术设计基于Web的入侵检测系统效果最佳。 二、现有检测方法的不足 从本质上来说,现有入侵检测系统对于检测针对Web服务器的攻击,都是采用基于规则检测的入侵检测方法,如著名的入侵检测系统Snort2.0,针对每一种入侵行为,都提炼出它的特征并按照规范写成检验规则,从而形成一个规则数据库。然后将捕获的数据包按照规则库逐一匹配,若匹配成功,则认为该入侵行为成立。 下面通过一个实例来说明现有入侵检测系统针对Web服务器攻击的检测方法:NT IIS Showcode ASP攻击是一种以获取非法访问权限为目的的,该攻击通过构造特定的URL请求,达到可以非法阅读服务器上的其他文件的目的。对于这个入侵实例,检测的关键是判断端口号和数据段内容,而IP地址、协议类型和TCP标志位只是辅助的特征码。 NT IIS Showcode ASP攻击所构造的URL请求内容为:http:/attackhost/msadc/Samples/SELECTOR/showcode.asp?当开始分析原始数据包时,就直接匹配端口和数据段的内容,无疑针对该入侵行为上述做法的匹配效率是最高的,但是实际上这样做会降低整体检测的效率,因为入侵检测系统要对庞大的网络数据逐一进行检测,应该遵循先检测所有入侵行为的共同特征,其次才是个体特征的原则,例如如果首先检测IP地址,一旦发现其不属于检测范围之内,就立即检测下一个数据包而并非继续检测该包的其他字段。这样既保证了检测的快速性,又提高了报警的实时性。 Snort规则的基本内容为:规则动作、协议类型、源IP地址、源端口号、目的IP地址、目的端口号、特征数据段等。对于上述攻击的检测,Snort的规则内容为:alert tcp !$HOME_NET any->$HOME_NET 80(msg:CAN-1999-0736-IIS-showcode;flagsA; uricontent:/selector/showcode.asp;nocase。 该规则显示:攻击发起的IP地址是被保护网段以外的IP地址;协议类型是TCP;攻击的目的端口是80端口;TCP标志位是PUS,ACK;攻击特征数据段内容为/selector/showcode.asp。Snort按照上述原则来定义规则,将检测规则划分成两个部分:规则头和规则选项。前者是所有规则共有的包括IP地址、协议类型、端口号,后者根据不同规则包括相应的字段关键字,例如TCP的标志位或者窗口大小等。 现有系统将规则头和规则选项创建成一个两维的链表结构,包括规则树节点(Rule Tree Nodes,RTN)和选择树节点(Option Tree Nodes,OTN)。规则树记录了每个规则的一般的属性,这包括源地址和目的地址,源端口和目的端口,还有各种协议类型,如TCP,ICMP。OTN则包含了可以加入每个规则中的信息选项,这些选项包括TCP标记,ICMP编码和类型,数据包载荷大小,主要的效率瓶颈,还有数据包的内容。这些结构将采用链的形式,RTN从左到右作为链表的头,而OTN则自上而下的紧跟在RTN后面。 当数据包被用来和规则库做比较时,数据包先在RTN列中从左到右比较,直到匹配其中的一个RTN值为止。对于匹配的数据包在匹配的RTN上由上而下的再对OTN进行匹配,不断地在链表中寻找OTN直到找到相匹配的值为止。 由于规则集会越来越庞大,OTN数量随着增加,那么对于每个RTN上OTN的匹配次数越多,这种链表结构的优势会越来越降低。所以寻找另一种规则的分类来加快匹配速度是必然趋势。 三、应用决策树提高规则匹配速度 提高规则匹配的速度是改善误用检测性能的关键,链表结构的目的是对规则集进行划分,使每次匹配的规则数尽可能少。决策树技术就是对大规则集进行划分的理想技术,因此,本文提出应用决策树技术对规则集进行划分。 (一)决策树技术分析 决策树是采用树状分叉的架构来产生规则,通过在属性集的基础上做出一系列的决策,将数据分类,适用于所有分类的问题。 构造决策树的方法是采用自上而下的递归构造。以多叉树为例,它的构造思路是:如果训练例子集合中的所有例子是同类的,则将之作为叶子节点,节点内容即是该类别标记。否则,根据某种策略选择一个属性,按照属性的各个取值,把例子集合划分为若干个子集合,使得每个子集上的所有例子均在该属性上具有同样的属性值。然后再依次递归处理各个子集。 构造好的决策树的关键在于如何选择好的属性。对于同样的一组例子,可以有很多个决策树能符合这组例子。通过人们研究得出,一般情况下,决策树越小,则该树的预测能力就越强。而要构造尽可能小的决策树,其关键在于如何选择恰当的属性。由于构造最小的树是NP-难度的问题,因此只能采取用启发式策略,来选择好的属性。而属性的选择依赖于各种对例子子集的不纯度(impurity)的度量方法。不纯度度量方法包括信息增益(informatin gain)、信息增益比(gain ratio)、Gini-index、距离度量(distance measure)、J-measure、G统计、2统计、证据权重(weight of evidence)、最小描述长(MLP)、正交法(ortogonality measure)、相关度(relevance)和 Relief。不同的度量有不同的效果,特别是对于多值属性。目前研究中,比较常用的决策树生成算法有:ID3、C4、C4.5、C5、CART、CHAID、QUEST算法。 摘要:本文结合作者所在独立学院的实际情况,分析了开展学科竞赛的作用与意义,讨论了在开展学科竞赛过程中相关的管理措施、激励机制和教学改革等方面的内容。关键词本文来自:计算机毕业网 :独立学院;学科竞赛;培养质量随着高等教育大众化、普及化时期的到来,这几年逐渐发展起来的以民办机制运行的独立学院逐渐为众人所知,发展速度很快,成为我国高校的一支新生力量。而由于目前独立学院在诸如办学经验、教学资源、学生素质等多方面还受到制约,大多数独立学院基本属于教学型院校。笔者所在的浙江大学城市学院作为首批全国独立学院,经过几年的迅速发展,已经在教学、科研、管理等各个方面有了长足进步,下设8个二级学院,33个专业,万余名学生规模。这几年,学院紧紧围绕应用型的人才培养目标,积极开展大学生学科竞赛,取得了一些好成绩,也进一步提高了学生的培养质量。1开展学科竞赛的作用与意义开展学科竞赛的根本目标是提高学生的综合素质和能力,提高学生和学校的社会竞争力。归纳起来,学科竞赛有利于学生以下各项能力和素质的提高:(1) 培养了学生综合运用理论知识和计算机技术解决实际问题的各种能力。如将实际问题转化为数学模型和将数学模型的结果解释为实际现象的能力、利用计算机求解数学模型的能力、利用各类应用软件的能力、设计调试实用电子电路的能力等等。更可喜的是,学生在具备这些能力后,思想和行动上能积极地参与学院的科研活动,以求掌握更多的知识,提高自身素质。(2) 培养了学生创新意识和创新思维。没有创新点,没有“亮点”,是不可能在激烈的竞争中脱颖而出的,而创新又必须以扎实的理论知识为基础。通过赛前集训的熏陶和参赛实践的磨练,学生普遍认识到创新的根本作用,并且认识到具有创新意识以及学好基础知识是他们将来做好工作的关键。(3) 培养了学生的团队协作精神和攻关能力。参赛使原本相互陌生的学生相互学习,共同努力,培养了学生团结合作的集体主义精神和协调组织能力,以及积极参与竞争的意识和不怕困难、努力攻关的顽强意志,这对于他们将来走出校门,服务社
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版收养协议范文集锦:全面解读收养合同要点
- 2025年度房地产估价代理服务协议
- 2025版汽车金融分期贷款购车合同范本
- 2025版浅析劳动合同中的定金合同条款适用
- 甘肃省张掖市山丹县马场总场中学2024-2025学年上学期期末质量检测九年级数学试题(含答案)
- 2025版智能家居系统集成试用协议书模板
- 2025年度行政诉讼上诉状范本制作及授权使用合同
- 2025版全新商铺门面租赁合同范本提供
- 2025年度智能设备动产质押贷款协议范本
- 2025版私人住宅智能安防系统设计与安装合同
- 数字化转型背景下的计算机类工程技术人才培养模式研究
- 医务人员职业道德规范学习体会
- 欧莱雅物流管理模式
- 2024沪教版初中英语新教材六年级上册单词表(默写表)
- 教学课件-饭店管理概论第二版
- 开学第一课开学立规矩课件21
- 《冲击波疗法》课件
- 基于模型的系统工程(MBSE)及MWORKS实践 课件 4 MBSE教材讲义 第四章 设计仿真一体化的MBSE方法
- 《中国世界遗产》课件
- 糖尿病眼底病变
- 2024年县特殊教育学校德育工作计划样本(2篇)
评论
0/150
提交评论