“数据结构”综合性课程设计教学探索与实.doc_第1页
“数据结构”综合性课程设计教学探索与实.doc_第2页
“数据结构”综合性课程设计教学探索与实.doc_第3页
“数据结构”综合性课程设计教学探索与实.doc_第4页
“数据结构”综合性课程设计教学探索与实.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

“数据结构”综合性课程设计教学探索与实践 摘要:本文针对“数据结构”课程的传统教学方法存在的问题,就综合性课程设计的内容选择、实施方法与激励手段等方面进行了一系列的改革探索。关键词本文来自:计算机毕业网 :数据结构;课程设计;启发式教学1引言“数据结构”作为实践性很强的计算机专业的基础课,教学中必然离不开实践。针对数据结构的课程设计实践不仅可以帮助学生巩固和加深对课程内容的理解,更重要的是可以进一步锻炼程序设计的技能,并初步感受软件开发的规范,更能全面培养学生综合运用知识的能力、文献检索与分析能力、工程化能力、进行研究性学习的能力、创新能力以及团队合作的能力等。本文是作者所在教学团队八年来的课程设计实践小结,介绍了在“数据结构”综合性课程设计的内容选择、实施方法与激励手段等方面进行的一系列改革探索。2传统教学方法存在的问题及解决思路数据结构的课程实践可分为一般性实验和综合性课程设计。在传统的课程教学中,往往采用一般性实验作为课程实践的主要内容,即布置针对本次课堂教学内容的小型练习题,让学生独立完成程序设计与实现。这样的实践主要存在两方面问题:第一,练习题所需要用到的知识点就是课堂教学刚讲授过的内容,学生只要直接拿来用就可以,不需要自己去考虑各种可能的解决方案并找到最合适的方法。这种实践是验证性的,比较简单直接,学生受到的锻炼相对较少。第二,学生独立完成小型程序,虽然可以在一定程度上锻炼编程能力,但这个锻炼的层次和涉及面都比较窄。现代软件开发的规模,使得团队合作在大多数情况下成为必须。而且部分数据结构只有在处理大规模输入的复杂问题时才能体现出优势,编写小型程序很难使学生真正认识到该数据结构存在的意义。针对上述问题,我们在设计较大规模的综合性课程设计时就必须注意两个方面:第一,课程设计题目覆盖的知识点应尽可能避免单一,要采用启发式的设计思路,引导学生围绕课程设计目标,通过查找与分析有关参考资料,进行探究式的学习,激发创造的意识和能力。所以,在题目设计和实施中,不应该只是“手把手”地教,要给学生留出发挥想象力和创造力的空间。第二,题目的规模应充分大,并且努力使学生对规范性的软件开发有初步体验,在一定程度上使得学生的工程化能力和团队合作能力得到锻炼。而上述两方面的考虑若要取得真正好的效果,还必须有一套行之有效的激励机制,既可以公平地判定每个学生作为个体的能力,又可以鼓励团队精神,同时还可以鼓励学生开拓创新思维,主动进行研究性学习。3课程设计的内容选择、实施方法与激励手段3.1内容选择综合性课程设计应强调知识的综合运用,锻炼学生对复杂问题进行分析与求解的能力,所以在选择内容时可以从以下三方面考虑:第一,题目应避免涉及单一知识点。例如“迷宫问题”,即输入一个迷宫的布局,要求找到一条走出迷宫的路径并用图形界面显示。学生可以选择用不同的数据结构表示迷宫以及移动方向,可以选择用深度优先或者宽度优先搜索的算法来得到路径,同时还锻炼了对图形界面的编程技巧的掌握。又例如“宇宙旅行”,即给定两星球间各个中转空间站的临时客流容量,求终点星球接待站的总客流容量。此题目的解法主要涉及网络流算法;在每一步修正流量时,可以选择剩余图中从起点到终点的最短路径,则又涉及到单源最短路径算法;最后为了提高查找空间站名称的效率,可以采用散列表进行名称映射。第二,为锻炼学生进行研究性学习的能力,可设计算法效率分析比较类型的题目。例如比较普通的二叉搜索树、平衡搜索树和伸展树的插入与删除操作效率,要求通过实验取得三者的实际运行时间,绘出三者复杂度函数的曲线,分析比较它们的效率并给出证明等等。第三,采用启发式教学思路,设计有多种解法的题目,可以给学生留出发挥想享力和创造力的空间,锻炼学生灵活运用知识分析问题和解决问题的能力。例如“熊猫烧香”,即以著名病毒“熊猫烧香”的传播规律为背景,要求计算整个网络被各种病毒变种感染的情况。题目可以简单地用广度优先搜索解决,但是效率比较低。巧妙一点的方法可以将求单源最短路径的Dijkstra算法略做修改,得到效率明显提高的解决方案。更快的算法则是利用并查集。教师可以通过设计不同层次的测试数据来区分不同效率的算法,鼓励学生自己去尝试各种方案,找出最有效的解决办法。在内容选择方面,我们还建议参考历届ACM国际大学生程序设计竞赛的题目,该竞赛特别强调考察参赛选手对各种算法的应用能力,题目的综合性较强,非常适合辅助学生学习体会数据结构的妙用。浙江大学建设有全球著名的程序设计竞赛练习网站(/),提供在线自动裁判系统,简称ZOJ,目前拥有各类竞赛练习题目近2000道,为数据结构课程设计提供了丰富的题库资源。本课程组设计的多道课程设计题目就取自或改编自该网站的练习题。3.2实施方法综合性课程设计不仅仅是以实现相应的程序为目标,更重要的是培养学生今后从事软件开发所需要的各种能力与素质,包括测试能力和文档写作的能力。因此,在课程设计实施中,我们将学生分成三人小组,分工负责程序编写、测试以及实验报告撰写工作。一份完整的实验报告至少应包含以下四部分内容:(一)实验内容简介:这一部分需简单介绍题目内容,即该实验到底要做什么。如果涉及明确的算法,最好再简单介绍一下算法产生的背景。(二)算法说明:这一部分需详细描述解决问题所需要用到的算法和重要的数据结构,即该实验到底应该怎么做。(三)测试结果:这一部分需根据题目类型设计提供相应的测试方法和结果。对于需要比较不同算法性能优劣的题目,应设计并填写一张性能比较表格,列出不同算法在同一指标下的性能表现。对于需要利用某算法解决某问题的题目,应设计并填写一张测试用例表。每个测试用例应包括测试输入、测试目的、正确输出、实际输出、错误原因等等。(四)分析与探讨:这一部分除了对测试结果进行分析外,还要求学生不局限于题目要求使用的算法,探讨更多解决问题的途径,或者提出自己的见解,给出改进算法以得到更好结果的建议。其中第一、二部分以及全文统稿由文档员负责,第三、四部分由测试员负责。整个学期发布的课程设计题目数应该是3的倍数,使得每组的三个学生有机会均衡体验三种不同的角色。3.3激励手段大学教育心理学研究表明,学习兴趣通过适当的引导,会引发学生的需要和动机,进一步产生持续不断的兴奋,从而激发积极的行为反应,努力去实现预订目标。而让学生产生浓厚的学习兴趣,就必须建立有效的激励机制。首先程序员、测试员、文档员的工作难度不同,其工作的分数分配也应不同。例如我们采用50:30:20的分配制度,这样只有在三个课程设计中将三种角色分别体验一遍,才有可能得到满分100。其次教师应对“分析与探讨”部分特别关注,及时发现并鼓励学生的创新思维。一句简单的鼓励就可能对学生的主动学习热情起到非常大的引导和推动作用。另外,由于每个学生的能力水平不同,应使组内每个人的成绩相对独立,不依赖于其他组员的表现而得分。例如程序员只要正确完成了自己的程序,且注释充分,就可以得满分;测试员的测试计划和测试用例设计都不依赖于源代码,即使程序员无法提供程序,测试员只要完成了测试计划的设计,对算法进行了理论上的分析,就可以得到满分;文档员的工作相对独立,只要完成了自己负责的章节并将手头所有资料整合为一体,就可以获得满分。这样做的目的是体现评分的公平性,尽量避免能力强的学生为了自己的成绩不受影响而“包办”全组的工作。当然,分组实验的另一个目的,是锻炼学生的沟通与团队合作能力。这个目的可以通过教师的激励来达到,即教师在点评每道题目的完成情况时,对个别优秀的组提出表扬,而只有三项工作都完美的组,才会获此殊荣。这时学生会在完成了自己工作的情况下,对队友提供一定帮助,以获得团队的荣誉。4成果课程组在浙江大学八年的不断探索和改革取得了良好的成效。最为明显的效果是,学生参与各级程序设计竞赛的积极性逐年增长,从2001年48队100多学生参加首届浙江大学程序设计竞赛,到2007年286队近千名学生参赛,竞赛规模在7年中增长迅猛。而浙江大学参加ACM国际大学生程序设计竞赛的队伍,在没有常规辅导的情况下,凭借扎实的数据结构基本功,也连年在国际竞赛中取得出色的成绩。 参考文献1 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)M. 北京:高等教育出版社,2006.2 何钦铭,冯雁,陈越. 数据结构课程设计M. 杭州:浙江大学出版社,2007.3 林正范. 大学心理学M. 杭州:浙江大学出版社,2000. 摘要:“计算机图形学”是计算机专业的一门非常重要的基础课程,但在教学中存在很多问题,本文总结了两种结合方式的教学方法,分析和探讨了其在教学中的应用。关键词:计算机图形学;教学方法;教学与实验 1引言“计算机图形学”在计算机科学与技术专业的一门基础课,其课程涉及图形硬件设备、图形系统、交互技术、基本图形生成算法、几何变换、真实感图形生成等内容。在笔者的教学实践当中发现教学过程中普遍存在以下两个问题。1.1理论知识掌握方面由于“计算机图形学”具有较强理论性,部分算法比较抽象不易理解。所以学生在学习的时候很难将抽象算法与具体的三维图像结合起来,经常表现出畏难情绪。1.2实践能力培养方面由于“计算机图形学”课程的教学主要精力放在了图形的基本概念和算法原理的讲解上,上机实践环节滞后;另外,现在大部分的教材中仍然是以Turbo C作为上机实习的平台,但是由于Turbo C再实际应用中早已不作为开发工具使用,学生并不能够在实验中获得未来就业环境下真是需要掌握的编程知识,需要二次学习才能适应社会的需求。针对以上问题,给出以下解决方案。2理论讲解与具体开发工具的使用相结合图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。如何在计算机中表示图形以及利用计算机进行图形的计算、处理和显示的相关原理与算法,构成了计算机图形学的主要研究内容。目前,大部分计算机图形学教材都是以计算机图形学的基本概念、基本理论、基本原理及经典算法作为主要内容,以丰富学生的基础知识,培养学生的独立研究能力。然而,在微型计算机日益普及的今天,随着计算机科学及技术的发展,出现了很多功能完善的图形软件标准和图形软件,如何利用他们培养学生的学习兴趣,提高实际应用的能力,则是当今教学的重点。为了能够更加广泛地接触和学习图形软件,笔者在以Turbo C语言作为开发工具来介绍基本图元的经典画法的同时,将OpenGL引入到计算机图形学的学习中。OpenGL是近10年来发展起来的一个性能卓越的、通用共享的三维图形标准,已得到广泛应用。OpenGL提供十分清晰明了的图形函数,所以图形绘制可以通过它的各种函数来实现。OpenGL具有标准型、稳定性、可扩展性、可缩放性、易用性、可靠性和可移植性等特点。与其他图形程序包相比,OpenGL应用程序代码行数少,又封装了有关基本硬件的信息,因此在很多领域都得到广泛的应用。在教学过程中,为了让学生对“计算机图形学”中所讲解的知识能够更好的理解和掌握,可以从三个步骤来进行讲解:2.1理论讲解基本概念、原理及算法理论讲解过程中,我们可以把OpenGL与之结合起来。例如:我们在讲解直线的扫描算法时,首先介绍经典的中点绘制直线算法和Bressman算法,通过这两个算法的原理的介绍可以使学生了解到在计算机中怎样以像素作为处理单位来实现直线的绘制。然后,我们可以介绍一下OpenGL中对直线进行绘制的方法,从而体会两种开发工具的相同和不同之处:(1) Turbo C:Bressman算法实现直线的绘制voidBresenham_Line (int x1, int y1, int x2, int y2,int color) intx, y, dx, dy, dk, i; dx = x2 x1;dy = y2y1;dk = dy dx; x = x1;y = y1; for (i = 0; i=dx; i+) putpixel (x, y, color);x=x + 1; if(dk0) dk=dk+2*dy;else y = y + 1; dk = dk +2*dy 2 * dx; (2)OpenGL实现glBegin ( GL_LINES ); glColor3f(1.0,1.0,0.0); glVertex2f(-11.0,8.0); glVertex2f(-7.0,7.0);glEnd();在Turbo C中需要具体的算法和参数实现对像素逐个处理从而形成一条直线;在OpenGL中我们只需要给出直线的坐标、属性的数据就可以得到一条直线了。这样学生就可以了解到直线的绘制原理,以及在实际开发中具体实现发法,有效地把理论知识与实际应用结合起来,达到了较好的教学效果。2.2多媒体演示各种图元、概念、算法的实现和变化过程由于“计算机图形学”这门课程中的很多理论知识比较抽象不容易理解,特别是需要学生具有较好的三维空间的立体感,才能更好的理解所学的知识,例如对坐标变换、投影变换等部分的概念的理解,对很多学生来讲都很难理解,为了达到更好的教学效果,可以将OpenGL引入到课程学习中,通过OpenGL的对应函数的多媒体演示,帮助学生更好地掌握这部分知识。在介绍了基本的变换中的平移变换、缩放变换和旋转变换的概念时,在计算机图形学中我们一般是通过二维的图形来帮助学生理解,如图13。OpenGL多媒体演示见图4。在OpenGL中分别使用glTranslatef()来表示平移变换,三个参数分别表示在三个坐标平移的距离;glRotatef()用来表示旋转变换,一个参数表示旋转地角度,另外一个参数表示旋转轴的坐标;glScalef()表示缩放变换,三个参数表示在三个坐标轴方向的缩放比例。这里,通过多媒体可是课件,通过鼠标来控制参数的值,根据参数值的变化,显示效果也会随之变化。通过这种三维的动态多媒体课件的演示,可以使学生更好的理解三种变换,同时对OpenGL中对应的函数及其参数的具体含义有了更好的掌握。2.3具体应用原理算法的具体应用在完成前两个步骤的基础上,可以通过一些小的应用程序或游戏程序的演示,将其中对应的图形绘制方法的应用提炼分析出来,这样可以使学生对所学知识的具体应用有较直观的认识,为其将来的进一步学习和实践打下基础。3教学与实验相结合“计算机图形学”是一门实践性很强的课程,但在目前,普遍存在的现象是“计算机图形学”课程的理论教学内容存在着一定孤立性,与上机实践联系并不紧密;因此,有必要加强学生动手能力的培养。为了确保计算机图形学课程的教学质量,应该选用目前市场上比较流行的图形开发环境作为学生的实践环境,同时也要注重课堂知识的消化,因此理论知识的对应实验也不能轻视。笔者认为应将两者有效地结合起来才能达到更好的效果。为了能够帮助学生更好地理解理论知识,更好地提高动手能力,实验部分可以分三部分进行: (1) 基础实验:主要完成各种理论讲解过程中学习的代码实现,编程环境为Turbo C。(2) 提高实验:以Visual C+ 和OpenGL作为开发环境,进行实践动手能力的培养和训练。(3) 体验实验:以3D Max作为开发环境,进行图形图像软件开发的体验实验。基础实验可以帮助学生更好地理解基本的理论和各种基本图元的经典算法。提高实验可以提高学生理论联系实际的能力,能够使学生更多地接触实际开发中所使用的工具和开发环境,为将来的工作打好基础。体验实验中的3DMax是图形开发的具体产品,通过对其的使用和接触,可以让学生感知到计算机图形学的应用情况。通过基础实验、提高实验和体验实验的结合练习,不但可以提高学生的编程能力,而且加深了学生对所学知识的了解和认识,使学生对“计算机图形学”的实际应用有了感性的认识。4结语“计算机图形学”是计算机学科的主要基础课程之一,但由于各种原因,学生学起来有一定的难度,这给授课的教师带来相当大的挑战。“计算机图形学”的教学是一个复杂的系统工程,它会涉及到诸多方面的问题,以上所述仅仅是笔者授课过程中得粗略总结,有不妥或不足之处,敬请大家批评指正。 参考文献:1 张曦煌,杜俊俐. 计算机图形学M. 北京邮电大学出版社,2006,8.2 OpenGL体系结构审核委员会等. OpenGL编程指南(第4版)M. 人民邮电出版社,2005,4.3 陈元琰, 张睿哲, 吴东. 计算机图形学实用技术(第2版)M. 清华大学出版社,2007,3.Teaching method discussion of Computer GraphicsXUE Chun-yan( XiamenUniversity Tan Kah Kee college)Abstract:Computer Graphics is a very importment course of computer speciality , here are a lot of problems in teaching, this text has summarize two kinds of teaching methods and has analyzed and probed into its application in teaching.Key words: Computer Graphics; teaching method 1 评价软件中实现数据模糊查询的方法关键词:数据库;评价管理;模糊查询 摘要:利用计算机对教学质量进行管理,是实现教学管理规范化和科学化的重要手段。本文以黑龙江省教育厅高职高专院校科学技术研究项目高职院校教学质量评价系统软件的开发与应用项目编号:11525049为例,介绍了教学质量评价系统数据库优化查询的设计。 一、引言 随着网络技术的迅速发展 ,信息资源数量快速增长。在教学质量评价系统中,存在模糊概念和模糊信息。如何在已有的数据库中查询这些模糊信息 ,这就需要通过定义隶属函数,对结构化的查询语言SQL进行模糊化处理,形成模糊化。本文主要介绍如何在pb中根据数据窗口中的字段对数据窗口进行模糊查询。本系统的代码示例采用PowerBuilder8.0进行演示。 二、窗口的代码及设计 1.新建一个窗口,命名为w_query。在窗口中放入一个数据窗口控件,命名为dw_master。在dw_master中放入一个数据窗口;放置一个按钮,命名为cb_query 。在窗口的Open事件中增加如下代码:dw_master.setTransObject(sqlca)。在dw_master的ue_action_query中增加如下代码: str_result_column lstr_1/结构str_result_column的成员adw_result指查询结果所产生作用的dw/成员adw_column指在本窗口查询条件所要显示的dw: lstr_1.adw_result = this lstr_1.adw_column=this OpenWithParm(wroot_dw_query,lstr_1) 2.属性和主要代码如下: Visibl=true Enabled=true TitleBar=true Title=定位查询 DataWindow dw_result,dw_detail pfc_n_cst_string inv_string string sSyntax 注释:a.pfc_n_cst_string 为PFC用户对象。 3.窗口事件代码: close 事件:功能:将用户本次所输入的查询条件记录到文件sIniFile的WhereClause1.n小节中去以备下次启动时置初始查询条件。 open事件:功能:设置初始值,具体请看代码中的注释。 integer i,row,li_where_row=10 string tmp str_result_column lstr_1/结构str_result_column的成员adw_result指查询结果所产生作用的dw 三、函数的主要代码设计 设计了三个窗口函数wf_getywname (string hzname)、wf_getywtype (string hzname)函数、wf_dateconvert (string svalue)函数。功能:见程序中注释。 string syear,smonth,sday date idate public function string wf_datetime (string inputvalue) inputvalue=trim(inputvalue) integer position string bef,aft /* bef为日期,aft为时间*/ position = pos(inputvalue, ) string syear,smonth,sday dw_2.ReSet() For i=1To long(dw_1.Object.DataWindow.Column.Count) scol=dw_1.Describe(#+String(i)+.Name)/列名(可变) syw=stable_col /列名(不变.OK) shz=trim(dw_1.Describe(scol + _t.Text) /中文名 stype=dw_1.Describe(scol+.ColType) /列类型 if dw_1.Describe(scol + .Type)=column& and shz<>!and shz<>?then shz=lnv_string.of_globalreplace(shz,:,) /去掉冒号 row=dw_2.InsertRow(0) dw_2.object.datarow,1=shz dw_2.object.datarow,2=syw dw_2.object.datarow,3=stype dw_2.object.datarow,4=stable end if Next 四、小结 在模糊查询中,注意使用%为通配符。通配符LIKE用于字符串),如果要对数字进行操作,用in.in(200,230),指定范围(a-f)或集合(abcdef)中的任何单个字符。将通配符作为文字使用可以将通配符模式匹配字符串用作文字字符串,方法是将通配符放在括号中。 参考文献: 1张厚粲,刘昕.考试改革与标准参照测验.辽宁教育出版社,1992,9 2薛理银.教育信息处理原理.北京师范大学出版社,1996,3   摘要:本文根据“网络编程”教学课题组多年的实际教学经验,分别对理论、实践、考核教学环节中的教学方法进行了总结,强调以学生为主体,结合案例教学,采用启发式、互动式、目标式多种教学方法,在实际教学中取得了较好的效果。关键词:网络编程;教学方法;理论教学;实践教学1课程介绍网络编程通常包括3类编程1:基于TCP/IP协议簇的网络编程、基于WWW应用的网络编程、Web Service网络编程。“网络编程”课程主要是指基于TCP/IP协议簇的编程方式,作为“计算机网络”的后续课程,在计算机类专业课程体系中占有十分重要的位置,是网络工程专业的必修课。本课程要求学生在理解计算机网络的基本理论的基础上,运用高级语言进行编程开发,注重实践环节。因此我们在大四上学期开设本课程,总学时为54(34+20)学时。2教学方法设计2.1理论教学(1) 以人为本,学生自选编程语言。现有的网络编程语言主要有MFC C+/C#.NET/Java1-3,后两种语言是目前的主流选择。早期的网络编程大都是基于UNIX或Windows的套接字API,采用C或C+作为编程语言。此后由于Java鲜明的网络特色和跨平台特性,J2EE技术的推广普及,使用Java进行网络编程比较普及;而微软推出的.NET开发平台,由于其与Windows操作系统的无缝集成,开发工具的便捷、高效性,使得以C#.NET进行网络编程也逐渐流行。 “网络编程”课程强调基于网络基本理论的编程实践,虽然不与具体的编程语言有必然的联系,但是编程语言在教学环节中又非常重要。就学生来说,学习网络编程时正是高年级阶段,必修课程学过高级程序设计(C或C+)、面向对象程序设计(Java)、.NET开发(C#.net),任选其中的一种语言似乎都可行。但据开课前我们对学生的调查显示,92%的学生愿意选择Java或C#中的一种,其中部分同学首选Java(有部分同学未修C#课程),另有部分同学强烈希望使用C#进行编程。因此,课程教学课题组决定,学生可以根据个人的实际或兴趣任选其中一种编程语言,教师上课侧重网络基本理论的讲解,编程实践以C#和Java为主,并给出两种示例代码。(2) 结合案例,强调基本概念的理解与实践相融合。网络编程作为应用型课程,其理论基础部分已在计算机网络课程中学习过,但偏重理论介绍,学习偏于单调枯燥,不排除学生死记硬背的可能。上课时结合实践中的具体案例进行讲解,如网络游戏、即时通信工具(如QQ)的实现原理,无疑会提高学习兴趣,真正做到理论与实践相融合。但是如果不能真正理解基础概念,进行网络编程实践则相当困难,因此,在网络编程学习中需要强调基本概念的理解与实践。下面举例说明。套接字(Socket):是对网络中不同主机上应用进程之间进行双向通信的端点的抽象,如图1所示,一个套接字就是网络上进程通信的一端,两个应用进程只要分别连接到自己的套接字,就能方便地通过计算机网络进行通信。套接字是一个复杂的软件机构,由操作系统内核管理。套接字生成后用一个整数(套接字描述符)来代表,使用时要与计算机上的特定IP地址和传输层端口号相关联,这个过程称为绑定。 对比分析建立连接的3次握手过程。为确保连接的建立和终止都是可靠的,TCP使用3次握手(3-way handshake)的方式来建立连接。图2示范了“计算机网络”课程中建立连接的典型示意图,图3示范了流式套接字建立连接的过程,通过对比分析,学生可以一目了然的理解连接是如何建立的。图2TCP的3次握手过程 多线程的使用。在网络应用进程通信时,普遍采用客户机/服务器交互模式(Client-Server paradigm of interaction),简称C/S模式。如图4所示,作为服务器的一方,如果需要同时与多个客户端进行通信,服务端应用程序的设计就必然使用多线程编程。因此,熟练操作线程是实现网络应用程序的关键。在Socket的C#程序设计中,服务器端监听线程创建多个线程与客户端进行通信的过程示例代码为:图3流式套接字编程的基本步骤图4服务器创建多个线程与多个客户通信IPEndPoint ipep = new IPEndPoint(IPAddress.Any,6001);Socket serverSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);serverSocket.Bind(ipep);serverSocket.Listen(10);while (true)/循环监听 try/在套接字上接收接入的连接clientSocket = serverSocket.Accept();clientThread = new Thread(new ThreadStart(ReceiveData);clientThread.Start(); catch (Exception ex) MessageBox.Show(监听错误: + ex.Message); 客户端与服务器建立连接代码片断:IPEndPoint ipep = new IPEndPoint(IPAddress.Parse(),6001);Socket clientSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);clientSocket.Connect(ipep);/阻塞模式,连接服务器(本机)(3) 启发兴趣、加强互动,丰富教学资源。兴趣是学习的动力,在教学过程中提供丰富的教学资源和多种教学形式是提高学生学习兴趣,促进其主动学习的关键。 公布电子课件、示例源代码,学生可自由下载,并鼓励在课前进行预习。对于完成效果较好、有创新点的学生实验作品,提出嘉奖并在网上公开。 加强教与学的互动,切实做好答疑环节。学生可以方便地通过邮件、短信、QQ等形式与课题组所有老师联系或提出疑问,而教师也会及时进行回复。 结合课程特点和互联网应用的实际情况,设计受欢迎的实验题目。目前流行的互联网应用系统,如网络游戏、即时通信系统等,学生自己独立完成都成为可能。 介绍Linux及Unix操作系统下网络编程的实现。目前的编程环境以Windows操作系统为主,而了解其他的开发环境和实现方式也会提高学习的兴趣。2.2实践教学如表1所示,将8个实验总学时数定为20,分为选做实验和必做实验,两种实验都必须按要求完成。选做实验主要是指验证性实验,上机调试通过即可;必做实验为教师重点检查实验,要求提交实验报告,上机运行并根据实验的完成效果由教师现场给出成绩。综合性实验是必做实验,可以单人完成,也可小组(23人)合作实现。表1 实验课程安排实验名称学时说明Socket2必做,验证性实验 TCP2选做,验证性实验UDP2选做,验证性实验TCP/UDP综合4必做,综合性实验FTP2选做,验证性实验;3个实验任选一个SMTP/POP32HTTP2综合设计实验4必做,综合性设计性试验在所有实验当中,综合设计实验一般是在学期末布置,综合运用本课程所学知识进行设计相对较大型、有一定难度的实验。但是如果在学期末才布置实验内容,会因为学生时间紧张、实验时间短的问题而影响实验效果。因此我们实行“目标式”教学方法:从学期开始就要求学生根据自己的兴趣爱好,从综合性设计性实验题目中选取一个(或多个)作为实验目标,让学生较早了解实验内容和要求,在平时学习中有针对性地准备,到学期末完成实验目标就水到渠成。实践表明,这种目标教学法既可以提高学习动力,同时实验完成效果也较为理想。3考核方式期末成绩为综合成绩,分为期末考试成绩和平时成绩,其中综合成绩=期末考试成绩(70%)+平时成绩(30%,包括实验成绩、考勤情况等)。期末考试为闭卷考试(120分钟),重点考核基本理论的理解及其实现;平时成绩主要针对学生上课的出勤率、上课表现等情况,按比例折算实验成绩(实验成绩为几个必做实验的综合平均)。例如:如果出勤率较高、上课表现积极,则平时成绩就是实验成绩的100%。由于实验成绩由教师根据实验效果现场给出,分数的高低也鼓励学生认真完成实验要求并力求创新,从而促进了学习的积极性。4结语在课题组教师的共同努力下,通过几个学期来对网络编程教学方法的探索和实践,本课程已经建立起较完善的教学体系和教学方法。从教学效果来看,提高了学生的积极性和主动性,增强了学生的创新能力、分析解决实际问题的工作能力。今后,我们仍需不断地研究,不断地总结教学经验,使整个教学环节更加完善合理。参考文献:1 叶树华,高志红. 网络编程实用教程M. 北京:人民邮电出版社,2006.2 汪晓平,贾敬习,李功. 精通Java网络编程M. 2版. 北京:清华大学出版社,2009.3 梅晓冬,颜华青. Visual C#网络编程技术与实践M. 北京:清华大学出版社,2008.Teaching Method Discussion of “Network Programming”LIU Han-xing, LIU Cai-xing, KUANG Ying-jie, TIAN Xu-hong(College of Informatics, South China Agriculture University, Guangzhou 510642, China)Abstract: Based on practical teaching experience of Network Programming teaching team, the methods are summarized of theory, practice and examine teaching. Student-centered is emphasized, cases are combined in teaching, several teaching methods are used, such as heuristics, interactive and target methods, and good effect is acquired in our teaching practice.Key word: Network Programming; teaching method; theory teaching; practice teaching 1 办公自动化网络系统安全防护及设计原则关键词:办公自动化;网络安全;病毒;黑客 摘要:本文总结了办公自动化网络常见的安全问题及其后果,探讨了解决这些安全问题的方法,提供了基于网络内部的安全策略。 随着计算机网络技术的普及,利用联网实现办公自动化,并将办公自动化应用到政府、军队和各大企业等安全性要求较高的机构已成为一种迫切的需要。所谓办公自动化是指运用微机及相关外设,有效地管理和传输各种信息,以达到提高工作效率的目的。 办公自动化系统的安全包括网络设备、配套设备的安全、数据的安全、通讯的安全、运行环境的安全,还包括网络内部每台计算机的安全、计算机功能的正常发挥等部分。办公自动化网络是一个中小型的局部网络。办公自动化网络系统是自动化无纸办公系统的重要组成部分。在实现联网办公时,由于覆盖面大,使用人员混杂,管理水平各异,往往不能保证公文在网络上安全传输和管理。还有一些人专门在网络上从事信息破坏活动,给国家、企业造成巨大的损失。因此,加强网络安全,防止信息被泄露、修改和非法窃取成为当前网络办公自动化普及与应用迫切需要解决的问题。 一、系统安全威胁因素 1.物理设备威胁:是指偷窃设备、直接读取设备、间谍行为等以直接方式对系统信息造成的威胁。黑客只要侵人办公自动化网络中的任意节点进行侦听,就可以捕获发生在这个网上的所有数据包,对其进行解包分析,从而窃取关键信息;而本网络中的黑客则有可能非常方便的截取任何数据包,从而造成信息的失窃。 2.线缆连接威胁:包括拨号进入、连线或非连线窃听等方式窃取重要信息。 3.身份鉴别威胁:包括口令被破解、加密算法不周全等漏洞性因素。 4.病毒或编程威胁:病毒袭击己成为计算机系统的最大威胁,一旦某个公用程序染了毒,那么病毒将很快在整个网络上传播,感染其它的程序。由网络病毒造成网络瘫痪的损失是难以估计的。一旦网络服务器被感染,其解毒所需的时间将是单机的几十倍以上。此外,有的编程人员为了某种目的,故意编写一段程序代码隐藏在系统中,对系统安全构成威胁。 二、针对以上几方面威胁因素的安全保护 1.物理设备和安全防护,包括服务器、有线、无线通信线路的安全防护; 服务器安全保护,不同类型、不同重要程度的数据应尽可能在不同的服务器上实现,重要数据采用分布式管理,服务器应有合理的访问控制和身份认证措施保护,并记录访问日志。系统中的重要数据在数据库中应有加密和验证措施。 用户对数据的存取应有明确的授权策略,保证用户只能打开自己权限范围之内的文件。 通过审计和留痕技术避免非法者从系统外取得系统数据或是合法用户为逃避系统预警报告的监督而从系统中取得数据。 客户端安全保护,客户端的安全主要是要求能配合服务器的安全措施,提供身份认证、加密、解密、数字签名和信息完整性验证功能,并通过软件强制实现各客户机口令的定期更换,以防止口令泄漏可能带来的损失。 2.对于病毒和灾难破坏的数据保护来说,最为有效的保护方式有两大类:物理保护和数据备份。要防止病毒和灾难破坏数据,首先要在网络核心设备上设置物理保护措施,包括设置电源冗余模块和交换端口的冗余备份;其次是采用磁盘镜像或磁盘阵列存储数据,避免由于磁盘物理故障造成数据丢失;另外,还要使用其他物理媒体对重要的数据进行备份,包括实时数据备份和定期数据备份,以便数据丢失后及时有效地恢复。 3.要有效地防范非法入侵,应做到内外网隔离、访问控制、内部网络隔离和分段管理。 4.内外网

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论