时间:2023-03-16 15:41:25
导语:在vb程序设计论文的撰写旅程中,学习并吸收他人佳作的精髓是一条宝贵的路径,好期刊汇集了九篇优秀范文,愿这些内容能够启发您的创作灵感,引领您探索更多的创作可能。
论文摘要:《VISUALBASlC程序设计》是中等职业学校计算机专业的必修课之一,由于其不仅要求有较扎实的理论基础,而且对实操能力要求也比较高,使得很多学生望而怯步,增大了老师教学难度大,教学效果也深受影响。本文阐述了造成vb课堂教学效果不佳的原因及改善这一现状的办法。
VB于1991年诞生在美国,经过二十多年的发展日趋成熟。它一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。功能强大可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。
如今VB课程已经成为了中等职业学校计算机专业的一门公共基础课程。笔者在近几年教学中发现了许多问题,并积极地探索解决的方法,现在这里和大家交流交流。
一、教学效果不佳的原因
首先,中职学校的生源素质普遍偏低。众所周知,他们大多是中考失败者,缺乏学习主动性及自我学习能力,在初中的时候数学成绩就比较差使得逻辑思维能力不强,而VB这门课程就需要的就是较强的逻辑思维能力,这样就造成了在学习的时候颇为吃力;其次,英语基础差影响动手能力。VB不仅强调理论知识,在动手操作方面要求也是颇高,对英语水平也有一定的要求。对于初中毕业的学生来说英语水平比较差,很难记住VB的命令,对控件的使用属性中的英语有的也不认识,更不要说利用命令来解决问题了;最后,很难建立程序设计的思想。由于学生在学习VB课程之前没有接触过任何程序设计方面的知识,要理解程序设计中的面向对象、语法结构等专业知识比较困难。在这么多困难下,学生往往很容易产生畏惧的情绪,还役入门就已经放弃了学习,所以老师如何设计好教学过程,更好的引导学生学习显得格外重要。
二、提高教学效果的几个办法
做为一名教学工作者,笔者一直努力探索如何提高VB的教学效果,引导好学生学好这门课程。现在这里谈谈自己在平 时教学中使用的一些办法。
(一)“低起点、缓坡度、密台阶”的教学理念
“低起点”就是在课本要求的基础上再降低难度,让学生一开始学习就能够很轻松上手,因为大部分认为程序设计课程高深莫测,很难学懂,进而产生的恐惧心理;“缓坡度”即是在教授知识时,难度要循序渐进,不能够一味的“拔高”,让学生能够扎实的掌握每一个知识,一步一个脚印,慢慢提高。“密台阶”是教学中层次结合要紧密,尽量减少知识点的跳跃,紧密的教学内容让学生形成紧密的知识链,对学生学习提 高十分有利。
(二)“建立快乐课堂”的教学目标
快乐是人精神上的一种愉悦,是一种心灵上的满足,它会使一个人变得开心。所以把快乐带给学生也是课堂教学的一个关键。人只有心情愉快的时候才能提高学习效率,才能使人学习进步,笔者一直本着让学生快快乐乐学习,快快乐乐靠大学 的想法,开展了快乐课堂。 第一,幽默的语言。语言也是一种艺术,而幽默的语言往往是建立和谐J渝决气氛的催化剂。在课堂教学中,学生要获得快乐就必须有一个愉快的气氛,老师在课堂中就是“指挥官”,也是可以说是“导演”,一个小小的幽默就能激发学生的“快乐分子”,让课堂气氛轻松,决。
第二,亲切的教学态度。要让快乐贯通整个课堂,亲切的教态是必不可少的。人与人相处,态度非常重要,你给别人一个微笑,别人会给你更多的微笑,你给比人一份关心,别人给你的关心会更多更多。
第三,教学设计多添加“快乐元素”。教学设计是整个教学环节的重中之中,它的好坏直接影响这节课的质量。在教学中添加快乐元素是建立快乐课堂的重要手段之一。如在教学中穿插游戏、比赛、讨论等内容,有利于课堂气氛的调节。
第四,让他们感受成功的喜悦。成功是每个人向往的,它能给你带来快乐、建立信心。在v$学习中的成功莫过于设计的作品能顺利运行,教学老师应该多给学生感受成功的机会。例如遇到较难的间题,可以分解成若干小问题逐个解决,提高成功率,保护学生的学习积极性。成功让他们跟有自信,有了自信学习起来就会更有兴趣。
(三)“趣味案例”的教学方法
论文摘 要:NetMeeting是从Windows95/98操作系统开始就捆绑搭载的廉价优质网络通讯软件。作者利用该软件为学生构建计算机课程教学环境,通过产生一种具有互动共享式的学习环境,不仅激发学生的学习兴趣和主动性,而且在实践中利于尝试各种教学方法,从而提高教学效果。
NetMeeting是Windows操作系统中集成的一款实用通讯软件,用户利用它可以在Intenet或局域网络上轻松实现文件传送、共享桌面、远程管理、语音通迅等功能。在教学实践过程中,笔者利用NetMeeting构建了《Visual basic语言程序设计》课程教学环境,在实践教学中尝试采用各种教学方法,取得了良好的教学效果。后经推广到其他计算机语言(如C语言,VF语言等)教学,也达到了同样的预期效果。
1 NetMeeting教学环境的的架构
由于笔者所在的教学机房中各机已经构成局域网环境,并且都已经安装XP操作系统,而NetMeeting软件是Windows操作系统自带的,因此不需要另外安装。具体实现方法如下。
(1)公共设置:教师机和学生机均要完成这部分设置。具体步骤是:选择任务栏左下脚的“开始”菜单,选择“运行”选项,然后在“运行”对话框中输入“conf”命令。第一次运行时需要按照向导的提示设置自己的名字和电子邮件等信息,完成设置后会在操作系统桌面上生成NetMeeting的快捷图标,以后只要双击就可直接启动。
(2)教师机设置:首先单击NetMeeting面板菜单上“呼叫”栏的“主持会议”按钮,根据弹出的对话框里具体说明进行选择确认。然后再点“呼叫”栏的“自动接受呼叫”按钮,这样可以自动接受学生的呼叫。最后点“工具”栏的“共享”按钮,选择桌面共享,教师机的屏幕将同步显示在学生的屏幕上,实现操作演示。
(3)学生机设置:单击NetMeeting面板菜单上“进行呼叫”按钮,在弹出的对话框里输入公布的教师机IP地址,教师机将自动接受其呼叫请求,NetMeeting的名称窗口将会出现被呼叫人和呼叫人的头像和名称。
在NetMeeting窗口下方包含四个选项:共享、聊天、白板和文件传送,这四项包含了NetMeeting的主要功能。利用以上功能可以实现学生机与教师机同步演示、文字互动交谈,可以将简单图形或文字发送到所有学生机的屏幕上,一次性将作业或辅导材料发送给所有学生。至此完成NetMeeting教学环境的架构,为计算机教学创造了基本条件。
2 NetMeeting下计算机语言教学模式的几点尝试
在VB程序设计教学过程中,如何解决程序设计本身枯燥、不易理解这个问题,找到一条比较新颖的教学方式,一直是广大计算机教师颇感兴趣的课题,笔者在基于NetMeeting下大胆尝试各种教学方法。
2.1 先入为主教学法
VB语言所涉及的内容多,控件属性、事件、方法也较多,学生在毫无知识背景的前提下如果教学开始阶段就过多讲授这些抽象概念,学生就会感到枯燥乏味,容易丧失学习编程的积极性。因此,在第一节课,就采取先入为主法,具体就是让学生在教师指引下直接进入编程环境,从创建最简单的程序入手,如在窗体上添加一个COMMAND1命令按钮,要求单击它就在窗体上输出一段文字。此程序虽然简单,但很好阐述了VB面向对象的事件驱动编程机制。至此,教师再引入VB的基本概念就水到渠成,学生也更容易接受理解,从而打破编程的神秘感,为进一步学习创造了良好的氛围。
根据NetMeeting教学环境本身的特点,开始阶段要求学生和教师一起编程序,突出编程这个主线,贯彻始终,在实践中由同学们自己直观上先去体悟这些概念,待时机成熟时再和同学们一起归纳总结,不断启发学生思维,培养独立编程能力。
2.2 娱乐式教学法
在程序设计教学中从学生的兴趣入手,利用学生对事物的好奇心,选择一些有趣的、有实际意义的程序,激发学生的学习热情。二十岁左右青年学生一般对游戏都感兴趣,因此在教学中,尝试引入一些小游戏程序后,发现能很快带动课堂气氛。笔者引入的是古典的猜数字游戏,就是计算机在1~100之间产生随机的某个整数,让游戏者猜出其具体值,根据你猜的数字计算机给出提示是过大还是过小,从而一步步逼近具体值,最后统计出游戏者猜出正确结果所花的次数。这个程序把VB当中的条件判断语句、输入框、消息框、数据类型的定义、随机数的产生等几个重要概念都揽括了,既让学生在轻松快乐的气氛下既掌握到了编程所需要的基本概念,又让其体验到了编程的乐趣。学生通过对游戏程序不断比较和完善,对重要语法结构、相关概念及关键性语句均有了较深刻的体会,而这是一些传统程序例子所难以企及的。
2.3 重复式教学法
不断的重复再重复就是成功,因此重复也是学习中一个很重要的方法。从学生开始的懵懂到有所领悟到最后的理解,都是在经历相似的编程经历之后达到了,所以说这是个不断循序渐进的过程,而这个过程是不论采用什么先进教学方法都是不可跨越的。VB涉及的知识点很多,为力求重点突出,笔者在教学过程中,对前面章节中的常见标准内部函数、字符串函数等基本概念,就没有专门一一去介绍,而是通过主要语句的实例教学得以体现。因此重复式教学法不是针对所有知识点,而是把握重要知识链,通过教师示范编程、学生简单模仿、独立编写程序这样不断重复的强化训练,使学生较快掌握编程基本思想。
3 结语
科技的进步和发展给我们提供了良好的条件。基于NetMeeting网络开放式环境下的计算机语言教学,其教学模式的构建涉及教育观念的更新、教学方法的改革、给教学赋予新的含义等等。本文进行了相关方面的探讨与研究,希望能够抛砖引玉,共同探索出在网络环境下适于现代化教育要求的教学模式。
参考文献
[1] 裴娣娜.教育研究方法导论[M].安徽教育出版社,2000.
关键词:AutoCAD,二次开发
随着计算机技术的发展,计算机软件在工程设计领域的应用越来越广。在机械、电子、建筑等行业,应用计算机软件进行产品设计的CAD软件也非常丰富,世界和国产的各种优秀CAD软件正以前所未有的速度进入机械、电子、建筑等行业的各个领域,使产品设计人员能够高效率地进行各自领域的产品分析、设计等工作。美国Autodesk公司是目前世界上比较成功的CAD领域的开发商,其开发的AutoCAD一直是CAD市场中的主流产品,随着AutoCAD的日益普及,在其上进行二次开发的工具也相继由该公司推出。企业购进AutoCAD软件,并非只能用作代替“图板”,只有真正地在其上实现了二次开发,才能充分发挥AutoCAD作用。CAD二次开发,有很多不同层次的语言和库可供选择。本文就此向大家分别做一介绍。
第一大类: AutoLisp和VisuaLisp
Lisp是一种计算机的表处理语言,是在人工智能学科领域广泛应用的一种程序设计语言。AutoLisp语言完全嵌套在ACAD内部,同ACAD有机地结合成一体。它既具备一般高级语言的基本结构和功能,又具备一般高级语言所没有的强大的图形处理能力。论文大全。AutoLisp可直接调用几乎全部ACAD的命令,从而进行ACAD的二次开发。利用AutoLisp开发ACAD的一个典型例子就是实现参数化绘图的程序设计。
AutoLisp具有如下优点:
1.AutoLisp是一种表处理语言,是被解释执行的,任何一个语句键入后就能马上执行,它对于交互式的程序开发非常方便。在ACAD的开发工具中,它是唯一的一种不需要专门的编译工具,直接调用其编写的函数,就可以实现目标操作的语言。
2.AutoLisp语言中的一切成分都是以函数形式给出的,它没有语句概念和其他语法结构。执行AutoLisp程序就是执行一些函数,再调用其他函数。
3.AutoLisp把数据和程序统一表达为表结构,即S-表达式,使数据和程序融为一体。
4.AutoLisp语言中的程序运行过程就是对函数的求值过程,是在对函数求值的过程中实现函数的功能。
5.AutoLisp语言的主要控制结构采用递归方式,使程序简单易懂。
VisuaLisp是AutoLisp的扩展,是为加速AutoLisp程序开发而设计的软件工具。VisualLisp已经被完整地集成到ACAD中,为开发者提供了增强的集成开发环境,这样开发者可以直接使用ACAD中的对象,进行更底层的开发。用它开发AutoLISP程序的时间被大大地缩短,而且原始代码能被保密,以防被他人更改;同时利用可视化的编程环境,大大地减小了学习难度。作为脚本语言的VisuaLisp程序,同样存在两大不可避免的缺陷。第一是当程序规模很大或是操作的对象数量过多时,运行速度慢,让你明显感觉到它的迟钝。第二是ACAD命令本身做不到的功能,它也是无能为力。譬如关于自定义对象、内存操作、数据传递之类,只能依赖其他办法来解决了。所以我个人认为Lisp适用于把现有命令组合成一个新命令来使用,尤其是存在大量重复操作的时候,用来做批处理非常好。唯一让人感到不适的是,由于Lisp语言本身的语法要使用大量的圆括弧,当嵌套层次较深时,往往会在括弧的配对上发生问题。
第二大类:ADS(AutoCAD Development System)、ARX(AutoCAD Runtime eXtension)和ObjectARX (AutoCAD Runtime Extension)
ADS是从AutoCADR11开始引入的基于C语言开发应用程序的系统。ADS不是C语言的一个子集,也不是基于C而编制的专用语言(如Microstation的MDL),但它包括了C的全部功能。它具有C的一切优点,又能操作CAD。它对开发人员C语言要求较高。C是编译型语言,功能强大,因此ADS很轻易地克服了AutoLisp所固有的许多缺点而具有速度快,安全性高的特点。ADS不包含于ACAD内部,而是作为一组AutoLisp外部函数由AutoLisp解释器装入、解释并请求ACAD运行。其特点如下:
1.ADS程序是将应用程序编译成可执行的文件,通过AutoLisp和ACAD进行通讯。
2.ADS程序更“绝缘”,ADS程序是一系列独立的过程,程序崩溃并不一定导致AutoCAD系统崩溃(尽管并不总是如此)。
3.ADS程序是不可重复加载的。
4.ADS程序具有保密性好,运行速度快的特点,因而很适合于编写计算量大或需要与主机环境交互的应用程序。
5.ADS只能使用传统的C语言进行编程,采用传统结构化的编程体系。
早期国内常见的应用软件多是用ADS进行开发的,但ADS程序必须经过AutoLisp解释加载,因此ADS的各方面性能受到限制。同时,随着网络技术的迅速发展,面向过程的ADS已有些力不从心了,所以,在AutoCADR13开始推出的一个全新的面向对象的开发工具ARX。ARX是在ADS基础上发展的面向对象的环境,使用C++语言。最终ARX进化为ObjectARX。
ObjectARX是一种崭新的开发AutoCAD应用程序的工具,提供了以C++为基础的面向对象的开发环境及应用程序接口,能真正快速访问ACAD图形、数据库,同时能使用户方便快捷地开发出高效简洁的ACAD应用程序。ObjectARX开发的应用程序速度更快、集成度更高、稳定性更强,同时向下兼容ADS。它的特点是很明显的:
1.ObjectARX与ADS程序和AutoLisp程序都不相同。从本质上讲,是一种特定的C++编程环境,它包括一组动态链接库(DLL),这些库与ACAD在同一地址空间运行并能直接利用ACAD核心数据结构和代码。在ObjectARX中,每个命令都有独立的入口。ObjectARX程序还可以创建新的类,这些类可以为其他程序所共享,从而充分利用面向对象的编程的优点。
2.对于需要经常和ACAD通讯的应用程序来说,ObjectARX程序比ADS程序运行速度更快,这里的运行速度主要指是访问ACAD数据库的速度。
3.相比之下,ObjectARX程序是比宏更基本的程序。主程序(ACAD)可调用每个由ObjectARX程序注册的命令。
4.ObjectARX程序具有ADS程序和AutoLisp程序所不具备的访问和控制ACAD的能力。ObjectARX程序可以监控和处理ACAD各种事件,可以定义ACAD命令,包括可以透明执行的命令。论文大全。这些命令可以像ACAD自身的命令一样被AutoLisp和ADS所调用。
基于以上优点就充分说明了ObjectARX的彪悍。天上不会掉馅饼,这个方式的代价就是难度提高了。对于ObjectARX编程,Autodesk公司建议使用Visual C++4.2及以上版本的开发环境,这一点就要求开发者具有较高的起点,对语言的学习程度要求较高,对广大用户来说相当不易掌握。(在CAD2006以前,只能使用C++语言和VC编译器来生成ObjectARX程序,但目前已经可以使用VB.net C# C++等语言配合VisualStudio.net编译器来生成ObjectARX程序了。)C++语言本身就很复杂(VB.net和C#也不方便到哪里去),再配上复杂度不相上下的ObjectARX库,如果要写出切实可用的程序,还要深入了解ACAD本身的结构。ObjectARX最致命的缺点,由于已经和ACAD融为一体,和AutoCAD共享进程空间,ObjectARX程序崩溃通常会导致ACAD系统的崩溃。
第三大类:ActiveX和VBA(VisualBasic for Application)
ActiveX是Microsoft提出的一组使用COM(ComponentObject Model,部件对象模型)使得软件部件在网络环境中进行交互的技术集。AcitveX与具体的编程语言无关,可以用任何一种支持他的语言来编写,但大家习惯选择简单易用的VB语言。
Autodesk公司从R14开始内置了VBA开发工具,同时提供了适于VBA(VB)开发的ActiveX Automation对象模型,对于熟悉VB语言又不想学习Lisp奇怪语法的开发者来说,这是不错的选择。VBA(VB)的主要特点如下:
1.VBA最早是内嵌在Office97中的一种编程语言,它易学易用,功能强大。所以Autodesk公司从R14之后把它也嵌入了AutoCAD中。
2.VBA和AutoCAD 2000中强大的ActiveX自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。通过VBA,我们可以操作AutoCAD,控制ActiveX和其它一些应用程序,使之相互之间发生互易活动。
3.VBA(VB)数据类型丰富、界面友好。
4.VBA是内嵌在AutoCAD中的一种编程语言,对平台有依赖性,但VB对此有改善。
5.利用VBA(VB)开发AutoCAD,以要求开发者熟悉VB语言为基础。
就当前AutoCAD的主要二次开发工具:VisualLisp、VBA和ObjectARX而言, VisualLisp与VBA较为简单,特别是VBA,使用方便且开发速度较快,但其功能相比ObjectARX有所不足,尤其是对面向对象的功能支持不好。而ObjectARX基于VC平台,在C++的支持下,其功能非常强大,可以很好地运用各种面向对象技术,但其缺点是发开速度比较慢,同时对开发人员的能力要求较高。
基于以上原因,微软新推出的ACAD二次开发平台——.NET API,它具有众多优点。在新推出的AutoCAD 2006中,Autodesk为其开发增加了.NET API。论文大全。.NET与ObjectARX一样,基于VC平台,拥有与C++相匹配的强大功能,同时,具备VB方便易用的特点,似乎是VB.net/C#和ObjectARX Managed wrapper classes的组合,实为较理想的ACAD二次开发工具。从目前的趋势来看,AutoDesk有全面转到.net平台的趋势,有可能完全取代ObjectARX和VB,具体情况仍在观望中。
总之,通过以上分析可以看出,AutoLisp仍然是ACAD的基本开发手段,它适于一般开发者用于较为简单交互性程序的开发。因为除了语言、功能、编写和调试的难度之外,还有CAD版本匹配的问题。AutoLisp程序的适合度最好,即使是为AutoCAD R12开发的程序,在CAD2007中仍然能够使用。ADS将逐步被更为完善的ObjectARX所取代,而ObjectARX与AutoLisp正相反,为CAD2002编写的程序就已经不能在2004下运行了。为老版本ACAD编写的ObjectARX程序的源代码虽然可以不需要修改或较少的修改,但必须链结新版本的ObjectARX库进行重新编译,才能被新版本所运行。而且,不同版本的ObjectARX库还指定了不同版本的编译器。譬如,CAD2000/2002版应使用VC6,CAD2004/2005就需要使用VC.net 2002,而CAD2007则需要VC.net 2005。而作为ACAD用户二次开发的另一支生力军VBA则介于二者之间。Autodesk新推出的 .NET API二次开发平台除了涉及到版本兼容性的问题外,同时,遗憾的是目前的.NETAPI版本还不支持卸载,若要卸载只能关闭ACAD。
Autodesk提供的众多二次开发手段往往会把新手搞糊涂,开发中到底使用什么语言,应根据本身所熟悉的ACAD的版本,以及所熟悉的开发环境,另外,企业规模、资金,也是考虑的关键。总之,众多二次开发工具让各类开发者都能找到适合于自己的开发工具。
参考文献:《AutoLISP机械设计高级应用实例》 胡仁喜 胡星 史青录等编著
[关健词] 加解密 电子商务 VB
网上购物等电子商务活动在今天已十分普及与方便,虽然随着网络技术的不断发展,各种安全机制、策略和工具不断被研究和应用,但Internet的开放性,以及其他方面因素导致网络环境下的计算机系统仍存在很多安全问题。电子商务中的信息安全始终是一个核心问题,因此,在客观上需要一种强有力的安全措施来保护机密数据。密码技术是保护网络安全最有效的技术之一,采取了加密保护措施的网络,可以防止非授权用户的窃听和非法入网,而且也是对付恶意软件的有效方法之一。
一、简易数据加解密算法
加密是通过对信息的重新组合,使得只有收发双方才能解码并还原信息的一种手段,这种手段的原理及应用是本论文研究的重点,基于VB实现DES和RSA等一般的加解密算法过于复杂,且运算速度慢,特别是它的移位操作,因此,研究简易数据加解密算法在电子商务数据保密方面具有相当的现实意义。从加密的主要方法看,换位法过于简单,特别是对于数据量少的情况很容易由密文猜出明文,则简易加解密算法采用替换法对数据进行快速加密,而且加密后的数据能正确地得到解密,当然关键是像VB这样的高级语言能容易实现。
从各种位运算的特点看,异或运算最适合用于简易加解密运算,因为当数1和数2进行异或运算生成数3,若再将数3和数2进行异或运算则又会还原为数1。例如将234和124进行异或运算的结果是150,再将150和124进行异或运算则结果又还原成234。其中234是要进行加密的数据,124则可看成是密钥,因此运用此特性可以将简易数据加解密算法用函数实现。当用同一密钥对某数据进行奇数次异或运算时,是对该数据进行加密运算,当进行了偶数次异或运算时则是进行解密运算。
首先,VB下的字符集采用Unicode字符集,它容量大,可置换的范围广;其次,在Unicode字符集中,所有字符的内码都占两个字节,不再象DOS下西文字符占一个字节,中文字符占两个字节,这样中、西文就都可以互换了。因此,对Unicode字符运算需要两个密钥,其取值范围为0至255,这样对同一字符的加密就有255×255=65025种可能,如果更换密钥后对密文再进行加密,则会有无穷的可能性。其中一个密钥用于对高字节加密,另一个密钥用于对低字节进行加密,则可将某个字符的高字节和低字节分别加以运算,然后再将它们合成为另一个字符,从而置换原数据达到数据加密的作用,解密时则相反。
二、数据加解密界面设计
根据设计要求,首先启动VB6.0应用程序,新建一个标准EXE工程,系统将会自动创建一个名为Form1的窗体,可在该窗体上添加2个文本框控件用来显示加密数据与解密数据和2个命令按钮控件;其中,可通过属性窗口将Form1窗体的Caption属性值设置为“简易数据加解密”、2个文本框控件的Text属性值都设置为“空”、命令按钮1控件的Caption属性值设置为“加 密”、命令按钮2控件的属性值设置为“解 密”,其界面设计如图1所示。
三、数据加解密代码实现
在代码窗口中的“通用”部分定义几个变量,本程序设计需编写加解密函数Encrypt[5]及对Command1和Command2的Click事件进行编程,其程序清单如下:
Dim s As String
Dim d As String
Dim k1 As Byte
Dim k2 As Byte
Private Function Encrypt(ByVal strSource As String, ByVal Key1 As Byte, ByVal Key2 As Integer) As String
Dim bLowData As Byte
Dim bHigData As Byte
Dim i As Integer
Dim strEncrypt As String
Dim strChar As String
For i = 1 To Len(strSource)
strChar = Mid(strSource, i, 1)
bLowData = AscB(MidB(strChar, 1, 1)) Xor Key1
bHigData = AscB(MidB(strChar, 2, 1)) Xor Key2
strEncrypt = strEncrypt & ChrB(bLowData) & ChrB(bHigData)
Next
Encrypt = strEncrypt
End Function
Private Sub Command1_Click()
k1 = 128
k2 = 24
s = Encrypt(Text1.Text, k1, k2)
Text2.Text = s
Text1.Text = “”
End Sub
Private Sub Command2_Click()
d = Encrypt(s, k1, k2)
Text1.Text = d
Text2.Text = “”
End Sub
保存该工程并运行,则在文本框1中输入待加密字符,单击其“加 密”命令按钮则已加密字符显示在文本框2中,当然可单击“解 密”命令按钮进行字符的解密,其运行界面如图2所示,至此对数据的简易加解密就实现了。
四、结束语
密码分析成为了解决信息安全问题的关键技术,本设计采用面向对象程序设计方法进行开发,让用户体验了VB强大的编程能力在电子商务中数据安全性的简单应用。以上程序只是从原理上分析后给出的实例,在实际运用当中应从字符密钥中分别求出Key1和Key2,然后将加密后的数据再更换Key1和Key2反复进行多次加密运算,并结合换位法实现更大难度的加解密算法,保证电子商务中数据的安全与有效性。
参考文献:
[1]祁明:电子商务安全与保密[M].北京:高等教育出版社,2001
[2]William stallings.密码编码学与网络安全[M].北京:电子工业出版社,2004
[3]赵泉:网络安全与电子商务[M].北京:清华大学出版社,2005
测量程序设计是测绘工程专业的一门必修课程,其目的是让学生熟练地掌握一门编程语言并且能够进行测量程序设计。文中针对该课程课堂教学和实验中存在的问题,提出了部分教学改革建议,分析了教学改革建议的优点,希望通过教学改革,提高学生的学习兴趣,使教学效果有明显的改变。
关键词:
测绘工程;测量程序设计;教学改革
测绘工程专业的毕业生直接或间接地参与了测量程序的设计工作,此外,从企业角度来看,也非常需要具有良好的编程能力同时具备完整的测绘理论的专业人才,学生的就业前景是非常广阔的。作为人才的培养基地,高等学校应该保证一定数量的这类人才的供应。因此,开设测量程序设计课程是必须并且是非常重要的,该课程的培养目标是使得学生能够精通某一门编程语言,能够利用编程语言熟练地进行测量算法的设计和程序的编写。文献[1-2]对测绘工程专业的测量程序设计课程教学中的问题进行了分析,提出了许多宝贵的意见和建议,如提高同学们的学习兴趣、增强与学生的互动等。此外,还有部分文献对测绘工程专业中的其它课程的教学改革提出了建议,对课程建设进行了大胆有益的尝试[3-8]。本文针对该课程的教学过程中出现的问题,提出了若干教学改革的建议,希望能够通过教学改革,改变传统的课堂教学形式和课程考试的评价方式,充分调动学生的学习兴趣,提高教学效果。
1教学现状和存在的问题
1.1教学现状
本课程的教学分为理论教学和实践教学两部分,其中理论教学以课堂讲授理论知识为主,实践教学以实验室上机实验为主。在测绘专业的教学和学习过程中,关于测量程序设计的文献资料可以分为三个方面:(1)以C语言为开发语言,对测量程序进行设计和编写代码;(2)以VB语言为开发语言,利用可视化编程方法进行用户界面设计和程序编写;(3)以Matlab语言为开发语言,进行测量程序设计。C语言是一种开放式编程语言,在大学阶段本科生的培养中,主要是以C语言为编程环境进行程序设计的,因此,利用C语言进行测量程序设计和代码编写具有一定的优势。VB语言是建立在可视化编程环境的基础上的,在掌握了VB程序设计的基本方法后,就可以将测量程序进行编程实现,并且用可视化界面进行良好的人机交互,能够为使用者提供更好的体验效果。近年来,有部分高校采用基于Matlab语言的测量程序设计教学。由于Matlab编程语言是针对于矩阵运算进行编写的,在编程环境中可以不用预先定义变量的类型和变量,就可以直接对变量进行赋值后使用。对矩阵的各种运算也是使Matlab语言区别于其它高级编程语言的一个特别之处,此外Matlab编程语言容易学习和应用,只要具备部分的编程知识就可以在较短时间内掌握这门编程语言。基于Matlab语言的测量程序设计可以使学生不局限于对矩阵的读取、矩阵文件的保存和导入、矩阵的运算等比较初级的算法设计,能够将更多的时间和精力投入到测量程序设计和代码编写中。根据上面的分析,可以看出,随着时代的发展和进步,使得我们有更多更好的编程环境来实现测量程序设计。对比三种编程语言的特点,我们认为选取VB或者Matlab语言作为测量程序设计的编程环境是合适的。如果条件允许的话,可以为采用C#语言作为编程语言,能够使同学们在学好测量程序设计方法的同时,更加深入地理解和掌握C#语言的应用和程序设计方法。
1.2存在的问题
存在的问题主要表现为下面的几个方面:
(1)课堂理论教学模式呆板僵化。由于测量程序设计课程是利用某一种编程语言对已有的经典平差算法和近代平差算法进行编程实现,所需要讲授的理论知识就是编程语言的学习,而在课堂教学中,多数的学校仍然是教师利用多媒体在讲台上讲述编程语言,然后进行演示,让学生通过记笔记的方法来理解和掌握编程语言。这样的教学模式仍然沿用了其它课程的教学模式,对于绝大多数的理论教学来说是非常有效的,但是,在学习一门编程语言时采用这样的教学手段,效果并不好。通过实践环节可以看出,对于已经讲解过的编程方法,部分同学自己仍不能完全掌握,甚至不知道该方面的知识点已经讲解过,有的同学在学习完该课程后仍不能独立地写出一个测量程序的代码,这些现象的出现与课堂理论教学是有密不可分的关系的。
(2)实验教学和对学生评价的指标问题。实验教学是让学生进行一定时间的上机实验,掌握所学的编程语言,然后结合已有的经典测量平差算法和近现代的测量平差理论和算法,进行程序代码的编写。每次实验都有一个确定的实验目标,但多数是有始无终,如何对该次实验的效果和学生是否真正掌握该部分的内容进行评价是需要考虑的问题之一,如果某一方面的知识没有掌握,而下次实验又要进行其它项目的训练,积累下来就会形成夹生饭,最终导致学生对该课程内容不能掌握,教学效果较差。相应的另一个问题就是如何对该课程进行总体评价,进行理论考试的方法显然是不能够反映同学们是否对该课程真正掌握,采用何种方法进行有效地评价教学效果是必须解决的问题。
2关于教学改革的思考
2.1课堂理论教学的改革
课堂教学是传授理论知识的一个重要教学环节,但是对于编程语言的教学,如果还是停留在教师在讲台上利用多媒体进行讲授而学生记笔记的阶段,这样的教学效果是较差的。可以对该课程的课堂理论教学手段进行改革,摒弃传统的教学方法,改以在实验室或机房进行课堂教学,每个同学都能够有一台微机可以进行操作,教师利用多媒体在讲解编程语言和算法的同时,在微机上进行演示,安排同学们进行同步操作,在讲解完一个知识点后让同学们进行举一反三地练习。这样的教学手段的优点是非常明显的,首先,可以让教师从繁重的幻灯片制作工作中摆脱出来,只是提纲挈领式地对所讲授的内容进行幻灯片制作即可,从而能够将更多的精力投入到算法设计和程序代码的编写过程中。其次,避免知识遗忘,实时操作练习,可以使学生通过感性认识真正掌握所学知识。任何知识的学习都有一个记忆-遗忘-重复记忆的过程,像编程语言的学习,如果没有感性的认识而是记住很多的知识点的方法是不可取的,如果能在学习某一个知识点的同时能够感同身受地接触到这个知识,这种记忆无疑是最为深刻的。再次,课堂教学气氛较好,能够最大程度上提高同学的学习兴趣。传统的课堂教学中通常有部分同学因为感觉理论教学枯燥乏味,学习中毫无兴趣可言,从而逐渐放弃了对课程的学习。采用实验室或机房作为课堂教学环境,让每个同学都有动手的机会,就可以让他们在理解所学知识的同时,自己动手实现一定的功能或算法,从而具有一定的成就感,改变了那种学习枯燥无味的看法,进而自己能够主动地去学习一些新的知识。最后,这种教学手段的改变可以充分利用教学资源,提高设备的利用率。近年来,各个高校对教学硬件环境的投入逐渐增加,设备的性能逐步提高,但是,设备的使用率往往偏低。如果将该课程的课堂教学改为在机房进行就可以充分发挥教学资源的作用,使教学设备以最大的效率为高校的人才培养工作服务。
2.2实验教学和对学生进行评价的指标的改革
针对实验教学中实验效果的评价问题,可以做如下改革:在每次实验前安排具体的实验任务和所达到的目标,在实验课结束后每人提交一份电子的实验结论和程序代码,时间允许可以让同学们逐个进行演示,以考核实验效果。这种形式的实验教学评价方法具有下面两个方面的优点:一方面,每次实验课都要进行评价,可以给同学们施加一定的学习压力,从而转化为积极学习的动力。这种优点是显而易见的,每次实验课后都要进行评价使得同学们必须以认真的态度对待该课程的学习,如果没有真正理解所学的编程语言的知识点而使得程序不能够正确运行,会使教师对该同学的评价降低。另一方面,采用每次实验课都要进行学习效果评价的方法有助于给出对该课程学生学习效果的最终评价结果。对每次实验课的评价指标进行记录,将评价结果纳入最终的课程评价中,从而能够比较客观真实地反映学生的学习情况和对该课程的掌握情况。在课程结束后的评价阶段,除了考虑到每次实验课的评价之外,还可以安排较为复杂、繁重的综合编程任务,让同学按时独立完成,如水准网算法的图形用户界面设计与实现。最后需要提交一份综合实习报告以及程序原代码,实习报告内容包括实验目的、算法设计与分析、实际问题的解决等,让每个同学演示其程序。这种课程评价方法的改革不同于传统的考试或学术论文的呆板形式,以更加灵活的方式、更加细致的指标来实现对学生掌握知识情况的评价,在给同学们施加学习压力的同时,能够真正的让同学们掌握所学知识,并且能够给出一个非常客观实际的评价结果。
3结语
本文中,针对测量程序设计课程教学中出现的问题进行了讨论,分析了存在的问题,认为影响该课程教学效果的主要原因有两个方面,即课堂理论教学的形式、实验教学和对学生评价的指标问题。课堂理论教学是传授知识的主要场所,不同的课程应该采用不同的教学场所或教学手段。传统的课堂理论教学方法适用于数学类型的课程,需要对公式和定理进行认真仔细的推导和证明。但是,对于编程语言的学习,这样的教学形式的效果是非常差的,学生在学习过程中会逐渐感到学习枯燥乏味,学习兴趣不高,课堂气氛沉闷。如果改在机房或实验室内进行编程语言的学习,就可以避免上述问题的出现,能够充分调动每个同学的感官来加深对知识的理解和掌握,通过自己动手来加深对知识的感性认识,算法的顺利执行可以极大地增强同学的成就感,增强学习的自信心。每次实验课都进行质量评价的方法可以给同学们施加学习的压力,增强学生学习的主动性和积极性,能够认真地对待每一次的实验课。另外,将每次实验课的评价结果纳入最终的评价分数,也增强了评价结果的客观性和真实性。最终的课程评价中,采用实习报告和编程相结合的方式,可以使同学们在认真总结所学编程语言的基础上,完成一个较为复杂的测量程序的编写工作,能够在最大程度上调动同学们学习兴趣。本文所提出的测量程序教学改革方法也同样适用于其它的编程语言类课程和软件教学类课程的学习,如C?、数据库、GIS软件等。
作者:丁海勇 孙景领 单位:南京信息工程大学地理与遥感学院
参考文献:
[1]吴迪.测绘程序设计教学中的体会[J].山西建筑,2008,34(25):224-225.
[2]朱红侠,罗强.测绘程序设计教学探讨[J].科学创新导报,2008(32):144.
[3]潘庆林,冯宝红,郑国才.测绘工程专业“地籍测量学”课程教学改革的思考[J].测绘工程,2006,15(4):77-78.
[4]高伟,齐建国.基于测绘新技术的农业院校测量学教学改革的探讨[J].测绘工程,2004,13(3):75-78.
[5]吉长东,徐爱功.基于“卓工计划”的测绘工程专业实践教学改革[J].矿山测量,2015,43(1):86-88.
[6]鲁铁定,臧德彦,官云兰.适应“数字江西”建设德测绘教学改革探讨[J].江西测绘,2008,73(2):44-46.
[7]曾涛,杨武年,余代俊,等.新时期测绘工程专业《摄影测量学》课程教学改革实践[J].测绘科学,2009,34(3):237-239.
[8]高颖.道桥专业《工程测量》教学改革的探讨[J].矿山测量,2015,43(3):110-113.
2.《成绩管理系统》设计(用C语言实现)
3.软件设计:超级商场进销存管理系统(可选:基于WEB网络版、基于COM+网络版、S/C网络版)
4.VB专题网站的建设
5.《信息技术教育》多媒体教学课件制作
6.《数据结构》多媒体教学课件制作
7.供电部门用电计费系统的设计
8.计算机房管理系统的设计
9.网上教学辅助系统的设计与实现
10.浅谈试卷智能生成系统的开发
11.多媒体教学课件制作
课题简介:多媒体技术的应用,促进了现代教育教学技术的发展。利用多媒体课件及现代教学手段进行教学,事半功倍。本课题拟将某知识领域的教学内容制作成教学课件,通过比较传统教学与多媒体教学两种不同模式的教学效果,探索多媒体教学模式的特点及发展方向。课题预期成果为论文及软件形式的教学课件。选用开发软件可为PowerPointXP或AuthorWare等。
课题二:数据库管理系统
课题简介:数据库技术是计算机应用的一个重要领域。利用数据库技术开发的应用(管理)系统,在各行各业都有着广泛应用。本课题拟对某一应用系统(如收费管理、教材管理、人事管理等)进行市场调节及需求分析,利用数据库技术开发相应应用管理系统,并通过用户反馈,加以完善。选用开发软件可以是VB,VFP等。
12.旅游酒店订单管理系统
本程序可以对酒店,酒店房间进行编辑,查询,统计。订单管理模块可以统计客户订单,订单查询,订单打印。
13.网吧管理、计费
本系统可以对网吧,公司内部网进行管理。管理计算机,用户上机时间、内容,计时计费,饮料等管理。分服务器端和客户端软件。
14.非税收入资金结算系统
本系统包括科目录入、历史余额录入、一级项目维护、核算支出项目、明细项目维护、明细项目取消、单位项目挂接、收费依据维护、资金管理方式维护、行业子行业维护、帐薄设置、核算公式设置、原始凭证类型维护、收入报表定义、收入解缴报表定义、缴款书录入、缴款书审核、缴款书打印、缴款书传出、收费数据接收、收费数据传出、缴款书接收、单位对帐。收费明细表
15.商场管理系统
本系统是个大型商场管理系统,具有进货、库存、销售、结算、物价、合同等功能
16.智力竞赛抢答计分系统的设计与实现
17.学校自动广播打铃系统的设计与实现
18.学英语智力游戏开发
19.单片机应用开发
20.OfficeVBA应用与开发
21.xx科目教学特点及课件开发
22.xx学校网站的规划与制作
23.全Flash网站制作
关键词:计算机监控;仿真软件;综合实践;教学模式
中图分类号:G642 文献标识码:B
文章编号:1672-5913 (2007) 20-0077-04
1引言
目前,我国计算机专业的教学模式主要还是从基础理论到专业理论,实践环节较少,这就导致了学生厌学,眼高手低,本科毕业连基本的编程技能都不具备,从而,在就业市场上一败涂地。这些效果又使在校学生更加沮丧,进一步影响其学习的积极性。中国要发展IT产业,必须改革计算机专业的教学模式。
印度是一个贫穷落后的发展中国家,软件业的成就却举世瞩目。印度的软件人才主要是通过职业教育而不是高等教育来培养的,从而大大降低了培养成本和使用成本,缩短了培养周期。其教学不是按从基础理论到专业理论,再到实习的路径,而是把顺序颠倒过来,先从做开始,在做的过程中,学生如遇到问题,再以此问题为基点去学习专业理论。学员一入学,便要做项目,培训中心把所承接的大项目分解成一个个小项目,然后要求每个学员完成一个小项目,让学员在完成项目的过程中学习。培训中心的学员最后一年都在公司实习,积累工作经验,同时也给企业提供深入了解雇员的机会。
我们借鉴印度发展软件业的成功经验,结合多年从事计算机监控的项目经验和从事教学的心得体会,提出一种“趣味实用程序的演示+知识点+趣味实用程序的模仿+综合训练+学术论文”的教学模式[1],引导学生充满兴趣地钻研技术,最后逐渐成为计算机监控方面的专家,并熟练掌握计算机专业的基础理论与编程语言。
2计算机监控技术的特点与主要技术
计算机监控系统是以监测控制计算机为主体,加上检测装置、执行机构与被监测控制的对象共同构成的整体。在这个系统中,计算机直接参与被监控对象的检测、监督和控制。检测主要是通过传感器和相应的输入模块来取得被监控对象的状态数据,监督主要是对状态数据进行分析后给操作员提供手动操作的参考,控制则是手动或按照一定的策略自动地对被监控对象执行相应的操作。
传统的检测与控制所使用的模块一般采用RS-232接口,因为该接口简单可靠。随着网络技术的发展,采用网络接口RJ-45的模块逐渐增多。监控用的计算机一般称为主控机(或上位机),各种检测与控制模块或嵌入式系统一般称为受控机(或下位机)。主控机软件一般采用高级语言(如Visual Basic 6.0,简称VB)进行开发;受控机软件没有软件界面,仅实现相关的逻辑功能,一般采用C语言、汇编语言等进行开发,通过调试后,再下载到受控机系统中。主控机通过RS-232/RJ-45接口与受控机通信,进行数据的查询与命令的发送。各种控制策略、设备的状态等的保存,都需要使用数据库技术。因而,实现一个计算机监控系统,需要综合使用诸多计算机的基础理论与编程语言:计算机接口技术、计算机网络、数据库系统、VB与C语言等,利用计算机监控技术作为计算机专业实践训练的主线,具有很高的操作性和极大的意义。
3仿真软件的设计
学习计算机监控技术,需要购买相应的硬件模块,从而在一定程度上制约了该技术的推广。本文提出了一个基于RS-232的仿真模块的可视化模型,在此基础之上设计了可视化的仿真数字I/O模块,模拟量输入模块,并设计了对应的通信协议。主控软件与仿真模块之间的通信通过虚拟串口实现,从而,达到在计算机房零成本搭建计算机监控系统平台的效果。
RS-232/RJ-45协议转换器可以用于实现计算机监控系统的远程处理,也可以用于将普通的输入模块转换为仿真的网络传感器。
3.1仿真模块的可视化模型
基于RS-232接口的仿真模块的可视化模型如图1所示。模块表示区用来模拟实际的模块,对于数字量输入模块(Digital Input Module,DIM),输入开关根据设定的时间随机闭合/打开,并通过图形表示;对于数字量输出模块(Digital Output Module,DOM),用有源电路回路表示输出开关的状态,例如,开关闭合,播放铃声或灯亮等;对于模拟量输入模块(Analog Input Module,AIM),用图形表示检测回路,并在检测点旁边显示温度的原始数据。每个模块都设置数据接收和发送指示灯,显示数据收发的状态。
功能按钮区为系统设置按钮和关闭程序按钮。系统设置主要完成串行通信的端口号、波特率、校验码、结尾码、模块地址等的设置,对于DIM模块,还需要设置随机切换输入开关所需要的时间段。
协议描述区显示本仿真模块适用的通信协议,包括协议的格式及其具体的含义。
数据接收区显示接收到的主控程序发送的原始数据包,以字节形式显示;数据响应区则发送对应的响应数据包,也是以字节形式。
利用此可视化模型设计的软件界面,使用方便,动态效果好,仿真模块的开关状态、温度数据、数据收发状态以及传输的数据均一目了然。与实物模块相比,不需要物理连线,也不需要信号发生器与万用表来产生信号和测量状态与数据,对于通信协议,也不需翻阅手册。
3.2通信协议的设计
相同类型(或厂家)的模块一般采用相同的前导字符,EOT是一个特殊的ASCII字符(0x04),常被用做控制字符,这里的仿真模块全部采用EOT作为前导字符。
计算机所连接的I/O模块比较多,CPU为了与连接的设备相互沟通,必须给设备设置一个编号,从而使CPU可以通过每个设备独一无二的编号与不同的设备进行沟通,这个设备编号就是地址,用ADD表示,地址占用一个字节。
功能码主要包括读功能码(用RD表示)和写功能码(用WD表示)。RD用字符“R”(0x52)表示,WD用字符“W”(0x57)表示。
BCC为数据块校验码,一般有Xor、Add、CRC、CheckSum几种。Xor与Add分别是异或与累加和,占一个字节的长度;CRC与CheckSum分别是循环冗余校验码与TCP/IP协议簇中所使用的累加求补校验码,分别占两个字节。这里的仿真模块提供4种数据块校验方式,根据程序设置进行选择。
不少模块以回车CR(0x0d)作为结尾标志EM(End Message),而TCP/IP协议簇(如HTTP,POP3等)较多地采用CRLF(0x0d0a)作为结尾标志,这里的仿真模块也提供这两种结尾标志,根据程序设置进行选择。
协议举例。读取仿真模块状态的命令协议如图2所示,其中,ADD的范围为1至255,可由程序进行设置,这样,一台主控设备可以连接多达255个虚拟模块。BCC和EM的种类也可以根据需要由程序进行设置。
3.3RS-232/RJ-45协议转换器
该协议转换器的主要功能是用软件转换器来替代硬件转换器,实现串口数据与网口数据的直接转发,不涉及到协议的变换。串口只要进行常规的设置,与所连接设备的串口参数一致。由于主控机与嵌入式模块之间一般采用串口进行连接,另外,数据采集模块也大部分采用串口,因而,通过该协议转换器,可以将此类串口设备连接到Internet,进行远程处理。AIM模块与该协议转换器配合,可以转换为一个开关量输入的网络传感器。
3.4虚拟串口的使用
除了跟内置的Modem通信,一般地,进行串行通信的调试都需要RS-232连接线。参考文献[2]提供了虚拟串口驱动程序,模拟实际的RS-232接口,可以在没有物理RS-232接口和电缆的情况下,进行串行通信的调试,并且,还可以模拟硬件引脚信号的变化。
4教学模式的具体实现
重视教材建设和教学方法的研究,在教学过程中重视由实践而激发学生对相关理论的兴趣,再用提高了的理论水平来指导新的实验和实践活动。传统的教学模式在实践环节上的缺乏与不足也与今天社会人才市场急功近利的需求远远不能相适应。长期以来,我们培养的学生存在着“什么都学过,却什么都不会”的尴尬局面,专业教育和教材与市场需求严重脱节。事实上,学生就业难并不是就业市场不需要人才,其根源还是教学的现状所致[3]。
本文采用“趣味实用程序的演示+知识点+趣味实用程序的模仿+综合训练+学术论文”的教学模式,在讲解新的课程的时候,首先演示程序,例如,用主控程序对仿真数字I/O模块进行监控,让学生观察输入开关量的变化,可以导致输出开关量的变化,并可以看到指示灯的亮与灭,听到电铃的响与停,通过实物激发学生的兴趣,为学生树立一个目标:要实现该系统,需要掌握哪些技术?从而引出本课程中涉及的主要相关技术。
4.1C语言和汇编语言的应用
C语言是许多高校为计算机专业学生设置的第一门计算机程序设计语言。学习一门语言,不是学习其语法,而是要学习利用该语言去解决问题的方法,从而培养相关的能力。通信是计算机监控系统的关键技术,为了确保数据传输的可靠性,制订了通信协议,引入了校验码与结尾码,如果收到的数据,其头字节、校验码或结尾码错误,一般不进一步处理,而是直接丢弃该数据。
可以利用C语言设计异或校验码的生成程序,即对给定的一批字节,计算其异或校验码;对于含异或校验码的一批字节,编写子程序检查是否正确。同理,可以编写其它校验码处理程序。在此基础之上,进一步讲解在一个C语言项目中集成子程序的方法。如果学生掌握了这些方法,就基本掌握了用C语言开发受控机软件的80%以上的技术。
汇编语言是符号化了的面向机器的语言,比较枯燥。可以用汇编语言来生成校验码与检查数据是否正确,通过调试,让学生明确各个寄存器的作用。在字节处理方面,可以用0表示开关打开,1表示开关闭合,在置位和复位某位时,不能影响其它位的值。
4.2计算机接口技术的应用
在计算机接口中讲解“串行通信技术”时,首先演示一个“支持来电显示的多账号拨号器”,可以让学生一键拨号──201卡与IP卡及所拨打的长途电话,只要一键即可完成,还支持来电显示。通过演示,激发学生的学习兴趣,让学习成为其需要;然后,讲解知识点,让学生模仿软件的开发。
可以通过汇编语言设置串口参数,对串口进行初始化,然后,发送字节数据,控制仿真模块的输出开关,通过声光效果观察程序运行的结果,这比观察单纯的数据变化要形象直观,对学生更有吸引力。
4.3计算机网络的应用
在C语言、汇编语言,以及计算机接口技术中都涉及到字节数据流,这就是协议及主控机与受控机之间的约定。通过串行通信协议,可以自然过渡到TCP/IP协议,加深学生对协议的理解。
在网络编程方面,可以演示一个充当客户机的POP3密码攻击程序,让学生在增强信息安全意识的同时,学习基于Socket的客户机与服务器程序的设计。3.3节中的协议转换器,就是通过客户机/服务器编程,实现网络数据与串行通信数据的无缝转换。这个协议转换器虽然功能简单,代码简单,但是,作用非常大,可以用来对计算机监控系统进行远程调试与维护。
4.4VB与数据库的应用
有了仿真模块,就可以采用VB开发主控程序。VB是一门快速语言,采用VB编程,学生可以很快入门,有利于增强学生学习编程的自信心。VB可以很方便地设计各种表单界面,通过MSComm32控件和Winsock控件,实现串行通信和网络通信,从而与受控机或模块建立通信,完成查询和控制功能。VB也可以很方便地调用数据库,用数据库来存储控制策略、通信协议及设备的状态数据、报警记录等,对数据库进行各种操作。通过主控程序的开发,可以提高对计算机接口技术、计算机网络技术与数据库的感性认识,从而加深理论方面的理解。
5结束语
计算机监控系统广泛应用于众多领域。本文提出了“趣味实用程序的演示+知识点+趣味实用程序的模仿+综合训练+学术论文”的教学模式,通过程序演示,提高学生的学习兴趣,为学生树立一个学习目标,然后,讲解知识点,让学生模仿相应的程序,再进行综合训练。同样是学习相同的课程,但是我们在其中融入了计算机监控技术,设计了仿真模块,可以在计算机房零成本搭建计算机监控系统平台,通过我们的教学,学生毕业后,可以直接作为项目负责人或技术骨干参加计算机监控系统项目的开发。进行深入学习后,学生也可以发表计算机监控方面的学术论文。
目前,我校已经开设了“计算机监控技术与系统开发”课程,实践表明,该课程的开设,将计算机专业的若干专业平台课有机地融合到一起,对提高学生的学习兴趣,加强技能的培养,加深对理论的理解,提高就业率具有重要意义。
参考文献
[1] 马玉春. 计算机监控技术与系统开发[M]. 北京:清华大学出版社,2007.
[2] Virtual Serial Port[EB/OL]. /products /vspdxp/,2007-7.
[3] 周苏,王文. 软件工程实验教学的设计与创新[J]. 计算机教育,2006,(10).
作者简介
马玉春(1969-),男(汉族),江苏南京人,博士,东北大学秦皇岛分校计算机工程系教学主任。
E-mail:
联系方式:东北大学秦皇岛分校计算机工程系,邮编066004
办公:0335-8047939
1.1专业实验课程
除了公共课实验及实践内容如计算机文化基础、体育、毕业见习实习、毕业设计或论文等外,各院校确定的现代教育技术专业的实验课与实践内容。
1.2实验课的比重
各院校确定的现代教育技术专业的实验课共计100门,占整个课程的65%,即有65%的课程设置了相应的实验,但各院校不尽一致。大部分院校现代教育技术专业含有实验的课程中理论讲授学时所占比重较大,而实验学时较少,只有武威职业学院和郧阳师专的培养方案中实验学时超过了理论讲授学时;相对于整个专业的总学时,含有实验的课程学时(理论讲授学时+实验学时)所占比重较小,即大部分院校现代教育技术专业课程大部分还是理论讲授为主。
1.3实验课程类型
从上述各院校确定的现代教育技术专业实验课程,作者将其分为以下几类:基础类试验、视听类实验、计算机类实验、教育技术类实验。各院校确定的现代教育技术专业实验课程共计100门,但从表2可以看出,所有实验课程计算机类实验课程比例超多了50%,有些计算机专业不开设的课程现代教育技术专业开设,有些课程重复开设(如编程课程就有8门:C程序设计、VB程序设计、ASP编程、PHP编程、JSP编程、面向对象的程序设计(JAVA技术)、高级语言程序设计、Vb-script);而真正属于教育技术类实验并不成熟,像教育传播学、现代教育技术理论、学与教的基本原理等课程本来是纯将理论基础的课程,偏偏加上了实验学时。
2现代教育技术专业实验课程存在的问题
2.1“失重”的实验课程
无论是作者所调查的全国部分院校现代教育技术专业,还是通讯作者所在的学校———甘肃民族师范学院现代教育技术专业,它们的实验课程可以用“失重”来形容,这种“失重”现象体现在两个方面:一是相对于理论课程来说,实验课程比重较小,并且大多依附于理论课程;二是从实验课程类型、实践内容来看,计算机类实验课程明显偏多,真正属于教育技术类的实验并不成熟。根据教育部对高职高专教育人才培养工作的意见,“实践教学的主要目的是培养学生的技术应用能力,并在教学计划中占有较大比重”、“实践教学要改变过分依附理论教学的状况,探索建立相对独立的实践教学体系”,现代教育技术专业的实验课程体系的改革,特别是实验课程教材的建设势在必行。
2.2“依附”、“演示”的实践教学
在作者所调查的全国部分院校现代教育技术专业的课程体系中,相对于整个专业的总学时,含有实验的课程学时(理论讲授学时+实验学时)所占比重较小,大部分院校现代教育技术专业课程大部分还是理论讲授为主。在甘肃民族师范学院进行实地调研时,作者发现,由于专业教学人员缺乏、设备及实验室面积较小等诸多原因,只能开展一些设备操作、演示的项目,真正综合的实验项目无法开展,所以实践教学效果较差。从所有课程设置的实验项目中可以看出,大部分都是设备使用项目,学生学完这些项目之后很少安排进一步进行综合运用、教学应用的实验项目,个别设置了的课程恰恰又没有开设,以《教育电声系统》为例,该课程实验开出率为80%,实际开出的实习项目是“话筒、录音卡座、数码录音笔等电声器件的操作使用;调音台构造及操作使用;声音素材采录;录音节目的编制”等设备操作、演示型的项目,该课程设置了“利用语言学习系统进行教学”的项目,通过对该课程任课老师的访谈发现:全校有一套语言学习系统在外语系,现代教育技术专业所在系没有电声系统相关设备,该实验项目并没有开展。
3现代教育技术专业实验实践课程设计
3.1设计原则
3.1.1丰富的实践教学体系
培养学生的学生动手操作能力、技术应用能力,不能单靠实验实训课程,所以必须丰富现代教育技术的实践教学体系,包括实验课程体系、校内外实训体系、分散见习与集中实习体系等,形成了完整的培养体系。
3.1.2“依附”“独立”并存,分方向设置的实验实践课程体系
与以往实验课程比重较小、实验课程依附于理论课程的情况相比,作者提出“依附”“独立”并存,分方向设置的实验实践课程体系的设想,即个别演示型实验依附于理论课程外,需要学生亲自动手的实验均安排为独立的实验课程,并且除公共性质的实验实践课程如实习、计算机基础上机实验外,专业实验实践课程除基础实验外,按不同的专业方向单独设置。上述实验实践课程体系,使得实践教学在教学计划中占有较大比重,形成了基本实践能力与操作技能、专业技术应用能力与专业技能、综合实践能力与综合技能有机结合的实践教学体系,有利于及时吸收科学技术和社会发展的最新成果,有利于培养实用型、应用型专门人才。
3.2实验实践课程设计
现代教育技术专业的实验实践课程除个别演示型实验依附于理论课程外,需要学生亲自动手的实验均安排为独立的实验课程,整个课程体系可分公共实验实践课程、专业实验实践课程和见习实习等模块,不包含公共选修课中含有的实验实践课程。
3.2.1公共实验实践课程主要包括信息技术实验、大学体育、军事训练等。
3.2.2专业实验实践课程
1制定合理的编程类实践课程教学计划
实践教学大纲是实践课程开设质量的重要保证,同时,实践教学计划是整个教学计划的重要组成部分。在制定实践教学计划时,要充分考虑自己学校的特色、学生的实际情况和社会实际需求,以《中国计算机科学与技术学科教程2002(CCC2002)》和《高等学校计算机科学与技术专业实践教学体系与规范》等为指导,以对所培养学生的目标定位为归宿,制定和不断修订实践教学计划。制定系列化的编程类课程体系和编程类课程群[1-2],以Java程序设计实践课程的开设为例,可以分阶段开设,按完整的Java技术路线组织,如在低年级开设“JavaSE程序设计和应用”课程及其实践课程,在较高年级开设“JavaEE程序设计和应用”和“JavaME程序设计和应用”课程及其实践课程。这样,可以有效避免学生在学习了一门编程语言基础后,出现继续深入的困难和技术“断线”现象,如只学完了JavaSE部分的知识,不知道进一步的Java学习方向等[3]。目前,大多数院校开设的程序设计类课程是以专业选修课程的形式进行的,因此,指导学生有针对性地进行选课非常重要,如:学生选修了“Java程序设计”的先修课,在高年级时可以建议其去选修“JavaWeb编程”课程;若学生选修了“VB程序设计”的先修课,在高年级时可以建议其去选修“ASP(ASP.net)Web编程”课程等。在选课系统中增设关于每门课程的内容简介和授课教师的介绍,这样做有以下好处:一是在课程名称字面上就可以看出授课的重点,可以回避学生从一个笼统的“XX程序设计”名称上产生误会,认为这门课可以将该编程语言的所有技术都包含进去;二是通过课程内容简介,让学生更加透明地了解每门不同程序设计课程的授课重点,从而根据自己的知识需求和兴趣有目的地选择课程。所有代程序设计课程的教师共同参与,集思广益地制定实践教学计划。这样做,一方面可以保证实践教学计划的完整和系统,避免低层次的重复和课程冲突;另一方面,可以让教师从更高高度把握实践教学规划,而不仅是只关注自己所教授的那门编程课程。将实践教学系统地规划到理论教学、实验课、课程设计、学年和毕业设计以及创新实践等各个不同阶段和各部分中,逐步落实,如图1所示。
2以实际问题为出发点,以社会需求为归宿
为了切实培养学生发现问题、解决问题、实际动手、交流和表达、持续学习、适应和协调、组织能力等综合能力[4],需要从以下几个方面入手。
2.1实践项目的设计应以实际应用为背景
任何的应用和创新都是源于现实的需求,再小的实践项目,都需要有调研与需求分析过程。引导学生在编程实践时学会思考“某一种编程方法会运用在哪些实际项目中”、“哪些是通用的软件模块”、“接口方法如何”、“如何将不同成员开发的模块集成在一起,怎样测试”、“在单台计算机上开发并测试的项目如何到网络环境下”、“能用吗”、“如何改进”等问题,是锻炼和提高学生独立思考能力的重要途径。教师自身要研究社会对计算机软件人才的具体要求、研究如何培养学生,以发展的眼光注重培养学生独立思考、分析和解决实际应用问题的能力。
2.2明确毕业走向,提高学生实践能力
经验表明,计算机软件相关专业学生在毕业后,大体有以下几种走向:考研深造、直接进公司从事计算机软件开发、通过考公务员等方式进入事业型单位从事技术性或文职型工作岗位等。因此,在高年级阶段,应引导学生明确就业意向,进而有针对性地强化其专业技能。
2.2.1加强基本编程思维和方法的训练编程思维和方法的训练对程序设计能力的培养具有决定性作用。对学生要进行面向过程和面向对象编程思想和其对应的基本编程方法的引导,达到让学生由此及彼、触类旁通地学习其他编程语言和技术。若没有培养起学生基本编程思想和能力,即便学生学习了再多门类的编程语言,仍不能提高能力,有时反而还会导致学生在各种编程语言和技术中徘徊不定,遇到问题不能快速进行编程和技术选型。
2.2.2培养科研型、技术工程型人才在学生具备了基本编程思维和技能的基础上,可以考虑引导学生在高年级阶段根据自己的毕业走向有针对性地强化编程训练,以快速适应即将面临的新环境和新挑战。对于准备考研深造的学生,可以将他们吸收到教师科研队伍中。这样,可以潜移默化地让学生尽早熟悉科研工作,掌握正确的科研方法,提高科研意识,锻炼分析问题、解决问题的能力,培养严谨求实的科研作风[5]。举例来说,教师可以在自己运用Matlab进行科学计算、数字图像处理、Simulink仿真、遗传算法与神经网络等智能算法研究时,通过带动学生参与其中,让学生不仅奠定一定科研基础,还会熟悉Matlab及其相关编程方法、运用Multisim进行电路系统的设计和仿真[6]等。对于将自己毕业走向确定为软件项目开发等的学生,可以将其吸纳到教师软件项目开发小组中来,或吸纳到由指导教师牵头并组建的学生软件项目开发小组中,让学生熟悉实际软件项目的开发流程和方法。在实际项目开发过程中,更进一步明确自己的技术选型,在社会需求量较大的众多软件技术如VisualC++、.Net技术、Java技术等中锁定一种,进而锻炼和培养学生进行实际项目开发的能力。
2.3鼓励学生通过专业资格认证
对于所有学生,首先都应鼓励他们通过专业资格认证,如参加全国计算机等级考试四级中的四级网络工程师、四级数据库工程师、四级软件测试工程师方向考试,软件工程师、系统架构师资格认证考试,SUN公司的Java技术认证,Cisco公司的网络技术认证等。通过这些专业资格认证的考试的准备和资格获得,可以帮助学生明确自己的专业方向,而且对该方向产生更大兴趣和信心。其次,要鼓励学生积极参与各级各类的专业程序设计竞赛,如ACM竞赛、ITAT竞赛以及其他竞赛。通过参与竞赛,拔高学生的编程高度、拓展编程视野、培养创新精神和能力。
3拓展实践教学的时间和空间
通常,实践教学被纳入正常的教学学时中,学时有限、实验室固定,这对于综合性、创新性实验的开展很不利。
3.1充分利用优质资源,拓展实验平台
以利用北京大学的“北京大学程序在线评测系统(POJ)”为例,该系统具有可以运用各类编程语言进行在线程序编写和即时评测的强大功能,其上的题目具有实用性、趣味性和很高的创新性,可以充分地帮助学生提高通过编程解决反映工作和生活实际问题的能力[7],从而充分调动学生的主动性、积极性和创造性,激发学生的创新思维和创新意识,逐渐掌握独立思考问题、解决问题的方法,提高其创新实践的能力。引进或自行研制开发基于Web工作流的程序设计综合管理系统[8-9]。通过该系统,由教师在课前提交实践项目的目的、要求、内容等,让学生在实践课前通过该平台预习实践内容、查阅资料,进行相关的设计和初步实现,课后书写实践报告并通过该平台提交。教师评阅完毕后,学生可以看到批阅结果,根据批阅意见,继续完善实践项目。同时,教师可以将自己积累多年的程序设计项目、程序设计方法、历届优秀学生的程序设计作品和实用开发工具等在该平台上,以供学生共享。开通师生用于交流程序设计经验的论坛和即时答疑空间。
3.2软件创新实验室建设
成立计算机软件创新实验室的最终目的,是培养学生独立承揽实际软件工程项目的能力,和进行计算机软件相关科研能力的培养,使学生具有快速适应社会需求或深造发展的需求能力。
3.2.1软件创新实践开展流程和制度建设
实际软件项目的开发应具有严格的流程,在指导教师的带领下,由学生组成创新实验小组,创新实验项目由指导教师规划和安排,进入创新实验室时应向计算机科学学院报送创新实验项目安排表或软件项目投标书等。完成创新实验和实际软件项目开发时,在条件允许的情况下应将相关资料和成果归档保存。软件创新实践项目和软件项目开发一定要以“系统观点”进行,即问题或大或小,都要通盘考虑,按照系统科学方法[10]和软件工程方法进行,如图2所示。组织项目开发人员,首先,进行角色划分,如项目负责人、系统分析和设计人员、编码和美工设计人员等,然后,当系统设计完成后,就要明确分配任务,形成任务分解表并落实到个人。由于学生进行实际项目开发的经验不足,可由指导教师担任项目的总负责人,定期督促和检查项目进度和估算项目成本等[11]。在创新实验室日常管理环节上,可以建立在指导教师的监督下,让全体参与创新实践的学生形成排班和轮流值日的管理制度[12]。
3.2.2软件创新实验实施方案
由指导教师牵头,引导学生创新小组进行课题研究、承揽软件开发项目和创新实践探索研究[13]。课题研究一般是由教师吸收学生参与到研究的课题中,共同完成大型的实践项目。指导教师带领学生创新团队承揽学校及校外的应用开发项目,进行项目开发。由主持实践教学改革项目的教师带领其他教师和学生进入创新实验室,组织实施和完成“以应用为核心”、“以本科学生为主体”的创新性实践教学改革项目。
4实践项目的设计与监督
4.1实践项目的原创性和创新性
实践项目设计的原创性和创新性在很大程度上决定着实践教学的质量。在长期程序设计教学过程中,发现学生在平时实践、学年论文(设计)、毕业论文(设计)以及实际项目开发过程中原创性差和缺乏创新性等问题,究其原因有:
(1)为了与程序设计理论教学配套,平时的程序设计实践项目中“验证性”项目和没有实际应用背景的“示例性”项目比重较大。
(2)一些通用性的程序设计实践项目,诸如“XX管理系统的设计和实现”、“XX网站的开发与实现”等的相关开放资源非常多,其整个软件的设计开发背景和需求、分析和设计过程,以及实现的全部源码都是有现成可参考的。若实践项目如此命题,则导致部分学生将查阅参考资料变成了“复制—粘贴”,这样,不仅没有达到良好的实践效果,反而还让一些学生养成了不劳而获、抄袭剽窃的坏习气。
(3)虚拟和笼统的实践项目较多,比如对系统的设计和开发背景是自定的而不是源于实际用户的开发需求等。学生在完成过程中,没有经历分析和解决实际应用问题的磨砺过程。因此,在引导学生进行项目实践的过程中,在对其进行各阶段指导和检查时,必须严格把关,对实践项目题目的设计本身应具有很强的针对性、原创性和创新性。不断引导学生从身边做起,积极主动地发现需求,比如:在历届的全国计算机等级考试中,发现有个别考生携带U盘等电子介质作弊的问题,教师应引导学生去探究和开发一种能够监控和防止利用电子介质作弊的软件;学校的各机关部门和学院都有开发和维护各自部门网站、开发学生管理系统、财务管理系统等需求,这些需求往往很具体,具有特殊要求和差异性,教师可以引导学生项目开发团队承揽和开发这些项目;教师面临缺乏专有的与学生进行在线沟通和交流的系统和在线收发、批阅作业的系统,可以将这样的需求作为学生毕业设计的题目等。
4.2加强对学生实践效果的检验和监督
要注重从贯穿整个本科实践教学的各个环节,诸如各项编程类基础实践项目、创新性和研究性实践项目、各级各类的专业程序设计竞赛、本科学年设计、本科毕业设计等具体环节入手,全程监督和检查学生的实践能力。改革对学生程序设计课程考核的机制,加大实践考核在成绩、能力评价中的比重;教师通过对学生所做的实践项目进行提问、讨论、答辩等方式,了解每个学生在实践中存在的问题和实践效果,发现不足,进而有的放矢地改善程序设计实践效果。