期刊大全 杂志订阅 SCI期刊 投稿指导 期刊服务 文秘服务 出版社 登录/注册 购物车(0)

首页 > 精品范文 > 程序设计论文

程序设计论文精品(七篇)

时间:2022-09-14 10:37:40

序论:写作是一种深度的自我表达。它要求我们深入探索自己的思想和情感,挖掘那些隐藏在内心深处的真相,好投稿为您带来了七篇程序设计论文范文,愿它们成为您写作过程中的灵感催化剂,助力您的创作。

程序设计论文

篇(1)

【行为导向教学法;程序设计;教学案例

随着计算机应用的普及,计算机应用专业也成了热门专业,而高级程序设计语言是计算机专业的一门必修课。在高级程序设计语言中,VisualBasic语言以其易学易用和功能强大,而且能够方便快捷地开发Windows应用程序等特征,而深受使用者欢迎。因此,其也作为中等职业学校的高级程序设计课的首选。VB是一门集知识和技能于一体、实践性很强的课程,要求学生既要学好理论知识,又要把握实际操作技能,同时,在进行软件开发时,要对用户需求及市场情况进行调研,再加上计算机软、硬件快速更新换代的特征,要求学生还要具有很强的自学能力和终身学习的思想。对于这些要求来说,传统的教学方法难以做到。而使用强调以职业活动为导向,以人的发展为本位的“行为导向教学法”将会较好的实现这些教学要求。本文拟就在中等职业教育的计算机程序设计(VisualBasic)教学中,如何运用“行为导向教学法”进行初步探索。

一、行为导向教学法的基本理论

“行为导向教学法”是在近几年从德国引进的现代的职业教育新模式,其目标层次是培养人的行为能力,方法层次是人的行为活动。即摘要:这种教育以行为为目标,教学以行为为导向,教学是学生积极参和的全面的教学,学习过程是学生同时用脑、心、手来进行学习的过程。

行为导向教学法具有很强的针对性,即是以职业活动为导向,以教会学生“学会学习、学会工作”为目标而开展教学活动,因此,对学习者来说,学习目的是十分明确,即现在的学习是为今后的职业服务。教学活动的开展,通常是围绕某一课题、新问题或项目开展,是以“学习任务”为载体,引导学生自主学习和探索的过程。整个教学过程为一个包括获取信息、制订计划、做出决定、实施工作计划、控制质量、评定工作成绩等环节在内的完整的行为模式。使用“行为导向教学法”,将能更好的培养学生的关键能力(专业能力、方法能力、社会能力、个性能力),以达到职业教育的“职业教育就是就业教育”的教学目标。

二、行为导向教学法在VisualBasic教学中的必要性和可行性

(一)必要性

现行的计算机专业类教材大多和其它学科式的教材一样,重视知识结构的系统性,教学内容大多以线性方式展开,适用于“循序渐进”的传统教学模式,以《VisualBasic程序设计》的教材为例,从语言基础、流程控制、过程和数组、窗体和控件、对话框设计、菜单、工具栏和状态栏设计等等,分章编排,在每一章的内容里,也同样按线性方式展开。假如,在教学中仍按传统的教学方法按章节讲授,势必降低的课程的综合性、实用性,也缺乏趣味性,这不但难以培养学生学习喜好,使得教学双方都陷入困境,而且,学生不知道如何在真实的情境中灵活地使用知识和运用技巧。这样的学习,是很难面对今后职业的。要改变这一现象的方法,比较成功的是运用以课题或项目来开展教学活动的行为导向教学法进行教学,在教学中,淡化知识的系统性和连贯性,更多关注的是知识之间的联系,在联系中学习知识、在综合运用中学习知识,使学生不仅学会了程序设计知识本身,又培养了学生运用程序设计的知识去解决实际新问题的能力,达到“学以致用”的教学目的。

(二)可行性

《VisualBasic程序设计》是一门实践性和操作性很强的课程,知识涉及许多抽象的术语,如摘要:类、对象、过程、语句、控件等等,还有大量的开发工具的使用。仅就VB的开发环境为例,其中就包含了摘要:窗体设计器、代码编辑器、对象浏览器、属性窗口、工程管理器、工具箱、菜单、工具栏等等。把握和熟悉它们的最好方法,就是在不断的结合实际的“案例”(案例教学法)或“课题”(项目教学法)的操作实践中去把握。在教学中,教师可以把课程内容包含在两到三个综合贴近实际的项目,给出案例,再把这个项目分成若干个小项目(或模块)。例如摘要:以开发一个“学生信息管理系统”为一个综合项目(教师首先给出案例演示,以引起同学们的关注),再分别以“登录窗口”、“查询窗口”等为小项目进行设计开发,学习相关的基础知识(如摘要:在设计“登录窗口”的项目中,学生可以把握“文本框、标签、命令按钮、属性设置、变量命名规则、变量定义、变量数据类型、变量的声明语句、赋值语句”等相关知识群)。学生在具有目标明确的项目驱动下,以“做中学”的方法进行学习,这样,不仅可以提高他们学习的主动性和学习乐趣,同时也培养了他们的关键能力。

二、“行为导向教学法”案例

行为导向教学法中的“项目教学法”是指师生以团队的形式共同实施一个完整“项目”的工作而进行的教学活动。通过在开展项目过程中有针对性的工作来培养学生的关键能力,非凡是独立工作能力、想象力、创新能力。项目教学法包括了计划、实施和检查及成果展示的全过程。它是由学生自己来完成整个过程的教学方法。以下是一个项目教学法的简案。

项目摘要:学生信息管理系统

(一)教学目标

1.培养学生运用VisualBasic知识解决实际新问题的能力;

2.培养学生独立学习和工作的能力;

3.培养学生和人合作的能力。

(二)项目的实施过程

三、需要重点注重的两个新问题

(一)教师角色的转换

在行为导向教学中,对教师提出了更高的要求。教师应是“双师型”的教师,老师的角色由传统的教学主导者转变为教学活动的引导者或主持人,在教学过程中,教师以咨询员、伙伴、朋友等角色出现在学生中,教学方法由注重“教法”转变为注重“学法”,为此,要完成教学任务,教师要付出更多的心血。

(二)项目设计的合理性

项目设计的最重要的原则就是可实践性,以保证学生可操作,并有收获。因此,项目的设计应采用结构化的方法,自上而下,逐步细化的原则;项目的实施,则采用自下而上,由易到难,逐步完善的原则进行。

篇(2)

本文对温度、湿度两个显著影响温室作物生长的参数进行深入分析研究,构建的温湿度模糊控制系统方案如图2所示。图2中,T和H分别为模糊控制系统输出的温室环境温度和湿度值;T1、H1分别为根据专家经验给出的农作物生长最佳的温度和湿度值;eT1、eH1分别为给定值与温室环境的实际测量值的偏差;ecT1、ecH1分别为温湿度偏差随时间的变化率。

2温湿度模糊控制器设计

2.1输入与输出变量的模糊化

根据温室大棚的实际状况,以温湿度偏差及其偏差变化率为输入变量,各输入变量的模糊化信息如表1所示。结合研究对象实际情况,既考虑控制规则的灵活性又兼顾简单易行。表1中,4个输入变量模糊集均取为A,A为{NB,NS,ZE,PS,PB};模糊论域均取为B,B为{-4,-3,-2,-1,0,1,2,3,4}。模糊控制器的输出控制变量为前窗、天窗、后窗、遮阳帘、通风机、加湿器和加热器。这7个变量均为开关量,只有开和关(0/1)两种状态,分别用符号u1、u2、u3、u4、u5、u6、u7表示这7个变量。

2.2隶属函数的确定

由于三角形隶属度函数在输入值变化时比正态分布或高斯型具有更高的灵活性[6],因此本研究中温湿度偏差与偏差变化率均选取三角形隶属度函数。图4为各输入变量的隶属度函数,选择的模糊集宽度为4。因为宽度过小会造成部分区间空缺,可能找不到相应的控制规则,收敛性不好;宽度过大会造成控制规则的重叠部分过多,相互间影响加大并且响应速度也变慢[7]。根据隶属度函数对输入变量量化为9个等级,其相应的隶属度赋值如表2所示。

2.3模糊控制规则的制定

模糊控制规则的形成实质上是把操作者的经验或专家的知识和经验进行凝练得到的若干条模糊控制规则[8]。经对实际温室控制系统的研究,发现温湿度间存在一定的耦合性,即当通过某一执行机构改变温度(湿度)时湿度(温度)也会发生变化,因此在制定模糊控制规则时就要渗透解耦的思想。基于此,对7种执行机构的开关状态做如下考虑:u1、u2和u3每打开一个设备降温和降湿效果增强一点,但速度较慢;u5开通后其降温和降湿速度明显比u1、u2、u3快;u4降温作用明显,对湿度基本无影响;u6主要起加湿作用,降温为次要作用;u7主要为增温作用,降湿为次要作用。研究中制定了温度与湿度之间、温度变化率与湿度变化率之间的两个模糊控制规则表,在此仅列出温度与湿度之间的模糊控制规则,如表3所示。表3中,U为u1到u7这7个变量的开关状态,开用“1”表示,关用“0”表示。

2.4反模糊化

模糊控制器输出的是模糊语言不同取值的一种组合,由于被控对象只接受一个精确的控制量,因此需要从组合中判决出一个精确的控制量,这也就是反模糊化的过程[9]。常用的判决方法有重心法、最大隶属度法和中位数法等,本研究采用重心法计算模糊控制输出的精确控制量。其具体表达式为u'=∑nj=1ωjμ(ωj)/∑nj=1μ(ωj)(1)其中,n为模糊变量个数,ωj为模糊变量,μ(ωj)是对应模糊变量的隶属度。本系统反模糊化的具体过程:首先温湿度误差或其误差变化率经量化后得到相应的量化等级,根据量化等级查询各个执行机构在控制规则表中对应的控制规则并使其激活。然后,由式(1)计算各个执行机构的输出值,计算结果等于0.5时,执行机构保持原来状态;计算结果大于0.5时,执行机构开;计算结果小于0.5时,执行机构关。基于这种思想,可建立各执行机构的模糊控制查询表,放在内存中,编写相应的PLC程序即可实现模糊控制器对执行机构的实时控制。

3温湿度模糊控制PLC程序设计

温湿度模糊控制PLC程序包括输入量的采样与模糊化程序、量化等级程序、模糊控制查询程序、执行机构控制程序和预警程序等[10],在此仅介绍有关输入采样、误差的计算和模糊控制查询的部分程序。本研究是在STEP7编程环境下完成的模糊控制程序。

3.1输入量采样和ET/EH计算程序

研究中应用的温湿度传感器的变送单元分别取0~50℃、0~100%RH,线性对应电流均为4~20mA,因此在编写PLC程序前需把温湿度的值与PLC中的数字量关系建立起来。具体过程如下:以温度为例,用I表示电流值,T表示温度值,X表示实时温度转换为PLC中的数字量值。由于0~50℃与4~20mA对应,4~20mA又与PLC中的数字量为6400~32000对应,因此可得曲线方程如式(2)与式(3)所示。根据式(4)即可计算0~50℃对应PLC内部的数字量值。如22℃对应数字量值为17664。同理,可求得湿度值与PLC中数字量的对应关系如式(5)所示。其中,H表示湿度。下面以温度为22℃和湿度为70%RH的情况编写相应的PLC程序,70%RH对应的数字量为24320。

3.2模糊控制查询程序

由反模糊化得到的模糊控制查询表实质上是一个9×9的二维数组,存在以VW200开始的81个字单元中。在此把数组的首地址指针设定为VD48,根据(VW20×9+WV18)×2即可计算偏移值,在查询表中定位并把相应值赋予WV28。

4系统实际运行测试

控制系统投入运行后,任选某一天对控制效果进行实际测试。测试时的起始温度和湿度分别为32℃和52%RH,控制设定值分别为22℃和70%RH。对温湿度采样时间间隔均为5min,根据采集数据绘制的曲线如图5所示。由图5可知30min左右时温湿度值均达到设定值,再经10min左右温湿值即达到预设的稳定状态值,达到了较满意的控制效果。控制系统达到稳态的时间可通过增减有关设备进行调节。

5结束语

篇(3)

前几年,OpenGL虽然是开放式的标准,但是只能在具有UNIX操作系统的各种昂贵的工作站之间通用;尽管工作站上的OpenGL性能优越、编程方便、生成图形精真,但是只有少数人能体会其中乐趣,而令大多数PC机用户望尘莫及。随着计算机技术的发展,工作站与PC机的性能日趋接近。Microsoft公司首先将OpenGL图形库链接到WindowsNT中,目前又将OpenGL动态库挂到最新Windows95上,这样,广大PC机用户就可充分享受OpenGL的乐趣了。更令人高兴的是,目前国内外出现了专门对OpenGL进行硬件加速的三维图形加速卡。这样,普通用户只

要拥有一台Pentium90以上、16MBRAM、520MB以上硬盘容量的PC机以及一台43cm以上的大屏幕监视器和一块OpenGL三维图形加速卡组成的系统,就能与图形工作站相媲美,但价格却便宜数十倍。

本文作者一直从事计算机图形应用开发工作。原来是在SGI工作站上利用OpenGL开发图形程序,后来又首先在国内第一块三维图形加速卡AGC-3D上基于WindowsNT的VisualC++2.0环境下继续进行开发。在开发过程中,同一OpenGL程序几乎不用修改就能在两个平台间来回移植,效果甚好。

一、OpenGL特点及功能

OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,能十分方便地在各平台间移植。

OpenGL具有七大功能。

(1)建模OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(如球、锥、多面体、茶壶等)以及复杂曲线和曲面(如Bezier、Nurbs等曲线或曲面)绘制函数。

(2)变换OpenGL图形库的变换包括基本变换和投影变换。基本变换有平移、旋转、变比和镜像四种变换,投影变换有平行投影(又称正射投影)和透视投影两种变换。

(3)颜色模式设置OpenGL颜色模式有两种,即RGBA模式和颜色索引(ColorIndex)。

(4)光照和材质设置OpenGL光有辐射光(EmittedLight)、环境光(AmbientLight)、漫反射光(DiffuseLight)和镜面光(SpecularLight)。材质是用光反射率来表示。场景(Scene)中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。

(5)纹理映射(TexureMapping)利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节。

(6)位图显示和图像增强图像功能除了基本的拷贝和像素读写外,还提供了融合(Blending)、反走样(Antialiasing)和雾(fog)的特殊图像效果处理。

(7)双缓存(DoubleBuffering)动画双缓存即前台缓存和后台缓存,简而言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。

此外,利用OpenGL还能实现深度暗示(DepthCue)、运动模糊(MotionBlur)等特殊效果。

二、OpenGLforWindowsNT图形库

OpenGL图形库一共有100多个函数。其中核心函数有115个,它们是最基本的函数,其前缀是gl;OpenGL实用库(OpenGLutilitylibrary,GLU)的函数功能更高一些,如绘制复杂的曲线曲面、高级坐标变换、多边形分割等,共有43个,前缀为glu;OpenGL辅助库(OpenGLauxiliarylibrary,GLAUX)的函数是一些特殊的函数,包括简单的窗口管理、输入事件处理、某些复杂三维物体绘制等函数,共有31个,前缀为aux。

此外,还有六个WGL函数非常重要,专用于OpenGL和WindowsNT窗口系统的连接,其前缀为wgl,主要用于创建和选择图形操作描述表(renderingcontexts)以及在窗口内任一位置显示字符位图。这些功能是WindowsNT对OpenGL的唯一补充,见表1所示。

表1管理图形操作描述表的WGL函数

另外,还有五个Win32函数用来处理像素格式(pixelformats)和双缓存。由于它们是对Win32系统的扩展,因此不能应用在其他OpenGL平台上,见表2所示。

表2管理像素格式Win32函数

三、OpenGLforWindowsNT程序设计

OpenGLforWindowsNT的程序设计与OpenGLforUNIX的程序设计有一点小区别,关键就在于如何将OpenGL与不同操作系统下的窗口系统连接起来。如果调用OpenGL辅助库窗口管理函数,则不用考虑这些问题。下面将主要介绍在WindowsNT下OpenGL的程序设计关键。

1.图形操作描述表

在WindowsNT下窗口程序必须首先处理设备描述表(DeviceContexts,DC),DC包含许多如何在窗口上显示图形的信息,即指定画笔和刷子的颜色,设置绘图模式、调色板、映射模式以及其他图形属性。同样,OpenGLforWindowsNT的程序也必须使用DC,这与其他Windows程序类似。但是,OpenGLforWindowsNT必须处理特殊的DC图形操作描述表,这是DC中专为OpenGL使用的一种。一个OpenGL应用图形操作描述表内有OpenGL与WindowsNT窗口系统相关的各种信息。一个OpenGL应用首先必须创建一个图形操作描述表,然后再启动它,最后在所定义的窗口内按常规方式调用OpenGL函数绘制图形。

一个图形操作描述表不同于其他DC,它们调用每个GDI函数都需要一个句柄,而图形操作描述表方式下只需一个句柄就可任意调用OpenGL函数。也就是说,只要当前启用了某个图形操作描述表,那么在未删除图形操作描述表之前可以调用任何OpenGL函数,进行各种操作。

2.像素格式

在创建一个图形操作描述表之前,首先必须设置像素格式。像素格式含有设备绘图界面的属性,这些属性包括绘图界面是用RGBA模式还是颜色表模式,像系缓存是用单缓存还是双缓存,以及颜色位数、深度缓存和模板缓存所用的位数,还有其他一些属性信息。

(1)像素格式结构

每个OpenGL显示设备都支持一种指定的像素格式号。一般用一个名为PIXELFORMATDESCRIPTOR的结构来表示某个特殊的像素格式,这个结构包含26个属性信息。Win32定义的PIXELFORMATDESCRIPTOR如下所示:

typedefstructtagPIXELFORMATDESCRIPTOR

{

WORDnSize;

WORDnVersion;

DWORDdwFlags;

BYTEiPixelType;

BYTEcColorBits;

BYTEcRedBits;

BYTEcRedShift;

BYTEcGreenBits;

BYTEcGreenShift;

BYTEcBlueBits;

BYTEcBlueShift;

BYTEcAlphaBits;

BYTEcAlphaShift;

BYTEcAccumBits;

BYTEcAccumRedBits;

BYTEcAccumGreenBits;

BYTEcAccumBlueBits;

BYTEcAccumAlphaBits;

BYTEcDepthBits;

BYTEcStencilBits;

BYTEcAuxBuffers;

BYTEilayerType;

BYTEbReserved;

DWORDdwLayerMask;

DWORDdwVisibleMask;

DWORDdwDamageMask;

PIXELFORMATDESCRIPTOR,

*PPIXELFORMATDESCRIPTOR,

FAR*LPPIXELFORMATDESCRIPTOR;

(2)初始化PIXELFORMATDESCRIPTOR结构

PIXELFORMATDESCRIPTOR中每个变量值的具体含义和设置可以参

考有关资料,下面举出一个PIXELFORMATDESCRIPTOR初始化例子来简要

说明相关变量的意义。定义PIXELFORMATDESCRIPTOR结构的pfd如下:

PIXELFORMATDESCRIPTORpfd=

{

sizeof(PIXELFORMATDESCRIPTOR),//结构尺寸

l,//结构版本

PFD-DRAW-TO-WINDOWS|PFD-SUPPORT-OPENGL,//特性标志

PFD-TYPE-RGBA,//RGBA模式

24,//24位颜色

0,0,0,0,0,0,//不涉及这些属性

0,0,0,0,0,0,0,//没有alpha缓存和累积缓存

32,//32位深度缓存

0,0,//没有模板缓存和辅助缓存

PFD-MAIN-PLANE,//主层类型

0,//保留结构数

0,0,0,//不支持结构数

};

在这个结构里,前两个变量的含义十分明显。第三个变量dwFlags的值是PFD-DRAW-TO-WINDOWS|PFD-SUPPORT-OPENGL,表明应用程序使用OpenGL函数来绘制窗口,第四个表明当前采用RGBA颜色模式,第五个采用24位真彩色,即1.67千万种颜色,如果是256色系统则自动实现颜色抖动;因为没有使用alpha缓存和累积缓存,所以从变量cAlphaBits到cAccumAlphaBits都设置为0;深度缓存设置为32位,这个缓存能解决三维场景的消隐问题;变量cAuxBuffers设置为0,在WindowsNT下不支持辅助缓存;WindowsNT下针对OpenGL变量ilayerType只能设置为PFD-MAIN-PLANE,但其他平台也许支持PFD-OVERLAY-PLANE或PFD-UNDERLA

Y-PLANE;接下来bReserved变量只能设为0,而最后三个变量WindowsNT都不支持,故全设置成0。

(3)设置像素格式

当初始化PIXELFORMATDESCRIPTOR结构后,就要设置像素格式。下面几段从VC++2.0的MFC程序中摘出的代码就是设置像素格式的方式。代码如下:

CClientDCclientDC(this);

intpixelFormat=ChoosePixelFormat(clientDC.m-hDC,&pfd);

BOOLresult=SetPixelFormat(clientDC.m-hDC,pixelFormat,&p

fd);

第一行语句说明得到一个应用窗口客户区的设置描述表。

第二行调用ChoosePixelFormat()选择一个像素格式,并将像素格式索引号返回给pixelFormat变量;函数中第一个参数是选择像素格式的设置描述表的句柄,第二个参数是PIXELFORMATDESCRIPTOR结构的地址。如果调用失败则返回0;否则返回像素格式索引号。

第三行调用SetPixelFormat()设置像素格式,三个参数分别是设备描述表的句柄、像素格式索引号和PIXELFORMATDESCRIPTOR结构的地址。如果调用成功则返回TURE;否则返回FALSE。

3.创建图形操作描述表

正如前所述,必须创建图形操作描述表并启用它后,才能调用OpenGL函数在窗口内进行各种图形操作。一般说来,利用MFC中增补的管理图形操作描述表方法来编程比较方便。下面举一例:

intCopenglView::OnCreate(LPCREATESTRUCTlpCreateStruct

)

{

if(CView::OnCreate(lpCreateStruct)==-1)return-1;

//TODO:Addyourspecializedcreationcodehere

PIXELFORMATDESCRIPTORpfd=

{

sizeof(PIXELFORMATDESCRIPTIOR),

//structuresizel,

//structureversionnumber

PFD-DRAW-TO-WINDOWS|PFD-SUPPORT-OPENGL,//propertyflags

PFD-TYPE-RGBA,//RGBAmode

24,//24bitcolor

0,0,0,0,0,0,//notconcernedwiththese

0,0,0,0,0,0,0,//noalphaoraccumbuffer

32,//32bitdepthbuffer

0,0,//nostencilorauxbuffer

PFD-MAIN-PLANE,//mainlayertype

0,//reserved

0,0,0//unsupported

};

CClientDCclientDC(this);

intpixelFormat=ChoosePixelFormat(clientDC.m-hDC,&pfd);

BOOLresult=SetPixelFormat(clientDC.m-hDC,pixelFormat,&p

fd);

m-hRC=wglCreateContext(clientDC.m-hRC);

return0;

}

voidCOpenglView::onDraw(CDC*pDC)

{

COpenglDoc*pDoc=GetDocument();

ASSERT-VAILD(pDoc);

//TODO:adddrawcodefornativedatahere

wglMakeCurrent(pDC->m-hDC,m-hDC);

DrawMyOpenGL();

wglMakeCurrent(pDC->m-hDC,NULL);

}

voidCOpenglView::OnDestroy()

{

CView::OnDestroy();

//TODO:Addyourmessagehandlercodehere

wglDeleteContext(m-hRC);

}

在程序中,响应WM-CREATE消息的函数OnCreate()仅仅只创建一个临时的DC,当函数返回时,它自动删除。因此,在这里不可能启用图形操作描述表。当应用程序的窗口内容得到更新后,MFC就调用OnDraw()函数,在此启用图形操作描述表wglMakeCurrent()有效。然后,再调用自己用OpenGL写的绘图函数DrawMyOpenGL(),则程序就可进行任意的OpenGL图形操作了。当绘图结束后,再调用一次wglMakeCurrent(),但第二个参数设为NULL,意思是启用图形操作描述表无效,关闭图形操作描述表。最后,当应用程序结束时,MFC就调用OnDestroy()函数来响应

篇(4)

在《网络程序设计》中,套接字socket是非常重要的概念,教材上的解释是:套接字是两个通信通道上的端节点。看到这个解释,学生还是不能明白套接字的内涵。为了使学生更好地理解,通常采用如下比喻。既然套接字是作为通信的末端,那么可以使用“电话系统”与“邮局系统”这两个同学们熟悉的事物进行类比。可以把支持虚电路服务的信道看作电话线,套接字就类似于一个电话。同样,可以把提供数据报服务的通信看作邮局系统,套接字看作信箱。

(2)基于TCP套接字编程模型

面向连接的网络通信的建立有多个步骤,要使用多个函数。为了便于理解,可以将其比喻为“打电话”这个过程。要建立基于TCP的C-S(客户-服务器)通信,首先双方进程必须各自创建一个端点,也就是调用socket函数创建套接字,正如打电话之前,双方必须都拥有一台电话机一样。Socket是面向模型设计的,针对C-S通信双方提供不同的socket系统调用。客户随机申请一个socket号,这类似想打电话的人可以在任何一台入网的电话上呼叫。服务器拥有全局公认的socket,调用bind函数将套接字地址和所创建的套接字句柄联系起来,任何客户都可以向它发出连接请求和信息请求,这就类似于被呼叫方的电话号码告知了呼叫方。客户端调用connect函数发出连接请求,就好比拨打对方的电话。而服务端有可能在完成当前请求之前又发生多个服务请求,为了很好的处理这个问题,服务器调用listen函数将所有的服务请求放在一个请求队列中排队,并尽快处理这些请求[2],这就如被呼叫方在开启呼叫等待的功能,不错过任何呼叫请求。服务器端执行accept函数等待来自某一客户端的实际连接请求,实现与客户进程连接,这就如被呼叫方拿起电话,双方可以正式通话。最后,客户端与服务端完成数据传输后调用close函数关闭套接字,撤销连接。这就好比打电话双方通话结束后,挂掉电话。

(3)基于UDP的通信机制

用“邮局系统通信”来类比这一种通信机制是非常恰当的。基于UDP通信是面向非连接的,无法保证数据以正确的顺序到达。这就类似我们先后寄出两封信给对方,不能确保第一封信一定会比第二封信先到达对方手上。而在通信过程中,服务端和客户端双方首先都需要绑定IP地址和端口号,这就好比寄信之前,对方的通信地址我们是要已知的。而客户端发送信息以及服务端回应的时候,调用sendto函数来实现,需要指明对方的地址。这如同在寄信的时候,需在信封上要注明对方的地址信息。

(4)协议端口

在讲解“协议端口”时,学生总是不能理解为什么在网络通信的时候要指明端口号,为了解决这个问题,同样采取比喻教学法。大多数操作系统是支持多进程的,目的主机到底把收到的数据包送给哪个进程呢?就好比我们去银行办理业务,银行的业务有多种,有多个服务窗口。我们要成功地办理业务,必须知道对应的窗口号。同理,当你的主机开启多个服务时,如FTP、WWW、E-Mail多个服务,当接收到传送过来的数据包时,主机要准确的把数据包传送给相应的进程,这就需要数据传输的双方进程开启端口,这样数据包将会有标识有源端口,确保接收方顺利地将数据包传送至这个端口。

(5)带外数据

通常数据是按顺序传输的,然而套接字API概念性的提供了一些使用程序,从而可以使得一串数据无阻的先于普通的数据到达接收端。这就是所谓的发送带外数据。这就好比大家排队在银行依次办理业务,有个强盗拿着枪走入银行,越过整个队伍走到柜员面前。这个就可看作为带外数据。这个强盗能越过整个队伍,是因为枪标识他的特殊性,给了他凌驾于众人的权力。

(6)结语

篇(5)

1.算法思想。数学里的算法是极其重要的内容,是数学的组成部分,同时是计算机理论的核心,也是技术的核心。在社会发展过程中,人们的日常生活已经离不开计算机,它成为生活中的重要工具,如看电影、绘画、处理数据等,它所涉及的面非常广,和生活息息相关。计算机虽是生活过程中必不可少的工具,但它的工作情况是什么样呢?想要了解这个问题,就要先从算法来开始学习。算法能使逻辑思维能力提高,对有条理思考和表达的发展非常有利。在过去时间里,算法这个名词虽然没有出现,但这种算法思维已经渗透到数学教学过程中,例如,运算过程中的四则运算、求解方程等,这些步骤的完成都需要程序化的表达,这个过程也是算法思想的形成。

2.算法的构建。在处理一些问题时,一系列可操作的步骤需要设计,或者设计它的可算操作,来通过这些步骤进行解决问题,这种解决问题的方法就是通常指的算法。广义的算法:就是一种工作的方法和步骤,例如,歌曲的歌谱、洗衣机说明书等都是它们使用的算法。数学教学中的算法:数学中,把计算机解决问题过程中的程序认为是现代意义的“算法”。这种算法可以用计算机实现,对求解的方法也是统一、机械的,例如:解方程、作图问题、函数求值等的算法。

二、ARCS动机设计模式在高中数学程序设计教学中的应用

1.注意策略。在学生考虑到需要输入输出时,实际上他们就已经开始有了算法思维,只是很多学生在开始时不确定如何准确划分步骤。通过上述例证使学生了解算法解决问题的思路和步骤。

2.相关性策略。《孙子算经》中原文是:“今有物,不知其数,三三数之,剩二,五五数之,剩三,七七数之,剩二,问物几何?答曰:二十三。”对高中生来说,在问题提出后,即使有些同学的思路一开始出现了偏差,但是和实际情况对比之后基本都能猜出正确答案。因此,对自己判断与实际情况不一致的同学来说,他们就会更深一步地问自己:为什么不一样?哪里出现了问题?这有助于学生独立思考能力的培养。只有让学生自己发现错误、判断错误、解决错误,才能让学生真正地掌握相关知识,这也有助于提高学生的高阶思维能力。

3.信心策略。算法实例基本是必考题,每次的考试中都有或多或少地涉及一些。算法题出题方式灵活,可考查内容较多,是一个全面评估学生知识掌握程度的考题。教师在对学生进行考核时,要考虑到学生自身知识的掌握水平,从学生角度出发,循序渐进地增加难度,切忌一次考核过难,打击学生的自信心,降低学生的学习兴趣。案例:例1.通过求1+2+3+4+5中的一个算法。解:算法1用逐一相加的方法来进行。第一步:计算1+2,得数3;第二步:把第一步中所得结果3与3相加,计算得到6;第三步:将第二步中所得的运算结果6与4相加,计算得到10;第四步:将第三步中所得的结果10与5相加,计算得得到15.说明:①一个问题的算法肯定不是唯一。②若将本例题改为“求1+2+3+…+100的结果,给一个算法”,则以上第二算法和第三算法表达较为方便。对刚开始接触程序设计的学生来说,这类题型可以提高学生的自信心,使学生产生强烈的荣誉感。题目的难度是明确的,但实际解题思路并不复杂,却有多种解题方法,对解题思路明确后,其流程图绘制也就轻而易举了。给学生自信心,让学生感受自身的能力有助于提升学生的学习动力。

4.满意策略。以满意度策略为基础的数学课堂教学方式有很多,如多媒体教学、学生学习目标设定、多元化教学方式等。在教学中,本人根据学生各自情况,与学生进行沟通后为每人设定了相应的学习目标。每次测评之后并不以全班同学的成绩来评论学生的好坏,而是通过横向与纵向两方面相比,让学生全面了解自身当前学习状况。另外,数学课堂教学中,要重视学生的能动性,通过参与问题、解决问题的方式让学生充分表现自己。通过满意策略提高学生的学习动机。

三、总结

篇(6)

论文关键词:Java,教学方法,作业布置,考核方式

 

软件行业对Java应用开发人员的[1]需求量很大,但在实际Web软件开发中,要求Java软件工程师需要掌握JavaSE、JSP and Servlet、Struts、Spring和Hibernate等诸多框架和技术才能胜任。因此,对于教学工作者来说,如何能够在有限的本科教学中最大化地培养学生动手开发Java应用的能力,以适应市场的需求,是急需研究和解决的问题。闽江学院计算机科学系从2003年开设Java课程,起初的教学效果不是很理想,往往有学生大学毕业了还没有熟练地掌握这一平台的开发技术,直接影响了就业。针对这种情况,笔者在多年的教学实践中不断地探索、改进教学方法和经验,目前取得了良好的成效。越来越多的毕业生就职于Java用人单位教学方法,并获得一致肯定。现就如何设置Java系列课程教学与实验实训、改进教学方式、作业布置、考核方式等方面进行探讨。

1Java系列课程的设置

闽江学院计算机科学系有两个专业开设Java系列课程:计算机科学与技术和软件工程。系里通过与福建工程学院等兄弟院校交流,同时又对博洋、北大青鸟等培训机构的相关课程体系进行深入分析,再结合高校教学的实际情况,将Java系列课程分为Java程序设计基础、Java高级实训系列、JSP程序设计、Android程序设计(选修 )和SSH2程序设计5门课程,分散在不同的学期来授课,以知识转化为能力为目标,以应用实践为主线。其中Java高级实训学分4学分,又细分为4个子课程,每个子课程1学分,分别是Java数据库实训、Java操作系统实训、Java多媒体实训、java网络实训。不同实训子课程随同相关专业课程同学期授课。该系列课程从教学内容上覆盖了用人单位最常用的程序设计技术,同时与其他专业课形成良好的互补关系,从一定程度上保证了授课的完整性和学生动手能力的有效培养。计算机系本科专业的Java系列课程设置如表1所示:

表1 计算机系本科专业Java系列课程设置

 

课程名称

开设学期

学分

总学时(理论/上机)

实训周数

Java程序设计基础

2

2

2*16+10=32(16/26)

1

Java数据库实训

3

1

4+10=14(4/10)

1

Java操作系统实训

4

1

4+10=14(4/10)

1

Java多媒体实训

5

1

4+10=14(4/10)

1

Java网络实训

5

1

4+10=14(4/10)

1

JSP程序设计

6

3

3*16=48(32/16)

1

Android程序设计(选修)

7

2

3*16+10=48(32/26)

1

SSH2程序设计

7

4

篇(7)

【关键词】教学团队 教学实践与改革

【中图分类号】G451 【文献标识码】A 【文章编号】2095-3089(2013)02-0005-01

一、课程建设的指导思想和实施方案

C#.net课程内容以介绍面向对象程序设计的思想和方法为主,重点介绍.net平台上面向对象程序设计的基本知识和基本技能,使学生能够熟练地使用Visual 集成开发工具编写Windows Form应用程序和应用程序。其先修课程《计算机基础》、《C++面向对象程序设计》、《数据库基础》,是数据结构(C#描述)、、网络编程的前导课程,是培养学生程序设计基础。把握程序设计方法和思路,奠定学生的可视化编程能力,为后续专业课程的学习提供知识和能力的支撑。推进和实施“.net课程教学团队”建设,是培养高素质人材,全面提升教学质量的一种重要方式。

课程建设小组在学校和计算机学院领导的支持和指导下,在课程建设上坚持改革、发展和创新的方针,以突出课程内容的先进性、实用性、够用性、操作性建设为重点,以培养学生实践技能和综合能力为核心,对师资队伍、教学内容、教学方法、教材实验、教学管理等作了重点建设,完成了规定的内容和任务,达到了预期的目标和要求。

课程建设的时间分为了两个阶段:

第一阶段:009.9~2010.9制定培养方案、拟定课程大纲。制作ppt课件及实验指导书第一版,完成教材讲义修订、发表相关论文、申报科研教改项目,开发配套软件,落实实践基地,组织学生竞赛,申报.net专业实验室。

第二阶段:2010.9~2011.9完成教材讲义、课件ppt及实验指导书第二版,开展教学研究,发表相关论文,推广配套软件应用,发表相关论文20多篇(其中EI收录10余篇),申报科研教改项目,出版教材二部。相关资源挂实验室服务器供ftp下载。

二、课程建设的主要内容

1.师资队伍建设;

2.教学内容、教学方法和手段的建设;

3.实践性教学体系建设;

4.教材建设。

三、本课程的主要特色

1.有完整的学习资源库,并结合独立学院学生特点,出版了相应教材和自编了配套的实验实践指导书。

2.有配套的.net课程专业机房――微软实验实训室,既是学生上机实验实践的场所,也是中山市.net软件开发的重要平台。

3.有专业的实践基地。通过与中山市知名企业合作,签定了长期的实践教学基地协议,为学生的专业实践构建了良好的平台。

4.以解决实际问题的程序设计思想作为切入点进行教学,我们的教学站在如何应用.net作为工具编程解决实际问题的角度,在授课的过程中,以解决实际问题的程序设计思想作为切入点进行教学,在教学过程中将实际问题作为教学案例,通过对实际问题的剖析,从而使学生掌握解决实际问题的程序设计思想。

5.以培养学生的实际动手能力为目标进行教学。我们通过实践环节以培养学生的实际动手能力,对于本课程我们配有相应的上机训练以及相应的课程设计,所有的实践环节都在老师的指导之下进行,学生通过亲自上机对问题进行分析、设计、编码、调试,最终设计出能解决实际问题的程序,从而提高实际动手能力。

6.以培养学生的创新思维为目标进行教学。知识是载体,传授科学精神、治学方法,培养、提高学生的科学素质是根本,科学素质教育的核心是培养学生的创新精神。我们采用互动式教学以及组织学生对问题进行研讨的形式,充分调动学生的主观能动性,启迪学生积极思维,让学生自己去探索,从而培养学生的创新思维。

目前,国内高校该类课程的教学内容大多比较偏重于计算机编程语言或完全是编程语言的教学。教学模式也一般是传统的模式,即十分注重某种编程语言基本语句、语法和一些细节的介绍。这样,该类课程基本上是以高级语言自身的体系为脉络展开教学的。由于教学不是站在如何应用计算机工具编程解决实际问题的角度,就没有把逻辑与编程解题思路放在主体地位,也就没有很好讲解如何分析问题和解决问题,结果导致学生程序设计能力、上机解题能力训练不够,更谈不上引导学生进行课题研究和科研探索了。于是,很多学生在学习时感到内容枯燥难学,学过之后又不能用之有效解决实际问题。

对于信息领域、尤其是计算机专业的大学生来说,仅仅掌握几门编程语言是不够的。他们重要的是在开始大学学习时就要努力锻炼去掌握解决实际问题的程序设计思想和养成良好的程序设计习惯,具备用计算机解决实际问题的思想和眼光。这样,就不单单是要学习编程语言本身,而是要开阔思想,打好了一个思维的基础。有了这个基础之后,再学习各种编程语言工具课就有实际意义了,也容易引起学习兴趣,并能把编程语言作为有利工具来实现自己的算法、解决问题。同时,也使自己在后续课程学习乃至研究生阶段的科研活动中后劲十足。本课程的教学工作完全基于上述的教学理念,进行教学改革,取得了好的教学效果。

四、课程建设主要实际效果

1.出版的二部教材《C#大学基础教程》、《软件工程技术及应用》,目前已在全国高校使用。

2.在全国公开刊物发表较高水平论文二十多篇,其中EI收录十余篇。

3.配套的软件《面向对象设计在线评测系统》已在校内应用,最高峰时同一天有1500多人次提交评测结果。

4.团队教师指导的学生在学科竞赛中获国家级奖26人次(包括全国大学生信息安全竞赛一等奖)、省级奖37人次。毕业生就业率稳定在98%以上。

五、进一步探究的问题

“.net课程教学团队”经过几年的建设,在教学、科研、师资队伍、实验室建设、教材建设等方面取得了可喜的成绩,教学效果反应良好,学生评教结果全为优良,受到学生普遍欢迎和同行认可。但课程建设工程是一项系统工程,需要进一步总结和完善的地方很多,目前,本课程也还存在一些不足之处。

整改措施:

1.师资队伍的建设;

2.教学资源的建设和完善;

3.进一步改革和完善课程体系。

参考文献: