中美两国高校本科教育改革的比较及启示.doc

上传人:sk****8 文档编号:3547655 上传时间:2019-06-04 格式:DOC 页数:18 大小:355KB
下载 相关 举报
中美两国高校本科教育改革的比较及启示.doc_第1页
第1页 / 共18页
中美两国高校本科教育改革的比较及启示.doc_第2页
第2页 / 共18页
中美两国高校本科教育改革的比较及启示.doc_第3页
第3页 / 共18页
中美两国高校本科教育改革的比较及启示.doc_第4页
第4页 / 共18页
中美两国高校本科教育改革的比较及启示.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、中美两国高校本科教育改革的比较及启示摘要:本文从本科生的培养模式、课程设置、教学方法及校园文化建设等方面对比了中美两国高校的计算机专业本科教育体系,分析了两种教育体系的优缺点。 关键词本文来自:计算机毕业网 :本科教育;教育改革;中美两国 1 美国研究型大学本科教育改革对我国有着很好的借鉴作用 在高等教育发达的美国,早在上个世纪 80 年代就展开了研究型大学本科教育改革,1983 年 4 月,美国全国高教质量委员会发表了国家在危难中,教育改革势在必行的报告,揭开了美国大规模教育改革的序幕。之后美国卡内基教育促进发展基金会又分别发表了学院美国本科生教育的经验和重建本科生教育:美国研究型大学发展蓝

2、图(又称博耶报告 ) 两份报告,这两份报告指出了本科教育的 8 个冲突问题,并提出了改革本科教育的 14 点建议及 10 条途径。这两份报告对美国的本科教育改革起了很大的推动作用。报告公布后,各研究型大学都开始结合本校实际从以上十方面积极改进本科教育,掀起了研究型大学本科教育改革的浪潮。 为了了解现状、深化改革,卡内基委员会又于 2001 年 5 月开展了一次“重建本科教育:博耶报告三年之后”的调查研究。调查对象涉及全国 123 所研究型大学,调查发现本科教育地位有所提高、方式有所改进,十条建议得到了相当的响应,美国高校本科教育质量得到了根本性的改变和提高,正在吸引越来越多的全世界优秀学子赴美

3、完成本科教育。中国当前正处在本科教育改革的关键时期,学习、借鉴美国本科教育改革的成功经验,对促进我国本科教育改革有着非常重要的意义。 2 中美高校本科教育的比较及启示 笔者在2006 年曾经到美国依利诺伊大学香槟分校计算机系进行过为期半年的交流学习,本文以下部分结合本人的亲身体会对比中美本科教育在培养模式、课程设置、教学方法、考试形式等方面的差异,分析当前制约我国本科教育发展的因素,从而取长补短,促进我国本科教育的改革和发展。 2.1 确立以研究型学习为基础的培养模式 在博耶报告发布之后,美国研究型大学纷纷调整本科教育的培养模式,将本科教育的重心从被动学习、接受知识转移到以研究和发现为基础的过

4、程上来,本科学生的学习以研究为基础,充分利用研究生教育和科研项目资源为本科教育服务。笔者在依利诺伊大学香槟分校计算机系旁听过多门计算机专业本科课程,发现大部分计算机课程都没有统一教材,教学的内容和进度由老师提供的课程提纲(Syllabus)来决定,但老师一般会给学生指定一批参考书。这样的教学方式导致学生课后要做大量的阅读、归纳、分析和总结,根据老师提供的课程提纲来构建这门课程的知识体系,有很多知识需要经过自己思考和实践才能得到。这种教学方式的好处是不言而喻的,但不好的地方就体现在教学的质量很大程度上取决于授课老师的水平和责任心,有一定的随意性。而我国大部分高校的本科培养模式更多体现出来的是一种

5、知识传授的培养模式,非常重视教材的选择,所选教材的内容体系就是课程的内容体系。在这种方式下,教材的选择就非常重要,好的教材可以节省老师和学生时间,提高效率。但不好的地方就体现在对教材的依赖过大,教学活动受到一定的限制,学生比较被动的接受知识,缺乏压力去查资料、归纳分析所学内容。在我国目前高校师资紧张、班级学生人数众多、教学资源不足的情况下完全采用美国的研究型学习培养模式并不一定适合,这样将导致教学水平难以监管,学生发展不均衡。但是我们可以考虑在目前这种知识传授的培养模式下逐步引入研究型学习的意识,在一些适合的课程里面进行研究型教学的试点工作,不指定教材,将学习的主动权交给学生,逐步确立以研究型

6、学习为基础的培养模式,从而培养学生终身自我学习和研究的能力。 2.2 确立跨学科发展的课程设置体系 美国研究型大学很早就确立了通识教育和跨学科发展的概念。由于科学技术的发展,对于一些综合、复杂的问题越来越需要多种知识、理论和方法予以解决,跨学科成立研究中心已经成为一种趋势。近年来,美国研究型大学纷纷成立跨学科教学和研究中心,打破院系的界限,整合教育科研资源,积极推进跨学科教学和科研。例如 2003 年哈佛大学(Harvard)和麻省理工学院(MIT)各自建立了一个跨学科研究中心(Center of Excellence),中心集合了来自生物学、数学、统计、工程学和计算机信息科学等方面的专家,大

7、家协同合作解决系统生物学问题。而我国大部分高校之间院系界限分明,不同学院师生之间的交流比较少,学生基本上没有跨学科选课。为了培养学生综合的学科应用能力和开阔的视野,本科生教育应该采取跨学科的方式,打破院与院之间长期形成的相互独立的这种局面,建立一种跨学科本科生教育机制,开设一定数量的跨学科综合课程,允许不同学院的学生互相选课,培养宽口径、复合型人才。 2.3 采取讲授、讨论、个案分析、角色扮演等多种教学方法,激发学生自主学习的积极性 美国高校的课堂教学方式多样,主要表现有讲授、讨论、个案分析、角色扮演等。低年级的课程以讲授为主,但高年级的课程则更多以演讲、提问、讨论、分析等方式为主。教师除了担

8、任知识传授者的角色之外,还起着学生团队学习的组织者和引导者的作用,并且努力将这种团队学习的功能延伸到课外,极大地调动了学生自主学习的积极性和创造性。而我国高校的课堂教学以“讲授”为主,教学方法比较单一,尽管老师在课堂上讲得非常全面、具体,但教学效果有时并不理想。究其原因,老师讲得太多、太细,没有给学生留下一定的研究和思考的空间。现在大部分教学都用 PPT 课件上课,很多学生课堂上不做笔记,课后如果又不复习,对于课堂的教学内容只是简单接受,没有经过自己的思考和实践,这样必然导致教学效果不佳。因此我们要积极学习美国高校丰富多彩的教学方式,出台相关制度,鼓励老师勇于创新,大胆尝试,采用多种教学方式来

9、充分调动学生自主学习的积极性。 2.4 建立通识教育,重视学生口头和书面表达能力的培养 美国大学一直以来非常重视通识教育,学生往往在一年级完成通识教育之后,才由学生根据自己的兴趣和爱好来选择专业。而在通识教育中非常强调学生的口头和书面表达能力的训练。比如在利诺伊大学香槟分校,计算机专业的课程有两种,一种是属于学校要求的,每个专业都必须修的通识教育课程,学分为 3951学分,另外一种是学院要求的专业课程,学分为 7685 分,学生毕业的总学分为 128 学分。其中在通识教育中科技论文写作课程有两门,且均为必修课,学分为 7 学分,占到毕业总学分的 5.5%。科技论文写作这门课程主要是训练学生的科

10、学思维方式、严密的逻辑推理和综合的分析应用能力。而反观我国高校的通识教育里面,缺少对应的课程训练,许多学生毕业后仍缺乏对知识的整体把握,学生不知道如何富有逻辑性的思考、条理清晰地写作和表达。因此建议我国高校应该重视学生的口头和书面表达能力的培养,开设相关的课程,培养学生逻辑和严谨的表达思想的能力。 2.5 引入 TA、RA 机制,补充师资力量,搞好课堂教学 大部分美国高校为了补充师资和科研力量,普遍推行 TA、RA 机制。TA 指的是教学助理(Teaching Assistant),RA 指的是研究助理(Research Assistant)。在美国的高校,承担某门课程的教授通常会在研究生或高

11、一年级本科生中选择一些学习过本门课程,并且取得了优秀成绩的学生来担任 TA,协助老师开展教学。学生有问题往往先和 TA接触,由 TA 协助老师回答问题,批改作业,带学生实习等,如果有 TA 解决不了的问题,再及时向授课老师反应,由老师来解决。通过这种机制,老师和 TA 组成了一个教学团队,定期召开教学研讨会议,了解学生们的学习情况,并及时采取相应的措施,不断改进和完善教学。对比我国高校,RA 的机制普遍得到推广,但 TA 机制还未很好的推行。由于扩招,我国高校的班级人数激增,由原来的三、四十人普遍发展到七、八十人甚至上百人。如果一个教师承担某门课程的教学,通常对这一百多学生从授课到解答问题、批

12、改作业、带实习等所有事情都由这个教师来完成,教师工作繁重,影响进一步的教学科研工作。因此很好的借鉴美国高校 TA、RA 机制,在课堂教学中引入 TA,可将老师从一些琐碎的工作中解脱出来,将更的精力投入到教学和项目研究上去,反过来进一步推动教学的发展。 2.6 营造独具特色的校园文化氛围,建设师生的精神家园 美国大部分世界知名学府都非常重视建设独具个性色彩的校园文化,并以此作为自己的象征和精神家园。比如美国哈佛大学崇尚追求真理,将“以柏拉图为友,以亚里士多德为友,更要以真理为友”作为自己的校训,昭示着哈佛大学“求是崇真”的立校宗旨。耶鲁大学号称“总统摇篮” ,“永远强调对社会的责任感、蔑视权威、

13、追求自由和崇尚独立人格”的校园精神使其为美国历史上培养了 5 位总统和众多美国一流大学的创始人。邻近哈佛的麻省理工学院,其“强调研究及独立探索新问题”的校风使其成为全世界有志青年衷心向往的工科麦加圣地,而有着“比黄金更能给加州人带来光荣和喜悦的大学”美誉的加利福尼亚大学伯克利分校有着蜚声世界的自由开放学风。对比国内的一些知名大学,也有着自己独特的校园文化,比如清华大学 “自强不息、厚德载物”和“行胜于言”的校风已成为一代代清华人毕生追求的理想,北京大学自五四运动以来,确立了“爱国、进步、民主、科学”的传统和“勤奋、严谨、求实、创新”的学风,是中国历史上“新文化运动”中心和多种社会思潮的策源地。

14、上述每一所世界知名学府都有着自己独具特色的大学精神,他们吸引着来自全球的优秀学子在其中尽情挥洒自己的青春,形成人尽其材,各施所长的局面。当这些学子们在事业上做出卓著贡献的时候,总不会忘记要回馈自己的母校,损赠巨资帮助母校建设摘要:目前在我国职业教育中推广任务驱动教学法,该教学法用于程序设计语言教学成效显著。笔者就任务驱动教学法在程序设计语言类教学中的应用做了初步的实践与探索,认为在程序设计语言类教学中采用任务驱动教学法,相对于传统教学而言优势明显,能有效组织实施教学。 关键词:任务驱动;程序设计语言;任务情景 1 引言 “C 语言程序设计” 、“C+程序设计” 、 “JAVA 程序设计” 、

15、“VB.net 程序设计” 、 “C#程序设计”等课程是软件开发类学生的必修专业课程,此类课程传统的教学采用理论和实践脱节的教学法,老师感觉教学实施很困难,学生感觉不能理解所教内容,没法独立完成简单程序的编码任务。而任务驱动教学法可以把理论教学和实践教学很好地结合起来,将其运用在程序设计语言类课程中,可以改变老师难教,学生难学的现状,使学生成为教学的主体,容易激发学生的学习热情,达到自主学习的目的。程序设计语言作为基本的软件开发工具之一,学生的知识结构、操作技能和分析问题、解决问题的能力是学生专业学习的着重点。本文就任务驱动教学法如何在程序设计语言类课程中的实施谈谈笔者的初浅认识与实践体会。

16、2 任务驱动教学法及其对程序设计语言教学的适应性 任务驱动教学法是基于建构主义学习理论的一种教学方法。它强调学生要在真实情景中的任务驱动下,在探索任务和完成任务的过程中,在自主学习和团队协作的环境下,在讨论和会话的氛围中,进行学习活动。这样学生不仅能学到知识、提高技能,还能培养实践动手能力,提高学生的探索创新精神。学生在完成任务的过程中始终处于主体地位。教师的角色是学习情景和学习任务的设计者、学习资源的提供者、学习活动的组织者和学习方法的指导者。任务驱动教学法给学生提供了充分的自由,使学生成为学习的主体,改变了“教师讲、学生听”的传统的讲授型教学模式,创造了以学定教、学生主动参与、自主学习、团

17、队协作,探索创新的新型的学习方式。 任务驱动教学法对程序设计语言教学的适应性主要表现在一下几方面: 2.1 探究教学策略 在实践中笔者发现,学生感觉编程类课程枯燥乏味,又难以理解,许多知识点抽象空洞,不能和实际应用结合起来。学生学习没有兴趣,光凭教师的讲解学生也难于理解。而任务驱动的教学方法能激发学生学习的积极性和主动性,提高课堂教学的效益,帮助学生熟练掌握和运用知识,起到事半功倍之效率。根据任务驱动教学法是基于建构主义教学理论教师以任务链的方式合理的呈现任务并有效地组织学生合作交流,使学生通过自主活动来建构知识和完善自己认知结构的特点,探究有效的教学策略为:任务提出自主探索、合作交流引入知识

18、点任务解决。 2.2设计任务情境,激活学习积极性 如何提高学生学习积极性和主动性?如何将枯燥的编程知识与实际应用及开发结合起来?笔者通过实践分析发现通过任务驱动的教学方式可以提高学生的学习积极性和思考问题的主动性。在这种任务驱动的教学方法实施下,学生通过自主探索与合作交流,可以提高自身分析问题与解决问题的能力。通过师生互动,在角色平等中共同进步,通过多方互动在多方协助中成长。结合所要讲授的知识点,授课教师可创设相关知识点所对应的任务情境,以某个人物角色贯穿整个任务情境。使学生感觉问题贴近现实生活,能够学以致用。 2.3 以项目驱动的方式融合课程所需知识点,形成支撑课程的知识链 通过任务驱动的方

19、式引入知识点的讲授,以项目驱动 的方式融合所讲授的知识点,将分散的知识点串成知识链。在课程的知识点讲授的同时,让学生分组分工完成一综合项目例如“猜数游戏” 、 “酒店管理系统” 、 “航空公司客户管理系统”等的设计与实现,在具体任务的解决过程中,能培养学生的团队协作、沟通能力以及对知识的理解和掌握能力。 3 任务驱动教学法教学实施 笔者就以 Java 程序设计语言中程序控制结构这部分内容的学习为例,阐述任务驱动教学法在程序设计语言类课程中的运用与实践以及与传统教学的区别。 3.1 任务驱动教学法在 Java 程序设计中程序控制结构部分的教学实施 (1) 任务提出 教师创设一问题情境,通过编写游

20、戏的方式,激发学生兴趣,引入需要学生掌握的程序控制结构的知识介绍。 【问题情境】用 Java 语言编写一个猜数字的游戏,由电脑随机产生一个 100 以内的整数,让用户去猜,如果用户猜的比电脑大,则输出“大了,再小点!” ,反之则输出“小了,再大点!” ,用户总共只能猜十次,并根据用户正确猜出答案所用的次数输出相应的信息,如:只用一次就猜对,输出“你是个天才!” ,6 次以内猜对,则输出“还将就” ,八次才猜对,输出“过关了,不过还要努力!”,如果十次还没有猜对,则游戏结束! (2) 自主探索、合作交流 在该环节,学生被分为了若干小组,分别对已有知识的掌握进行自主探索,分组交流,找出该问题的解决

21、方案。通过学生的分组交流和对知识的自主探索,学生得出需要用到的知识结构如下: 循环控制结构,用于控制输入的次数不超过 10 次,每次输入与电脑产生的数进行比较; 条件判断结构,用于判断输入的数是否与电脑产生的数一致; 条件判断结构,用于判断输入的次数是否为小于 2,大于 2 同时小于 6,大于 6 同时小于 8,大于 8 同时小于 10,以此来显示对游戏者的评语。 (3) 教师点评,并引入知识点 在解决该问题的过程中,需要用到程序控制结构中的循环控制以及条件判断结构,由于游戏者输入的次数只有 10 次,建议用 for 循环来实现游戏次数的控制。判断游戏者是否猜对以及对其的游戏评语可以用 if-

22、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 BufferedReader bf=new

23、BufferedReader(new InputStreamReader(System.in); String str=bf.readLine(); int shu=Integer.parseInt(str); if (shunum) System.out.println(“ 输入的数大了,输小点的!“); else if (shu System.out.println(“输入的数小了,输大点的!“); else System.out.println(“恭喜你,猜对了!“); if (i System.out.println(“你真是个天才!“); else if (i System.out.

24、println(“还将就,你过关了!“); else if (i System.out.println(“但是你还真笨!“); else System.out.println(“ 对你.无语了!“); break; 3.2 传统教学法与任务驱动教学法在该内容上的教学比较 传统教学法与任务教学法在教学内容设计,教师与学生活动法上都发生了很大的变化,产生了不同的教学效果(如表 1 所示) 。 4教学反思 在任务驱动下的教学实施中教师教学方式和学生学习方式都发生了很大变化,笔者感受到任务驱动教学法的设计及实施在“程序控制结构”这讲内容中是有效的、可行的,真正促进了学生自主学习,也让学生深刻理解到所学

25、知识运用于何处,将理论知识与实际生活中的具体问题有效结合起来。 4.1 任务驱动下的教学实施中教师教学方式地转变 课堂组织通过教师设计的任务驱动下的教学流程让学生在自身认知经验的基础上自主地体验一个游戏程序需要运用的知识,尤其是如何更好的运用程序控制结构在实际问题中。学生可以尝试运用符合自己认知经验的方法来解决实际问题。教学实施过程中学生能较好地在体验、探究、实践和质疑中学习。在课堂教学实践中,教师的作用主要体现在以下几点: (1) 创设合适的学习情境; (2) 帮助学生设计恰当的学习活动; (3) 帮助学生学会利用学习资源; (4) 帮助学生对自己的学习过程进行评价反馈; (5) 帮助找到自

26、己的差距与学习目标。 某些传统教学的重点与难点,教师往往在设计的时候找不到着眼点,而现在通过精心设计的任务,学生成了学习的主体,教学的中心成为了学生探索解决方案的过程,实际问题的合理运用,可以缩短较难的程序开发思想与学生认知水平之间的距离,实现更富于启发性、开放性以及探索性的教学。在传统教学中,由于教师一味的进行知识灌输,不能很好的调动学生的积极性,在课堂上不可避免地忽略了一些学生。但在任务的驱动下,学生能够自主学习,民主地发表自己的见解,勇敢地提出质疑,平等地相互交流,积极地建构自己的认知结构。 4.2 任务驱动下的教学实施中学习方式地转变 情境学习理论认为,有用知识的获得必须镶嵌在相关或“

27、真实”的情境中。它强调情感和活动相互联系所产生的教学价值。本节课教学设计中设置的学习情境为学生的合作交流提供了空间。从教学实践来看,体现了学生的学习方式在以下这些方面发生了转变: (1) 从被动接受知识到主动探索知识和经验地转化; (2) 学生所学的知识从枯燥乏味的向有趣的、有意义地转化; (3) 学生在教学实施中由非主体向主体转化; (4) 学生在课堂上从单一的理论知识向多元的情境学习地转化。 通过学生自主探索的结论的展示与交流,充分展现了学生的认知过程。教师参摘要:本文讲述了在面向对象编程语言 Java 的教学中,如何通过使用有效的教学方法和技巧,让学生从理论上能够很好地理解三层架构,从实

28、践上能够很好地运用三层架构进行网络及数据库程序开发。 关键词:Java 教学;三层架构;网络程序 Java 是近年来非常流行的编程语言,其安全性和可移植性是两个最大的优点,并且是纯粹的面向对象语言。因为 Java 语言的实用和受欢迎程度,越来越多的高校都选择了 Java 这门编程语言给学生讲授。虽然 Java 摒弃了 C 和C+语言中一些复杂的语法格式,不少人认为它是简单的,但实际上,对于没有面向对象理论的学生,仍然需要花费比较多的时间才能入门。笔者已连续七年从事 Java 教学,并在教学中不断地探索和总结,找出了一些很好的、能引导学生进入 Java 殿堂的方法。下面以Java 教学中较困难的

29、三层架构为例进行说明。 1 概述 三层架构是目前流行的架构设计模式,它由表示层、业务逻辑层和数据访问层三个层次结构组成。通常情况下我们所说的三层架构,实际上并不是指确定的数值“三” ,三代表“多”,三层架构实际上叫做多层架构。在本文中,只论述真正只有三层的架构,即“客户端中间层服务后台数据库服务器”这样的架构,主要探讨在 Java 这门特定的语言中如何更好地向学生传授三层架构的编程理念与方法。 2 让学生从感性上认识三层架构 Java 是面向对象的语言,但很多教师在教学的时候却忽略了他们“面向的对象” ,即坐在教师面前的学生,不注意因材施教。如果是对于已经具有面向对象思想的学生,在讲解很多的内

30、容时可以比较轻松的带过;但对于初次碰到面向对象编程语言的学生,在讲授过程中,教师必须要让他们先理解面向对象,然后才能讲在 Java 中的对象是怎么样的。同样的道理,在进行三层架构编程的教学时,如果学生连三层架构都认识不清,如何能学好这方面的编程呢? 教师首先可以通过“问答式教学”让学生了解,传统的两层架构的缺点。可以这样引导学生:将大家已经编写好的访问数据库的程序,转换成 Applet 在网页中运行。已知在本地计算机测试能够成功运行,那么,当把 Applet 传到 Web 服务器上,其他的用户通过你编写的网页能否正常的访问数据库呢?学生思考一下便知道,在本地计算机上能够成功是因为正确的配置了

31、ODBC 数据源。但是,浏览网页的用户并没有相应的配置数据源,也没有访问数据库的驱动程序。在这些计算机上,就无法连接到后台数据库。 教师在讲授比较复杂的内容的时候,最好不要先讲一大堆理论,而是最好先让学生建立一种感性上的认识。教师要么通过生动的语言,要么通过形象的比喻,让学生建立感性认识。对于三层架构,可以这样比喻:两层架构是学生直接把作业交给教师;三层架构是学生把作业交给课代表,之后由课代表交给教师。在两层的情形中,每一个学生都要知道老师的办公室在什么地方;而在三层的情形中,普通学生无需知道老师的办公室在什么地方,只需课代表知道就可以了。 3 让学生从理论上认识三层架构 在传统的两层架构中,

32、只有客户端和后台数据库,这就要求两点:一是客户端必须具有数据访问的引擎,这样才能连接数据库;二是每一个客户端都需要知道后台数据库的位置。而对于三层架构,客户端把数据发送到中间层服务器,中间层服务器再负责和后台数据库之间的数据传递。显然地,三层模型具有很大的优点。对客户端而言,它不需要数据访问引擎,它也不需要知道后台数据库在什么地方。客户只需要知道中间层服务器在什么地方就可以了。这种实现方案,实际上提高了系统的安全性:对客户端而言,服务器是隐藏的,客户不知道服务器的具体位置。图 1 是三层架构程序的示意图: 在让学生从总体上了解了三层架构之后,接下来,需要讲解和三层架构编程相关的一些概念。学生必

33、须掌握这些知识,才能进行后续的实际编程。要给学生讲解的几个概念是:协议、套接字、IP 地址和端口。 协议:当计算机之间进行通讯的时候,需要遵循一定的规则。数据以包的形式从一台机器发送到另一台。这些规则管理数据的打包、数据传输速度,以及重新创建数据将其恢复成原始形式。这些规则被称为网络协议。网络协议是通过网络进行通讯的系统所遵循的一系列规则和惯例。网络协议如 TCP/IP、 UDP、Apple Talk 和 NetBEUI。Java 提供了一个丰富的、支持网络的类库,这些类使得应用程序能方便地访问网络资源。Java 提供了对用户报文协议 (UDP)及传输控制协议/因特网协议(TCP/IP)的支持

34、。 套接字:传输控制协议(TCP)提供了一条可靠的、点对点的通讯通道,客户机/服务器应用程序可以用该通道相互通讯。要通过 TCP 进行通讯,客户机和服务器程序建立连接并绑定套接字。套接字用于处理通过网络连接的应用程序之间的通讯。客户机和服务器之间更深入的通讯通过套接字完成。Java 被设计成一种网络语言。它将连接功能封装到套接字类里,而使得网络编程更加容易。套接字类(即.Socket 类)用于创建一个客户套接字,而服务器套接字类( 即 .ServerSocket 类)创建一个服务器套接字。 IP 地址和端口:TCP 协议需要两个数据项: IP 地址和端口号。互联网设备都带有一个称为 IP 地址

35、的逻辑地址。IP 地址具有特定的形式,每个 IP 地址都是 32 位的数值,表示 4 个范围在 0 到 255 之间的数值。目前采用的 32 个二进制位进行编码的 IP 地址又被称为 IPv4 标准,下一代编码将采用 IPv6 标准,以 128 个二进制位进行编码。端口号是一个逻辑概念,不同的端口用来响应不同的服务,常用的端口如21、80、110 等。可以这样理解:IP 地址让我们找到特定计算机,而端口号让我们找到计算机上的程序进程。 4 让学生掌握 Java 中三层架构程序开发的方法 下面以 NIIT 提供的 Java 教材为例,讲解三层架构程序的开发。软件需求是:用户在界面中输入数据,数据

36、以对象的方式发送给中间层服务器,中间层服务器验证数据后,连接到数据库服务器并执行存储操作。以下是教学中的要点。 4.1 了解要用到的相关类和方法 (1) 服务器使用的类: 创建服务器的过程就是创建在特定端口监听客户机请求的 ServerSocket 对象的过程。当收到一个合法请求时,服务器套接字获得客户机创建的 Socket 对象。服务器和客户机之间的通讯通过套接字发生。服务器套接字等待来自整个网络的请求。它根据请求完成操作,并将结果返回到客户机。ServerSocket类在客户机/服务器应用程序中代表服务器。 ServerSocket 类提供在特定端口上创建套接字的构造函数。如果传入端口的参

37、数值为 0,则在自由端口上创建套接字。 ServerSocket 的构造方法: public ServerSocket(int port) throws IOException 功能:创建服务器套接字,并绑定到指定的端口上。例如:ServerSocket server=new ServerSocket(5460); 注意:该类在构造的时候,可能导致例外的发生。例如,指定的端口已经被占用。 (2) 客户端使用的类: 创建一个套接字客户机的第一步是创建 Socket 对象。Socket 类的构造函数接收两个参数 IP 地址和服务器监听的端口号。 Socket clientSocket = new

38、Socket(“202.202.96.35”,5460); 在上述代码片段中,主机名是“202.202.96.35” ,端口号 5460 是服务器监听所在的端口。 4.2 了解封装数据的方法 创建网络服务器时,服务器程序如何与客户进行交流?也就是服务器如何知道客户所传递的数据到底是什么格式?客户机与服务器的数据传递的前提包括: (1) 二者在数据的发送和接收上必须保持一定的格式,相互间能识别; (2) 要保持格式的一致性应事先约定; (3) 实现一致的方法是,客户端在发送数据时,将数据封装到一个类里面。服务器端接收到数据后,把收到的数据强制转换为相应类型; (4) 要达到上述目的应该使用 ja

39、va.io 包下的 ObjectInputStream、ObjectOutputStream 类。4.3 写程序时的步骤 (1) 用来封装要传递数据的类。下面是一个例子:import java.io.*; public class MyFriend extends Object implements Serializable String vName; String cSex; String dBirth; String cPhone; (2) 编写接收和存储数据的类(Connect) 用一个客户请求套接字作为构造参数,之后读取收到的数据并进行格式化(造型操作) 。 ObjectInputSt

40、ream streamClient= new ObjectInputStream(inFromClient.getInputStream() MyFriend data=(MyFriend) streamClient.readObject(); (3) 编写监听端口、响应客户请求的类(AppServer) 服务器程序通过 ServerSocket 类监听客户的请求,由于客户不止一个,所以,服务器程序应该是一个多线程的程序。通过 extendsThread 方法可以让服务器类实现多线程。 (4) 编写客户端程序 4.4 调试时的注意事项对于客户端而言,客户程序中要指定中间层服务器的 IP 地址和

41、端口,通过 IP 地址和端口连接到中间层服务器。对于中间层服务器而言,它要接受客户端传递来的数据,所以必须运行在和客户端约定好的一个端口上。另外,中间层负责访问后台数据库服务器,所以必须保证 ODBC 的成功配置。调试的时候必须注意启动顺序:第一,后台数据库(如SQL Server)正在运行;第二,中间层服务器启动,开始侦听来自客户的请求;第三,运行客户端。 5 小结 以上以三层架构为例,展示了如何更好地将知识传授给学生。教师要很好地完成传道授业的重任,除了在专业领域提高深度与广度外,还需要相当的责任感。要用心去准备每一堂课,要和学生换位,站在他们的决策树技术在基于 Web 入侵检测技术中的应

42、用研究关键词:决策树;入侵检测;Web 服务器;ID3 摘要: 在分析了 Web 服务器的安全性问题后,根据入侵检测技术的原理,提出应用基于误用的检测技术检测针对 Web 服务器的攻击,针对基于误用检测技术的不足,简述了决策树技术的原理,提出了应用决策树技术改进原来的规则分类,并通过实例验证了其可行性。 一、引言 越来越多的公司、政府部门和个人都使用 Web 站点作为信息发布和资源共享的平台,Web 应用日趋广泛,安全性也日益突出,因此对入侵攻击的检测与防范、保障计算机系统、网络系统的安全已经成为刻不容缓的重要课题,尤其是保护 Web 服务器的安全问题更加紧迫。 Web 服务的安全问题可分为两

43、部分:一部分是传输中的安全问题 ,包括数据防窃听和数据完整性等; 另一部分是 Web 服务器端和客户端本身的安全性问题。前者可以通过各种安全协议来加强其安全性;而后者,就需要通过防火墙和入侵检测(Intrusion Detection)技术来进行防范。 一般来说,防火墙的抗攻击性很强,但仅依靠防火墙作为对 Web 服务器的保护是不充分的 ,需要通过入侵检测技术来对其进行防范。 入侵检测通常分为异常检测和误用检测。误用检测模型是收集非正常操作的行为特征,建立相关的特征库,当监测的用户或系统行为与库中的记录相匹配时,系统就认为这种行为是非法入侵。该方法类似于病毒检测系统,其检测的准确率和效率都比较

44、高。 异常检测模型首先总结正常操作应该具有的特征( 用户轮廓),当用户活动与正常行为有重大偏离时即被认为是入侵。异常检测系统的效率取决于用户轮廓的完备性和监控的频率。因为不需要对每种入侵行为进行定义,因此能有效检测未知的入侵,但是异常检测的假设是入侵者活动异常于正常主体的活动(如用户行为和系统资源使用情况等),建立正常活动的“活动模式 ”,当主体的活动违反其统计规律时,认为可能是“入侵”行为。这种方法虽然能检测未知攻击,但较难建立合理的“活动模式”,有时异常并不意味着入侵,所以该方法一直存在误警率高的问题。此外,确定“正常”行为特征轮廓和选取特征量都很困难,又由于需要实时地建立和更新系统或用户

45、的特征轮廓,所以所需的计算量很大,异常检测会消耗更多的系统资源。 研究表明,一个能检测网络应用层攻击的有效的入侵检测系统至少应该具备以下两个条件: ( 一) 检测的准确性。高误警率将会使入侵检测系统失去使用价值。 (二)检测的实时性。快速检测到攻击,能进行及时响应。 为了满足保护 Web 服务器的要求,采用误用检测技术设计基于 Web 的入侵检测系统效果最佳。 二、现有检测方法的不足 从本质上来说,现有入侵检测系统对于检测针对 Web 服务器的攻击 ,都是采用基于规则检测的入侵检测方法,如著名的入侵检测系统 Snort2.0,针对每一种入侵行为,都提炼出它的特征并按照规范写成检验规则,从而形成

46、一个规则数据库。然后将捕获的数据包按照规则库逐一匹配,若匹配成功,则认为该入侵行为成立。 下面通过一个实例来说明现有入侵检测系统针对 Web 服务器攻击的检测方法:NT IIS Showcode ASP 攻击是一种以获取非法访问权限为目的的,该攻击通过构造特定的 URL 请求,达到可以非法阅读服务器上的其他文件的目的。对于这个入侵实例,检测的关键是判断端口号和数据段内容,而 IP 地址、协议类型和TCP 标志位只是辅助的特征码。 NT IIS Showcode ASP 攻击所构造的 URL 请求内容为:http:/attackhost/msadc/Samples/SELECTOR/showcode.asp?当开始分析原始数据包时,就直接匹配端口和数据段的内容,无疑针对该入侵行为上述做法的匹配效率是最高的,但是实际上这样做会降低整体检测的效率,因为入侵检测系统要对庞大的网络数据逐一进行检测,应该遵循先检测所有入侵行为的共同特征,其次才是个体特征的原则,例如如果首先检测 IP 地址,一旦发现其不属于检测范围之内,就立即检测下一个数据包而并非继续检测该包的其他字段。这样既保证了检测的快速性,又提高了报警的实时性。 Snort 规则的基本内容为:规则动作、协议类型、源 IP 地址、源端口号、目的 IP 地址、目的端口号、特征数据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。