您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > 为什么要这样设计这节课
为什么要这样设计这节课计算机语言是空手套白狼,是无中生有的一门技术。试想一下,没有软件的计算机能干啥?就是一堆废铁。是软件让计算机有了灵魂。而软件是用计算机语言创造的。我们先有了需求,才去寻找解决方案。计算机的发展仍然沿袭了这个路线。计算机的研发原因,仅仅是要提高计算弹道数据的速度。但人们发现,计算机能快速而且不知疲倦的执行事先编制好的程序,最初的程序是用低级的机器语言编写的,工作量大、容易出错。为什么不用一些能看得懂的符号来编写程序呢?那好吧,我们做一个符号和机器语言转换的软件吧,这样,我们可以用符号编写程序,让这个软件自动转换成机器语言。哇,成功了!这就是汇编语言。嘿,哥们,这汇编还是太难,我不想知道寄存器、堆栈是怎么回事,你能不能再简单点,让我别操作这些玩意了,还有这些命令能不能更像点人类的语言?什么?你成功了?!这就是高级语言。“可你这种语言偏向于计算,你看我的计算机语言可以很方便的实现多媒体技术。”“我的更好……”于是各种计算机高级语言犹如雨后春笋般冒了出来。“这里面怎么没我什么事,好歹我也开发了一个视窗系统啊?”盖茨不高兴了。“还真没你什么事,你的视窗系统就是计算机语言的一个产品而已!”盖茨听了,转身向人们推荐他的视窗和office了。“哇,确实好,学电脑还是要学视窗和office。”盖茨听了,开始笑了。“你们吵什么?到我这儿都一样,还不都是0和1?”电脑忍不住了。“到你那儿是除了0就是1,可你知道吗?我的语言,能让程序员用很少的代码实现一个复杂的功能?”“是吗?那你操作一下计算机的硬件我看看?”C忍不住了。“呵呵!”汇编笑而不语。“好了,别吵了,你们各有各的长处,但精髓不都一样吗?”LOGO的作者坐不住了。“你也敢谈精髓?”大家对logo语言的作者冷嘲热讽,“你有面向对象的思想吗?”“你们真的认为面向对象是计算机语言的精髓?”大家一下子沉默了。“到底是授之以鱼呢,还是授之以渔呢?”我愁眉苦脸,“到底该教什么给学生呢?”“嘿,那个说计算机语言的精髓都一样的,过来!”LOGO语言的作者屁颠屁颠的跑过来。“你说来听听。”“好的。”大师喝了口水。“计算机语言最终是要翻译成0和1的,但为了让人们很容易的掌握,往往用我们人类的语言来表述,但把人类语言表示时态的东西都去掉了,干脆只用一些关键字来表述,比如:前进用FD来表示。”“也就你这个语言,有前进这个命令,天下还有哪种语言有这种命令?再说,你这种语言能开发出视窗那样牛逼的软件吗?”我反驳道。“你不是要教给学生语言的精髓吗?何必在乎这种语言能干什么!”大师开始翻白眼了。“好吧,你继续说。”我无语了。“我开发这个语言的时候,为了能实现在屏幕上画出各种各样的图形,我在屋子里走来走去,还让我儿子帮忙,给我下命令,并记录我走过的轨迹,我们把所有的命令都写下来,发现只保留前进和左转就行了,但为了方便,我们又加了后退和右转。”“后来,又发现还需要擦掉轨迹的命令。”“这个我知道原因,因为需要把无用的轨迹去掉,好重新开始,但为什么加了回到原点的命令?”我问。“你要是模拟过画图形的步骤,你会发现,想一下子回到原点很不容易,距离和角度很难测量。”“哦,是的。”我赞同。“然后,我和儿子就开始用这几个命令画我们能想到的图形,我们发现有些时候,不需要留下轨迹,比如:一段时断时续的线。所以我们又加了抬笔和落笔的命令。”“为什么不用跳这个命令?不也一样吗?”我有点疑问。“当然可以了。”大师赞许的看了看我,继续说道。“有一次儿子恶作剧,非要我画一条10000段不连续的线,可把我累坏了,你想啊,前进40抬笔前进40落笔,我得写10000次,于是,我又加了重复命令,让刚才的那几个命令重复了10000次,儿子第二次的恶作剧落空了。但他又想出来另一个恶作剧,让我画10000条这样的线,没办法,我又让重复能够嵌套。”“你儿子挺逗的。”我赞道。“那是,还有更好玩的呢,儿子发现这样的恶作剧不能生效的时候,竟然想出来另一个办法,让我每天都画一个小房子,你也知道,画一个小房子也很费时间的,我总不能再加画小房子的命令吧?”“那你是怎么解决的?”我问。“我开始设想,让使用者自己可以新增没有的命令。”“你是说过程吗?”“是的。”大师点头。“我发现引入过程的概念后,使用者方便多了。但儿子又给我出了一个难题,每次让我画的房子的尺寸各不相同。”“哈哈!”我开始幸灾乐祸了。“这也难不倒我,我又更改了我的设计,允许使用者在过程中可以加入参数,使用过程的时候,再具体告诉过程里面的参数到底是多少。”“哦!”我开始佩服大师了。“有了这些基本的命令,加上重复命令和过程的定义,我们可以画出任何一种图形,后来儿子想让图形更漂亮,他希望图形是彩色的。”“嗯,你就又加了着色的命令。”我接话道。“是的。”“可你为什么要让海龟走到里面去?”我不解。“你上美术课的时候,给图形着色,不就是要在图形里面吗?”大师也不解,很明显,他一定认为我的智商有问题,“记住:计算机语言其实也要符合我们对世界的认知,其实学习计算机语言就是学会用计算机语言来描述我们身边的世界。”“那你为啥要抬笔进去?”我开始挑刺。“这个嘛,其实不抬笔也行哈。”大师开始局促起来。“还有了,为啥我画不出一个黑框的红色图形?”我开始有点得意了。“是你没好好学习嘛!”大师画了一个黑框的红色图形。“哈哈!”有你这么笨的吗?这么麻烦!我冷嘲热讽道。“这个嘛……”大师有点脸红了。“其实,每种语言都有不完善的地方。”大师开始辩解道,“所以才会不断推出后续版本,其实这对于你教学生来说,也不是什么坏事,你可以让学生提出自己的困惑和对这个软件的改进意见啊,这样才能让他们养成独立思考的能力。”“是的。”我对我刚才的得意有点脸红了。“你看,其他计算机语言的精髓是不是也就是这些?”大师开始炫耀了,“而且我们刚才的对话,就是回顾了我的研发过程,你在教学的时候,完全可以让学生从一个研发者的角度来学习,这样更容易理解计算机语言的精髓。”“对啊!”我不禁击掌道。“知道我为什么给这个软件起名叫LOGO吗?”“为什么?”我反问道,“LOGO是什么意思?”“思想。”大师说罢,飘然而去。好吧,我承认上面的对话是我杜撰的。我在教学logo语言的过程中,有了些许感悟。一、让学生学会用计算机语言来描述我们身边的世界。计算机语言和我们人类使用的语言一样,都是对世界的描述。【课例1】师:请你写出画10段不连续的线段的命令。生:fd20pufd20pdfd20pufd20pdfd20pufd20pdfd20pufd20pd……师:请说出这段命令的规律生:把“fd20pufd20pd”这段命令重复10次师:这是中文的描述,如果你来开发logo语言,你打算怎么描述它。生:……【课例2】师:我们已经学习了重复命令,请说出下列语句的意思。Repeat30000[起床睡觉]生:起床和睡觉重复了30000次生:过了30000天生:这个人挂了生:人的一生……师:如果用这个语句来描述人的一生,合适吗?生:合适生:不合适,有的人年龄比这个长。生:不合适,没考虑午休的情况。……二、重思想,轻语法语法很重要,写错了,程序无法运行。但语法又一点也不重要,因为我们能随时查阅。我在教学的过程中,从来不让学生记忆命令,我把所有的命令及意义都写到黑板上,学生随时可以抬头查阅。但其中的思想,却无从查阅。【课例3】在学习完本章后。师:说说你学了logo语言后的收获。生:……师:你能利用学习logo语言的收获,编写一套无人战机的命令集吗?学生经过讨论,发现:无人战机的命令集完全可以参照logo语言的思想。基本命令集:起飞、飞行、转弯、降落、侦查、攻击。重复命令(以实现对某一目标的重复侦查或攻击)、重复命令的嵌套(对某一目标的地毯式轰炸)过程(以实现执行新的命令)带参数的过程(以实现对不同目标的攻击)三、鼓励质疑【课例4】学生通过实验,总结出logo语言的命令集。师:我们看看作者设计的命令集,对比一下,和你设计的有何不同?生:为什么没有跳的命令,这样可以不留下痕迹啊?师:作者是用抬笔和落笔来实现的。生:跳不更简单吗?师:对啊,我也觉得跳更简单。【课例5】生:老师,我发现,画不出来一个黑框的红颜色正方形,为什么?师:我也不知道。生:是不是设计的原因?师:应该是。另一个学生:能画出来,我画给你们看……生:我觉得很别扭!这个地方设计的不好。师:你的想法很好。质疑是创新的起点,一切科学发现都是从疑问开始的。我们要呵护学生的质疑态度,让他们更自信、快乐。正如我曾在课例中讲到的,学习logo语言后,无法做出我们心目中的软件。看起来logo语言的用处不大,但却是了解计算机语言的一个窗口,是学习其他更高级语言的基础,体会其中的精髓,我们一定能对计算机语言有深入的认识,并做出自己心目中的软件。
本文标题:为什么要这样设计这节课
链接地址:https://www.777doc.com/doc-2728911 .html