首页 > 范文大全 > 正文

论盲人摸象带给计算机教育的新思维

开篇:润墨网以专业的文秘视角,为您筛选了一篇论盲人摸象带给计算机教育的新思维范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:本文针对计算机教学的难点和普遍存在的重理轻文倾向,以盲人摸象的新解另辟蹊径,提出教学过程中应注重结合文、哲等学科以提升教学效果,实践教学证明,这样的思维方式有益于启发学生的跳跃思维,对传统的计算机教育有一定的启示意义。

关键词:盲人摸象;重理轻文;新思维

中图分类号:G642 文献标识码:B

1引言

随着计算机学科的发展进步,各种新颖的技术蓬勃发展,吸引了越来越多学校的教师、学生关注,竞争的资本相应地演变为具体技术掌握多少的评比。为了使学生在竞争中脱颖而出,也就迫切要求学校努力跟进比拼,在不断追逐的过程中,计算机的教与学之间暴露了一些不平衡现象。

对于教师而言,由于其本身素质积淀,直接获取信息能力、理解能力都比较强,从技术到技术的过渡并不需要很大周折。相对于教师全面综合地教授,对学生来说,其自身能力有限,底子薄,甚至于没有任何基础知识,直接接触、吸收消化起来就会感到艰涩,直接从技术层面入手困难重重,许多学生经过几年学习依旧跨不过门槛,实际动手能力很弱。

是什么导致了这样的结果?应该承认,教师在每节课前都会精心准备,力求生动细致,融会贯通,讲授必尽心竭力。但每门课程都会发现这样的现象,学生的入门过程及灵活实践是困难的。比如,在讲解C++语言编程的时候,一个首先的问题就是如何认识编程语言的数据类型。一般讲授时都会把它作为一个重点反复阐述,而学生虽在数学课上学了不少的数,也知道有整数、小数等等之分,但仍旧被计算机语言中的数据类型弄得一头雾水,不知所以。最后导致徘徊在门外很久,即便入门,很多学生很长时间内也都是“机械的”,“短视的”。本文针对这一教学实践碰到的普遍问题,试图通过探讨新的思维教学方法以改善教学效果。

2盲人摸象的新思维

2.1新解盲人摸象

盲人摸象,出自《大般涅经》三二:“其触牙者即言象形如芦菔根,其触耳者言象如箕,其触头者言象如石,其触鼻者言象如杵,其触脚者言象如木臼,其触脊者言象如床,其触腹者言象如Y,其触尾者言象如绳。”这个典故的大意是几个盲人将大象理解为他接收的信息所表达的样子,比喻对事物只凭片面的了解或局部的经验就乱加猜测,试图作出全面的判断。

这里,让我们换一个角度,重新审视这个成语的含义。首先,暂且摘去其贬义词的帽子,回归它的本源,就是简单的一件事情:几个盲人触摸大象,感受信息,表达理解。大象,作为一种客观存在,它本身所具有的性质已经固化了,并不为外界的思维所决定。下面就是我们认识大象的过程了,这个认识过程自然是包含对错多少的问题了。几个盲人各自按照自己不同的视角,接收信息,得出了各自认为正确的结论。这里还要注意一类人,在这个故事当中,视力正常的人,在哄然大笑的同时也表达了他们的想法,那就是大象似乎应该是几个盲人结论的有机综合才更合适一些,这样的结论才更靠谱。结果,这个成语就被视力正常的人引为片面观察的典范!其实,这个摸象的过程还可以继续深入下去,给视力正常的人空个位置出来,也请下场摸摸,说说大象“如”“何”?恐怕这个问题也并不好回答。把所有盲人的感受都综合了就是对了?好像是了。那对了多少?还有多少没说清的?啥时候能说清?有个答案倒是似乎更贴切一些,大象就是大象,四不像。另外的一个表述会更玄妙一些,“大音希声,大象无形”。明眼人都朦胧着,还苛求盲人看清么?那大象到底像什么?只有天知道!

现在,请跳出这个有些让人陷入诡辩的圈子,停止可能无休止的争论,回到现实认识的角度简单梳理一下。其实,从上面的分析可以看出,各色人群都给出了基于自身视角的判断,这些判断都有一定的依据,不能说其完全对错。站在某个角度看,这个判断恰恰是一种正确的体现,是有闪光之处的。这个闪光点在一定条件之下也是可以为我所用的。

2.2解困教学难点

如果上面的新解能够被接受的话,那么回到前文提到的教学难点,还是以对数据类型的理解作为突破口。以往的教学过程中,讲授着重是从计算机的观点入手,依托已有的数学知识,硬性地将数据类型向现实模型需求映射的角度理解,有些还是语焉不详。对于教师这是再自然不过的事情了,但对于学生则是一件痛苦的事情。刚学习编程的学生大多没有任何基础,对于事物的理解多是基于现实模型的,而计算机入门突出的一点就是向机器学习,学习它的思维模式,将人脑中所理解的思维模型映射为机器可以理解的编程模型,这个是需要功底火候的,并不是一朝一夕就可以解决的。而讲授的时候要求其从需求直接往类型上过渡,多数学生都要经历一定的时间,有些是死搬硬套,就着一锅夹生饭吃了下去;还有一些则始终不得要领,最后简单地斗争在了编程怎么会有这么多不可思议的类型上了。一些学生从这里开始就感觉计算机编程并没有想象中的那么有意思而逐渐拉开了距离。

教与学之间的差距是怎么产生的呢?这里拐个弯儿,先看看教材是如何编写的吧。大部分编程的教程,其立足的基点都是有经验的作者千锤百炼提纯而后生成的结果。为避免繁复使学生陷入混乱,为什么定义数据类型等探讨本质源泉的知识统统都被抹掉了,留下的仅是思考后的结果。这在编写教材的角度是可以理解的,毕竟不能苛求它一网打尽。下面就是讲授阶段了。教师在讲授的时候,站立的源点是已经有了数据类型,要做的就是讲授数据类型的用处和怎么用。如果回忆一下自身的感受,可能会发现,当初就是这样走过来的,思想斗争了一段也就接受了,再往前往深似乎是无意识的过滤掉了。当初的学习历程就是这样,现在的讲授历程也就是这样,以后的学习历程就还是这样。

讲授的书定了,讲授的对象定了,那差距就要从讲授的人身上找了。如果以往的教学方法效果不佳的话,换个思维也许会好些。现在重新来认识下我们的老朋友,数据类型。

为什么要有数据类型?类型是对系统的实体的一种抽象,它描述了某种实体的基础特性,包括值的表示以及对该值的操作。这个定义高度概括了类型的本质。和现实事物对比,这个概念不难理解。如果这个容易的话,看看下面的问题。为什么要有这么多不同的数据类型?为什么要有长度限制?……最后,为什么不能没有数据类型或者有个省事的方法,想什么就是什么,不要让程序员受累?大概最后一个问题的答案才是学习C++语言的学生最希望的。

所有这些问题的答案可以试试采用盲人摸象的思维方式来思考。从计算机的角度看,所有的信息都采用0、1组成的二进制流表达。面对滚滚而来的二进制流,如何才能明白它的意思?这首先就是一个切分的问题。切分之后,又该如何理解这些一段又一段的片段呢?所有这些就好比是大象,客观地摆在那里,如何认识就看理解方式了。这时就需要一个视角,即以什么样的视角来认识问题。一般,我们在定义时就指定了视角,也就是数据类型。接下来所有的操作都按照这个视角去理解。如果有什么需求的话,还有强制类型转化,这恰好是从另一个视角来看待,如果在精度范围内那就相当于看对了,反之就是看偏了。再想想C++的重要特征,继承与多态。子类与父类相互转换也可以理解为对于同一实体的不同视角。如果可以转换就是对了,否则就是类型匹配出错。现在换个新颖的角度。在并行编程库MPI,提供了许多适合于数据传输的自定义数据类型。发送者和接收者在进行消息传递的时候,并不需要类型严格匹配,相反,只要能保证数据正常传递,双方完全可以按照各自所定义的类型去看待数据。再来更广泛地看看数据类型的发展。C++作为强类型语言对于程序员的要求比较高,自然也比较精确,但很多时候用起来感到并不顺手,学习曲线比较长。后来逐渐发展出了各种各样的动态语言,比如JavaScript。也许是倾听到了程序员的心声,基本上各种动态语言都支持动态数据结构,好多都只有寥寥的几个,一般时候只要一个就包办了,采用的是“想要它是什么,它就应该是什么”的理念设计的,一下子将程序员从数据类型的“苦海”当中解放了出来。当然,数据类型演变到如今,各有所长,不能一概而论。