指针与函数.doc_第1页
指针与函数.doc_第2页
指针与函数.doc_第3页
指针与函数.doc_第4页
指针与函数.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

指针与函数 存储和处理是程序设计的基本矛盾。存储中也有处理,是基本处理,例如,机器指令中的操作码,C语言内置类型中的运算符。随着处理越来越复杂,程序设计的基本矛盾不断向前发展,从而推动了程序语言的发展。指针(在机器语言中是地址)是存储和处理的“媒介”、“中介”,是语言的要素,它随着处理越来越复杂也在同时向前发展。1函数参数与指针C语言程序是由函数构成的,函数表示处理,实参表示存储,函数的指针参量表示存储和处理的中介,实参初始化形参,函数通过指针处理存储中的数据。以表1为例。在下面的函数原型中,形参pa的声明是等价的,都表示指针,都是存储与处理的中介:int Sum(int *pa,int n);int Sum(int pa6,int n);int Sum(int pa,int n);2模块化设计与指针一组存储中的数据通过传址在函数之间传递。如果这组数据是“只读”的,那么如何保证它不被改写?在模块化程序设计中,程序按模块编译,如果在模块单独编译阶段就对“只读”数据的安全性进行控制,即保证“只读”数据把地址传给的是“只读”函数,就会减少连接调试阶段的工作负担。const限定修饰符便是这种控制的工具。const限定符既可以限定存储中的“只读”数据,也可以限定“只读”函数。被const修饰的数据称为const常量,它必须初始化;被const修饰的函数具有被const修饰的指针参量,这个指针称为指向const常量的指针,表示函数对该指针指向的数据是“只读”的。const常量的声明格式为:const 类型标识符 变量标识符=初始化数据;或类型标识符 const 变量标识符=初始化数据;指向const常量的指针,其声明格式为:const 类型标识符 *指针变量标识符;或类型标识符 const *指针变量标识符;应用举例:void Display(const int *pa,int n);/终端显示。“只读”函数。void Selection(int *pa,int n);/选择排序。非“只读”函数。const int a5= 1,3,2,5,4;/const常量数组。int b5= 1,3,2,5,4;/非const常量数组。Selection(a,5);/非法!Display(a,5);/合法。Selection(b,5);/合法。Display(b,5);/合法。指针是复合类型,它有两个值,一个是指针自身的数据(无符号整型值),表示地址,另一个是它指向的数据(指针基类型值),是指针间接引用的对象。const修饰的部分不同,意义不同。如果const修饰的是指针指向的数据,那么它是在修饰在修饰函数,表示以该指针为参量的函数对该指针指向的数据是“只读”的,该指针就是指向const常量的指针。对这样的指针,有下面几点需要认识: 数据无论是不是const常量型,都可以传址给指向const常量的指针。例如上面的调用语句Display(b,5),其中数组b并不是const常量型的。用实参和形参的关系来表示便是const int *pa=b; 但是const常量型数据只能传址给代表函数“只读”性质的指向const常量的指针。可以把带有指向const常量指针参量的函数比作一个认真办事的人,什么样的事情交给他,他都认真处理,而一件需要认真处理的事情一定要交给他。 因为指向const常量的指针表示的是函数的“只读”性质,而不是指针本身的数据的只读性质,所以与const常量不同,这种指针不必初始化。例如:const int *pa=b;可以分解为const int *pa;pa=b;而且对它本身的数据可以改变,例如:const int *pa;pa=b;/指向数组bpa=a;/又指向数组a 传递性。指向const常量的指针表示的是函数的“只读”性质,任何数据传址给这样的指针,不仅具有这种指针参量的函数对该数据是“只读”的,而且该函数调用的其它函数对该数据也是“只读”的,这就是说,指向const常量的指针只能传值给同类指针。仿佛一个认真办事的人,什么事情交给他,他都认真处理,不仅如此,他所寻求的合作伙伴,也一定是认真办事的人。例如:void Display(const int*pa,int n);/输出函数。int Sum(const int* ps,int n)/求和函数。Display(ps,n);/ const int* pa=ps; 引入const修饰符之后,任何函数,如果对某一指针参量指向的数据是“只读”的,都必须把该指针参量限定为指向const常量的指针,表明该函数的“只读”性质,以保证const常量型数据通过传址调用该函数,被编译器检错。如果const修饰的是指针本身,那么它是在修饰数据,表示指针本身的值const常量型的,这样的指针称为const常量指针。与const常量型一样,const常量指针必须初始化,而且其值不能改变。声明格式为:类型标识符 *const指针标识符=初始化数据;例如:const int a5= 1,3,2,5,4;/const常量数组。int b5= 1,3,2,5,4;/非const常量数组。int c5= 1,3,2,5,4;/非const常量数组。int *const pc=b;/const常量指针必须初始化。pc=c;/非法!const常量指针的值不能改变。因为const常量指针不是限定函数,对它指向的数据可以修改,所以不能把const常量型数据的地址赋给const常量指针。例如:pc0=10;/合法。int *const ps=a;/非法。3运算符函数与指针3.1运算符函数运算符处理的对象如果是语言内置基本类型(整型、浮点型、字符型等),它的意义是内定的。如果是用户定义的结构,意义就是待定的。以结构数组的查找Find为例:struct Student/用户结构long ID;double g;/ID表示学号,g表示成绩。;typedef Student Type;/形式数据类型T Find(const Type *pa,int n,Type item)/查找。for(int i=0;in;i+)if(pai=item)/待定。return(i);return(-1);阴影部分中的关系运算对象是结构,系统无法确定是比较学号还是比较成绩。我们可以进入函数体直接改造:if(pai.g=item.g) 不过这是权宜之计。结构各式各样,数组的处理程序数不胜数,都一一改造吗?这显然不符合代码的复用性要求。解决这个问题的方法是运算符重载。运算符重载的思路是,首先把以内置类型为处理对象的运算符从观念上看作函数,然后通过对该函数重载,扩大运算符的操作对象。这样的函数称为运算符函数,运算符函数名为operator ,代表某一种运算符。运算符重载就是运算符函数重载。以比较运算符“=”为例,首先把该运算符从观念上看作一个函数:int operator=(int,int);于是两个整数的比较运算表达式x=y被看作运算符函数的调用Operator= (x,y然后反过来,重载运算符函数operator=:bool operator= (Student a,Student b)/重载运算符函数的定义 return(a.g=b.g); /比较成绩重载之后,运算符“=”的处理对象就增加了结构Student。具体的执行过程是,编译器如果发现内部无法解释的运算符处理,就会去寻找重载的运算符函数,找到之后,调用这个函数。例如,函数Find中的表达式pai=item被编译器替换成operator=(pai,item)运算符重载是函数的一种调用形式。对用户自定义类型重载的运算符运算,可以等价地表示为运算符函数的调用,但是内部基本类型的运算符运算是内定的,不能实际的替换成运算符函数的调用形式,例如,不能把表达式5=6替换为operator=(5,6)。3.2引用运算符重载函数的参量不能全部是语言内置基本类型,至少要有一个是用户定义类型,以免和内置基本类型的运算符冲突。举例说明,如果我们想把双浮点型扩展为求余运算%的对象,那么下面的运算符重载是不行的:double operator%(double a,double b)/非法!参量缺少用户类型return(long)a%(long)b);因为这样的运算符函数与浮点型基本运算冲突,使编译器失去了检错能力。一个可行的方法是,首先创建一个用户结构类型表示双浮点型:struct DOUBLE/创建一个用户结构类型表示双浮点型double f;然后运算符重载如下:double operator%(DOUBLE A,double b)/参量A是用户类型return(long)A.f%(long)b);应用举例:DOUBLE x=13.1;double y=4.5;cout(x%y);/结果是1可是,新的问题出现了。运算符函数是值调用,值调用的实质是参数复制,即实参复制给形参,而运算符函数的参数主要是结构,结构可以很大,参数复制既占空间,又费时间,加之,运算符的使用频率高,综合起来考虑,为运算符函数的值调用而需要付出的时空代价是令人难以承受的。解决这个问题的方法自然想到地址调用,因为不论参数多大,其地址需要的单元只是2个字节或4个字节(因系统而定),效率有了保证。可是地址调用的参量都是指针,而指针是语言内置类型,在上一节最后我们已经指出,运算符函数的参量至少要有一个是用户类型,因此下面的运算符重载是非法的。bool operator= (const Student*a,const Student*b)/非法! return(a-g=b-g);/比较成绩 我们可以做如下改进,使某一个参量不是内置类型:bool operator= (Student a,const Student*b) 引导学生自主学习,在实践中培养创新型人才1研究背景 近年来,计算机硬件,特别是多核技术及嵌入式技术的发展,给计算机相关研究带来了新的契机,同时也对计算机相关课程的教学产生了深远影响。多核技术的发展使未来大多数的软件开发都将以多核芯片为基础硬件平台,因此一直习惯于“顺序软件”的开发者必须要找出新的软件开发方法。全球的软件开发者此时都站在同一起跑线上,对高校学生而言亦是如此。 在“英特尔多核大学计划”的推动下,截至2009年,国内已有102所高校开设了多核相关课程,每年有超过2万名学生从中受益。多核及嵌入式相关课程有着知识点多、覆盖面广、实践性强、学习难度大的特点。由于课时数、实验条件等原因的限制,教师在有限的课堂上很难面面俱到,只能对重要的知识点或方法进行讲解分析,这就对学生的自主学习能力提出了更高要求。具备自主学习能力是培养学生创新能力的前提,因此我们在多核及嵌入式的课程教学中进行了一些有益的探索,立足学生的发展,强调学生自主学习,强调教师在学生自主学习中发挥引导作用。本文以武汉大学多核架构及编程技术课程为例,以英特尔®学术社区为自主学习平台,分享我们在课程改革中的一点经验。 2多核架构及编程技术课程设计 2.1课程简介 武汉大学多核架构及编程技术本科生课程针对通信工程、电子信息工程等专业学生开设,在第6学期开课,共72学时(理论36学时、实验36学时),3个学分。该课程获得2007年度“教育部-英特尔精品课程”立项项目。 我们以“多核架构及编程技术在本学科领域”为主线开展教学活动,使学生掌握多核体系的基本原理、典型设计策略,全面深入地了解多核体系架构,完善知识结构,能在多核平台上进行并行编程,会使用相关工具进行程序优化和调试,理解多核技术对其他学科的影响。 2.2课程分析 该课程覆盖硬件和软件两大模块,知识覆盖面广,包括了多核芯片与传统单核微处理及对称多处理器的架构比较、并行体系与多核体系架构、典型多核芯片、嵌入式多核芯片、多核平台结构与芯片组支持技术、多核操作系统、多核系统软件对并行编程的支持、多线程编程对多核架构的支持、Windows(Linux)系统下多核多线程编程、OpenMP对多核的支持、编译优化、性能评测、英特尔多核编程工具、案例分析等众多内容,实验部分包括8个基础实验、8个提高实验、课程设计等内容。要在有限的学时内保质保量地达成教学目标,需要加强培养学生的自主学习能力。我们总结出多核课程自主学习的三要素,即通过多种途径激发学生的学习兴趣,选择一个良好的自主学习平台,教师在学生自主学习过程中发挥引导作用。 3教学过程 3.1激发兴趣 多核技术是全新的,要改变编程思维方式,入门难度很大,因此学生容易产生畏难心理,更不用说有什么兴趣了。我们采用三步走的方式激发学生的学习兴趣,取得了比较理想的效果。 第一步,感性认识向理性认识的转变。教师通过对图像处理案例等本学科领域内容(如512地震堰塞湖的遥感监测)的分析,将其与单核单线程、单核多线程的处理结果相比较,说明多核技术的应用场合及效果,让学生从感性上认同教学内容并产生探秘心理,即“知其然”。 第二步,理性认识的深化。教师一方面可以在课堂上讲解多核架构的硬件,分析说明为什么可以并行处理数据,即让学生“知其所以然”;另一方面采用校企联合办学的办法,请英特尔工程师来校讲座,增加学生与企业研究人员面对面交流的机会,通过探讨加深对知识的了解。近两年,英特尔工程师来校讲座实践了4次,同学们参与热情非常高,提问也非常积极。 第三步,理性认识向兴趣的转化。经过约20课时的学习实践,学生已经初步具备了多核编程能力。在这一阶段,我们在课堂上播放从英特尔学术社区中下载的国外知名教授或资深研究员的知识点讲解视频,如Clay Breshears教授讲解的“锁”,加深学生对知识点的理解,激发学生的学习兴趣。在这一时期,课程组与学院其他课题组的老师联系,请他们为学生出一些实践课题,让学生学以致用。 随后的时间中,课程组教师每周拿出固定的时间为学生当面答疑,同时也对邮件问题给予及时回复,敦促学生加快学习进度。 3.2搭建平台 为了更好地开展自主学习,学生需要自主学习平台。我们除了建设课程网站外,还把英特尔学术社区作为学生自主学习的主要平台。该社区平台提供了全球知名高校相关课程的课件、工程师的演讲视频、最新的研究动态文档、在线研讨工具、各类多核编程软件等资料,为学生提供了丰富的课外学习资源和宽广的交流平台,其中教师讲课视频和心得体会最受学生欢迎。同时,英特尔软件网络推出了“英特尔黑带软件开发人员奖励计划”,对参与社区活动、分享教学经验和学习体会的师生给予奖励,更是极大地激励了参与者的积极性,使师生们在英特尔学术社区平台学习知识、交流分享、追求创新,进一步丰富了社区内容,形成了人与平台之间的良性互动。 3.3教师引导 “不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之;学至于行之而止矣”,强调的是实践的重要性。“授之以鱼,不如授之以渔”,强调的是学习过程中方法的重要性,也就是本文所述的自主学习能力。多核技术是一门实践性很强的课程,培养学生实际编程和解决问题的能力尤为重要,而自主学习能力则是实践能力得以提高的重要前提。 在多核及嵌入式知识的学习中,课程组以课堂为载体,引导学生质疑、调查、探究,促进学生在教师指导下主动地、富有个性地学习。教师把学习方法教给学生,把学习的主动权交给学生,着重培养学生的独立性和自主性。我们主要从以下几个方面展开教学: 第一,提高教师的专业修养。要使学生保持高度的学习兴趣并能够投入学习活动,教师的表率、带动和引导作用最为关键。我们通过参加各类学术活动关注最新技术的发展动向,并将它们及时引入课堂。如在Intel® Threading Building Blocks(英特尔®线程构建模块TBB)发布之初,我们就在课堂上与学生展开讨论,分析其与以往编程工具的差异。课程组教师不断学习,参加了英特尔公司组织的各类培训和技术论坛、讲座,如在线Webniars,吸取、消化最新指示,并传授给学生。这使学生深切感受到自己正处在本类知识的历史发展阶段,提高了对这些知识的关注程度,也使学生知道对知识的学习不能仅局限于课堂,还应关注行业发展。 第二,选择一个合适的学习平台。英特尔®学术社区(http:/ //zh-cn/academic/)以内容丰富、技术氛围浓著称,全球的专家及高校老师在此进行技术交流和讨论。学生目前已经习惯到这个平台上学习,查找资料。据我们调查,学生对这个平台保持良好兴趣的原因主要有以下几项: 可以获得各类技术文档及英特尔编程工具 能得到英特尔工程师的实时、长期、固定指导 可以观看很多知识点讲解的视频 可以跟踪某项技术进展情况 可以联系某国际知名教授,请其作自己的研究生导师 另外,我们还选择了moblin社区(/)作为学生学习的平台。Moblin是一个开源社区,学生可以在这里获取千万个应用的源代码,进行学习和修改,这对于提高深层次程序系统设计能力有很大的帮助促进作用。我们还选取了一些moblin开源社区上的项目,学生可以在一学期内完成,作为实践项目和毕业设计题目,很受学生欢迎。    1名师心得如何才能成为一名优秀的、深受学生拥戴的人民教师,下面是我个人的一点体会。(1) 良好的个人素质和人格魅力作为一名教师,具备丰富的学科知识和社会阅历、拥有敏锐的思维、良好的精神状态、一口标准的普通话、谈吐流利,语言流畅、整洁的仪态和仪表等是成为受学生尊敬和爱戴的人民教师的基本条件。(2) 教师的职责高校教育要以人为本,育人为先。何谓“教育”?“教育”不仅仅是一般的意义上的教书,知识的传授,更重要的是育人,教育的最终目的是培养和造就“人格”,即要教会学生“做事”,也要教会学生“做人”。在教学过程中,课程知识的传授、训练学生的能力(学习、动手、科研等)固然重要,但更重要的是教会学生做人的品质,树立远大的理想,在传授知识的同时,尤其要引导学生修炼品德、拓展心智、陶冶情操、完善人格、开阔视野、充实底蕴,全面提升自己综合素质,为社会培养具有广博知识、高尚品德、专业特长的复合型人才。(3) 树立强烈的事业心和责任心教师是人类灵魂的工程师,是一个受人尊重而崇高的职业,作为一名教师,要有一种对本质工作的热爱、对学生的热情、对教学工作的投入和责任心,尊重学生、热爱学生、理解学生、关心学生、引导学生,加强与学生的交流沟通,建立教学相长的互动平等关系,才能达到教书育人和自我完善的目标。(4) 对教学艺术的探索教学也是一门艺术,升华到教学艺术这一概念不仅意味着教学方法技巧,还意味着我们在教学中追求的更高境界:像艺术追求感情上的共鸣一样,在教学中追求思维上的共鸣。我们在教学工作中逐渐领会到教学艺术的一些内涵:这就是良好的台风、节奏感、层次感、和谐感、想象力、对学生的引导方法、心态调节、从以理服人到思维共鸣等等。教学艺术的提高将使学生觉得听课是一种享受,这才是提高学生学习积极性的根本途径。2名师寄语教育是一项创造双重精神幸福的崇高事业,是实现人才培养目标的关键因素,是人类进化的永恒主题之一。教师的天职是教学,教师不仅要注重培养自己的师表风范,用自己的人格魅力去感染和教育学生,还应增强责任感和紧迫感,砥砺操守、志存高远,秉承“学高为师,身正为范”的古训,真正把教育作为自己终身为之奋斗的事业。将学生教育成为自强自立、社会需要的有用之才是我们每个教师的责任。现代社会是一个“学习型社会”,不继续学习就会掉队,甚至被时代抛弃。希望同学们确立终生学习的观念,向实践学、向书本学、向前辈学,要学会读书、学会学习、学会做人、学会做事、学会思考、学会思维、学会思想。不断更新自己的知识,增长才干,与时俱进。生命与责任同在,卓越与创新同行。3名师名言教育者的使命就是不断学习,不断创新,不断探索,不断攀登。人生的价值在于开拓与奉献,只有勇于开拓创新,经历磨难与奋斗,获得成功就是价值。只有愿意把自己的才华与精力奉献于事业,获得社会的认可就是人生最大的幸福。 摘要:本文通过教学案例解释了“Why”教学理念的先进性,并介绍了我院所设计的一个知识点教学模型以及在计算机网络技术及应用课程中的教学实践。关键词本文来自:计算机毕业网 :教学质量;教学设计;“What+How+Why”教学理念在教学过程中,同样的教学内容,教师不同,教学效果有时悬殊很大。除了教师的课堂表达,讲课感染力的差异外,更深层的原因是对知识的教学设计有着很大的不同。“Why”教学是一种对每个知识点强调原理讲解的教学设计。下面我们以“计算机网络技术及应用”课程的教学为例,介绍知识点的“Why”教学设计。1“Why”教学设计:双绞线的制作在讲解五类双绞线的制作时,一般只讲授双绞线的排序,如图1所示。图1 TIA/EIA568B标准线序采用“Why”教学设计,需要讲解以下几个方面的问题:(1) 双绞线问题。全双工通信需要两条线就可以,为什么要用两对线?我们可以从串扰平衡电路来讲解使用对线的原因。电通信容易受到电磁干扰,用一条导线传输数据,是通过导线上电压信号的取值传输数据,电磁干扰会引起数据的传送错误。如果采用对线传输数据,则是取两条线上的电压差来表示数据,在遇到电磁干扰的情况下,虽然每条线上的电压会发生变化,但两条线的电压差是不变的,这就减少了干扰的影响,提高了网络的通信性能。(2) 线序的颜色问题。标准的排线有一个线序的要求,即从左到右,1号和2号分别是白橙色和橙色的两条线,3号和6号必须为白绿和绿色线。这是为什么呢?其他的线序可以吗?从电通信的原理讲,两端的线序只要相同,即可通信。但是,橙色和绿色的两对线双绞的最紧,因此抗串扰性能要优于另外的两对线。因此,在双绞线的制作中,应该采用TIA/EIA568B标准线序进行排序。在教学过程中,对那些抽象的和难于理解的知识点采用“Why”教学设计,不仅丰富了教学内容,而且很好地促进了学生对知识的理解和掌握,起到了很好的教学效果。2知识点教学模型与教学资源共享在一个学科领域中,知识往往可以分解为大量的知识点,这些知识点被组织为一系列的课程。对于同一门课程,不同层次的学校、不同的学科讲解的内容、教学要求和教学目标也不尽相同,因此要实现课程层面的共享和重用往往是困难的。例如,在北大和清华非常优秀的课程,拿到一个普通院校来讲授显然是不合适的。2.1知识点教学建模任何一门课程都可以分解为一系列知识点,根据“What+How+Why”教学理念,结合教育心理学和现代认知心理学等研究成果,建立知识点教学模型,来规范课程建设和教学,所建立的知识点教学模型如图2所示。图2 知识点学习模型在知识点学习模型中,知识分组用于确定知识属于哪一个分组,便于知识的查找和管理。知识类型则根据知识分类来确定,不同的学科领域,其知识体系的分类不同,不同的知识类型对应不同的认知结构。例如,对于算法类知识,其认知结构主要包括算法描述,正确性,时间复杂度,算法代码等几个方面,它是学习每一个算法都应该掌握的知识侧面。前导知识和后继知识对应一个知识点的前导知识点集合和后续知识点集合,表达了知识点之间特定的认知顺序关系。相关知识点表达了和该知识点相关的知识点集合,它是构成“Why”教学设计的主要手段。通过知识点学习模型可以很好的实现“What+How+Why”教学理念,符合认知发展学习理论以及基于知识分类的学习,同时知识点的框架结构还便于知识的维持和联想学习。2.2教学资源建设和共享对每一个知识点,建设开发相应的学习资源,这些学习资源通过PPT、动画或视频来展示和讲解那些抽象的知识点。学习资源不同于一般的媒体文件,它遵循严格的教学设计,融入“What+How+Why”教学理念。通过学习资源管理系统LMS,为任课教师的教学设计提供教学素材,使得先进的教学设计在不同的课程中得到实现和共享。3 教学效果近几年来,在我校的计算机基础课程教学建设中,一直推行“What+How+Why”教学理念,教学效果良好。在教材建设中,也秉承了这样的一种写作理念,得到了许多同行老师的认可。课题组老师多次被邀请在2005、2006年的全国计算机基础教学研讨会和教师培训班上介绍其课程建设经验和授课示范,效果良好。2006年,课题组的计算机网络技术及应用、Web技术导论等五部教材被列入教育部普通高校“十一五”国家级规划教材。 参考文献1 韦小满等译. 学习理论:教育的视角(第三版)M. 南京:江苏教育出版社,2003.2 施良方. 学习论M. 北京:人民教育出版社,2001.3 周金浪. 教育学M. 上海教育出版社,2006.4 卢炳惠,张学斌. 试论知识的类型与教学J. 南华大学学报(社会科学版),2001,(1):73-76. 摘要:教师富有个性、创造性的语言艺术是课堂教学过程中的思想、灵魂。教师的课堂语言是否得体、是否能准确地传递信息、是否有助于对学生思维能力的培养等,将关系到一节课的成败。本文介绍了作者多年一线教学实践的经验。关键词本文来自:计算机毕业网 :信息技术;语言;艺术;设计1有声语言的艺术设计教师的有声语言主要是指以声音为载体,以词汇为建筑材料,以语法为结构规律,通过叙述、描写、议论、说明和抒情等来传授知识、分享经验、交流思想的一种语言形式。它是师生在教育教学活动中使用最频繁、信息流通最便利的交流工具。1.1有声语言的艺术设计需要准确规范、严谨精练诗人海涅说:“言语之力,大到可以从坟墓唤醒死人,可以把生者活埋,把侏儒变成巨无霸,把巨无霸彻底打垮。”准确规范、严谨精练的有声语言是科学地传递教学信息的保证。信息技术课堂中,教师在叙述概念或讲述操作方法时,一定要认真推敲语言的准确性和规范性,发音准确,用词精炼,做到“字正腔圆、珠落玉盘”。否则会使学生产生疑问或误解,甚至会犯下科学性错误。例如,在Word教学中,“选定一段文字”不能与“选择一段文字”等同;“窗口”不能与“对话框”等同;“状态栏”不能与“任务栏”混为一谈等,以免发生歧义。再如,“存储器”不能说成“储存器”;鼠标操作中的“单击”不能说成“点击”。因为“存储器”、“单击”都是计算机中的常用术语,而“储存器”、“点击”等词语都是生活化的语言,虽然学生能够理解,但不规范。1.2有声语言的艺术设计需要富有情感和鼓动性古人说:“感人心者,莫先于情。”可见富有激情的语言才能感人,才能广泛地调动学生的学习积极性和激发学生的求知欲,才能在课堂内产生一种强烈的号召力和凝聚力,使学生的思想高度集中到黑板上、教师身上、书本上,而不至于使学生“身在曹营心在汉”。教师的教学语言必须感情充沛、富有激励性和感染力,真正做到“晓之以理,动之以情”、“寓理于情,情理相融”,形成个人情感与教学情感相吻合的“情感曲线”。例如在讲“网页制作”一章时,为了激起学生的学习热情,教师可以采用这样一段开场白:“打开电脑,连接上Internet,轻轻一点鼠标,便可坐看世界风云变幻,尽揽别人的网页成果。然而,对于生活在信息时代的你,难道还能任凭风浪起、我自不开船吗?你是否也想在Internet上一展自己的风采?是否也想在互联网上营建一个属于自己的数字家园。从现在开始,我将和同学们一起步入一个激动人心的章节-网页制作的殿堂!”。教师的这段慷慨陈词,定会激起学生的感情波澜。1.3有声语言的艺术设计需要具有幽默和趣味性有位名人这样说过:“幽默是智慧的闪现。”这说明如果老师能恰当地运用幽默和趣味性的语言,可以大大地开发学生智力,很好地陶冶学生的情操。幽默趣味的课堂语言,不仅使学生在发笑的同时领会了其中蕴含的智慧和哲理,而且活跃了课堂气氛,消除了紧张和疲劳,从而使学生在轻松愉快的气氛中学到了老师传授的知识。信息技术课堂中,在讲授基本概念和理论性的教学内容的时候,教师往往感觉棘手,学生感到抽象、枯燥,记忆较困难。如果教师运用幽默风趣的语言,就能化抽象为具体,化枯燥为轻松,使学生在轻松愉快的气氛中掌握知识。如讲到“压缩”与“解压”的概念时,可以借助于上街买篮球时为方便携带就放气、买回来以后要用时便充气的问题来帮助学生的理解。再如,在机房上课时,经常有个别学生在偷偷地玩游戏,教师走到他跟前时,他便把窗口最小化,当然教师还是很容易从任务栏中发现。但在学习了任务栏的隐藏操作后学生再如法炮制,教师就不那么容易发现了。针对这一情况,教师可以用一句调侃性的话教育学生:“咱们班有个别同学真的变成了知识越多越反动了!利用任务栏的隐藏功能,将打开的游戏窗口隐藏起来不让老师发现,希望同学们千万不要违背了科学的真谛呀!”这样一句幽默又语重心长的话,不仅能够使那些玩游戏的学生在微笑中诚恳地接受批评教育,同时还能够培养学生对科学的态度。幽默和风趣的语言在调动学生的学习积极性和激发学生的学习兴趣及启迪学生的智慧等方面,起到了举足轻重的作用。它们也就好像课堂的“味精”一样,如果投放适量的话,一定会使课堂“这锅菜”其味无穷,充满活力。当然,我们提倡课堂语言应该富有趣味性,而不是要教师专门讲笑话,哗众取宠来迎合学生,否则就会使学生觉得课堂语言过于轻佻、庸俗、油滑,这样不仅大大地偏离了主题,而且也达不到教学目的。1.4有声语言的艺术设计需要比喻恰当、富有启发学记中说“君子之教,喻也。”在信息技术教学中巧用比喻,把问题由抽象变得具体、由复杂变得简单、由高深难懂变得浅显通俗、由枯燥乏味变得生动有趣。例如在学习程序设计语言过程中,讲授赋值语句(LET语句)的应用时,有这样一个题目:已知变量A和B中分别存放了数值10和20,现在要求交换这两个变量中的数值,即变量A存放的数据是20,而变量B存放的数据是10。学生往往用以下语句完成:LET A=BLET B=A经过运行发现交换的结果:A的值是20,B的值也是20,没有达到交换两个变量的数值的目的。为了使学生掌握这个在编写程序时经常要用到的基本方法,有的教师采用了如下的比喻方法:“已知A杯中装有红色液体,B杯中装有蓝色液体,请将两杯中的液体互相交换”。当然学生会想到使用下面的方法完成这个任务:(1) 取一个空杯子C;(2) 将A杯中的红色液体注入C杯;(3) 将B杯中的蓝色液体注入A杯;(4) 再将C杯中的红色液体注入B杯。通过这样的操作,交换好了两个杯子中的液体。虽然学生能够知道需要设置一个新的变量来完成交换任务,并编写出交换两个变量的数据的程序:LET C=ALET A=BLET B=A但这个比喻不科学、不贴切。因为当将A杯中的红色液体注入C杯后;A杯中的红色液体已经没有了,而把变量A中的数值赋给变量C后,变量A中的数值没有消失。如果采用下面的比喻,就显得很科学、很自然,使学生对赋值语句的功能理解更深刻。“已知A磁带录的是周杰伦的歌曲,B磁带录的是宋祖英的歌曲,现在要交换两盒磁带中的内容”。根据日常生活中的经验,学生很自然想到借助于第三盒空白磁带,其交换步骤如下:(1) 将A磁带的内容复制到C磁带;(2) 将B磁带的内容复制到A磁带;(3) 将C磁带的内容复制到B磁带。学生很容易编写出交换两个变量数据的程序来。这样的比喻贴切、富有启发性,可以大大地激发学生的学习兴趣,从而达到寓教于乐的目的。1.5有声语言的艺术设计需要教师言语表达适时进行变化教师变化讲话的节奏、语调、音量、速度能使教学变得生动活泼,不枯燥乏味。声音的变化在吸引学生注意力方面具有显著效果,可以用来暗示不听讲或影响其他学生听讲的学生。讲话速度的变化也是引起注意的一个因素,当教师讲话速度发生变化时,已分散的注意会重新集中起来。教师还应注意适宜的停顿,因为教师讲话中的适宜停顿也会传递一定的信息,也是引起注意的一种有效方式,另外还能给学生留出思考、消化和巩固所学知识的时间。同时教师还应该应用不同的语调来表达不同的感情。如: “你操作的好?”表示询问或怀疑;“你操作的好!”表示肯定或赞赏;“你操作的好?!”表示嘲讽或轻蔑。2无声语言的艺术设计恰到好处地应用肢体语言、面部语言、形象设计等无声语言可以滋润学生的心田,感染学生的情绪,激发学生的求知欲。2.1肢体语言的艺术设计肢体语言是对有声语言的有机补充,恰当地运用肢体语言有时可以表达出用口头语言不能表达出来的信息,收到“此时无声胜有声”的效果。信息技术课堂中,教师的手势在不同的空间区域里的活动具有不同的意义:在肩部以上则往往表示宏大、张扬、理想的感情;在肩部至腹部之间则往往表示平静、稳重、开阔的心境;在腹部以下则往往表示不悦、鄙夷、厌恶、憎恨的情感。因此教师准确、协调的手势设计就是:其活动的上限不超过头,下限不超过腰。教师在进入教室的过程中,步伐稳健、镇定和自信,速度适中,使学生充满信心。如果一个教师一节课始终站在讲台上授课,课堂会显得单调而又沉闷。而教师若能适当地在教室内走动,课堂就会变得轻松而富有朝气,能够促进师生双边教学活动。例如,在提出问题时,教师若走下讲台,在学生中间提问,则会使学生感受到老师和他们共同探讨、共同参与的和谐气氛,从而调动学生的积极性和创造性;在学生上机练习时,教师应当徐步而行,观察学生完成情况并进行个别辅导,对做得较好的学生,用手轻拍他的肩膀,对他点点头,以示表扬和鼓励,会使教学效果达到意想不到的效果。2.2面部语言的艺术设计俗话说:“眉目传情。”教师面部表情的变化也是师生交流的重要方面。面带微笑,目光慈爱、柔和并透着严肃环视整个教室,传递给学生的信息是:教师对学生的尊重和慈爱,使课堂气氛既严肃又轻松、活泼。同时教师在课堂上的目光分布影响着学生参与课堂活动的积极程度。美国教育学博士约翰克勒观察了19位教师在课堂上15分钟时间内凝视时间超过30秒的注目方向,发现教师平均用44%的时间直视前方,用38%的时间与右边的学生交换目光,而光顾左边学生的时间只有18%。这样,左边的学生常常会感到受冷落或不被重视。教师在课堂中的目光分配要合理。教师可采取扫视、虚视的目光,使目光滑过教室的各个角落,环视速度不能过慢;上课时目光中心在倒数第二三排位置,这样可 摘要:本文通过一个例子来说明结合实例教学法和启发式教学方法的教学过程,旨在为C语言程序设计课程提供一些有益的教学方法。关键词本文来自:计算机毕业网 :程序设计;实例教学;启发式教学1传统的实例教学方法在一些教学改革的文章中,都提出了通过实例来进行教学,并且取得了较好的效果。这些文章中,所列的例子分为两类:趣味程序1-3和实例程序4-6。趣味程序的例子可以激发学生的学习积极性,从而在实例中掌握C语言的语法和程序设计方法,因而趣味程序的例子的选择至关重要。对于实例程序例子来说,分为章节实例和综合实例。其中章节实例是为了章节教学服务,而综合实例是在学习整个课程后,提高学生能力,培养团队合作能力服务。这些章节和综合实例的选择中,有些是前者与后者有联系,这可以省去理解实例的时间,使学生掌握软件开发的能力;有些是前者与后者没有必然联系,这样就要做每个实例前,必须理解实例花费时间。这种方法的优点是可以根据教学内容,选择合适的例子,以使学生掌握所学内容。但是在每次举例子时,没有很好的、更深入的挖掘实例中的一些深层的知识点,这样浪费了实例资源。并且,每个实例要花许多时间来理解实例,这给有限的课堂教学时间带来了浪费。在此,我们通过较少的实例,并将此实例用不同章节的内容实现,这样既可以节约分析实例的时间,又加深了对C语言的语法的理解和程序设计方法的训练。为了解决上面的问题,我们可以在每个实例的基础上,对学生多提问,以进行扩展实例,以复习前面学过的知识,也可以巩固当前学习的内容。下面通过一个简单的例子说明具体的过程。在C语言程序设计时,许多教课书都用“Hello World”这个程序作为入门程序,此例只是让我们对C语言程序有一个初步认识,但是在此后的教学中,我们已经忘记了这个入门的例子,其实还可以挖掘出更多新的知识点。2启发式教学在我们所见的教材中,“Hello World”例子除了在讲C语言入门的知识外,别的地方没有出现。而我们以它为例进行启发式教学,让学生做更多的练习,以加深对语法和程序设计方法的理解,并掌握其课程的精髓。我们采用两种方法:第一种是针对同一问题使用

温馨提示

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

评论

0/150

提交评论