2009年4月的存档

看一本书把耳朵捂起来

2009年4月27日星期一

小保尔:

       爸爸曾经向你保证不教你“乱七八糟”的东西,但是那时候爸爸确实打了个伏笔哦。因为在科学和工程技术领域我们也秉承“存在即合理”。其实以下两条原则更适用于选择学不学、学什么和学多少。

这两条原则是:

第一、   你需要;

第二、   你知道学了有好处。

小保尔,告诉你哦,从此以后你会越来越多的听到大人向你说这样的话:“某某东西很重要,你要好好学……”,比如典型的例句是:“外语很重要,你要好好学。”或“数学很重要,你要好好学……”。因为爸爸知道,不管是孩子还是大人,听多了这种句式都会厌烦的。所以在你学会把耳朵捂起来之前,爸爸请你记住:你需要的东西你一定能学会,不用去理会别人认为它们有多难(还记得小马过河的故事吗……)因为你不比别的孩子差;第2、你确实知道有什么用场的东西那才是“学了没坏处”的东西呢……

明天开始,我们就要开始学习你的新课程《中小学生电脑操作与程序设计》了。来看看它的目录:八皇后、迷宫、骑马游世界、链表和约瑟夫、树和背包、一笔画、追捕罪犯、四种颜色就够了。这本书使用的是BASIC,其实爸爸直到上大学才学习也这本书里要讲的内容呢,比如:数据结构、链表、栈、树、图。哈,爸爸感到兴奋的是,你甚至在现在这个时候,用BASIC就可以清楚、有趣的学习到以前的(爸爸这一代)人上了大学才能学会的东西呀。

如果你真的对这些东西感兴趣,相信你会对这些信息学的东西说:我需要。


写给下一代电脑工程师小保尔3–小海龟Turtle归来

2009年4月6日星期一

“有些事情是人类永远也无法改变的”米开朗基罗
  比如圆周率……(–
Baoba

小保尔:这一次的开始我就想要你知道四个人的名字哦,他们是:
·  达芬奇Leonardo
·  拉斐尔 Raphael
·  多朗太罗[1](Donatello
·  米开朗基罗 Michaelangelo

他们是意大利文艺复兴时期的四位杰出人物(艺术家)吗?

答案是:

是……(Baoba)No,

不是……(Baoba)No

正确答案应该是:“Not Given”(条件不足!)

—-因为条件不足,答案就不确定、不唯一。(记住这句话了吗?)

以上题目的答案应该是:它们()是四只宠物乌龟的名字哦“Teenage Mutant Ninja Turtles”直译为少年变异忍者龟,因为它们四个原本为宠物龟(不要虐待宠物哦!),后被遗弃便被冲到下水道,并受到核电厂辐射的影响而产生异变成为人形。这四只“忍者神龟”的命名分别为李昂纳多.达芬奇”LEONARDO)、拉菲尔RAPHAEL多納太罗DONATELLO米开朗基罗MICHELANGELO,都是文艺复兴时期的著名艺术家的名字哦。呵呵,这才是Baoba要的标准答案哦。

小保尔,如果你有兴趣就到互联网(InterNet)上去下载电影《忍者神龟》来看看吧。告诉你哦,小保尔,因特网(InterNet)上不但可以找到好看的电影和好听的歌曲,还可以用来学习非常有用的知识,上一次为了给你制作柯西(Koch又译柯克)雪花,我在InterNet上用搜索引擎(Google.com)查Basic资料的时候发现了一个另我欣喜的事,我的一位好朋友“小海龟”(Mr.Turtle)回来了。

小海龟是我们学生时代使用的计算机语言Logo的呢称呢。它现在有了新名字,叫Small BasicTurtle(中译:海龟/乌龟)

你看,“小海龟”在绘制柯西雪花呢。

                 小海龟在画柯西雪花

     图片url: http://dongren.cn/NextProgramers/smallbasic/smallbasic_256koch.gif

就象你知道的,我们所生活的人类社会,在不同的国家和地区人们使用各种各样的语言或方言,比如在中国(北京等地区)大家通常说汉语(普通话),而在北美(美国和加拿大)等地区大家通常说英语;我们通常不能笼统地说哪种语言好,哪种语言不好。

我们今天要介绍的新朋友就是微软公司为小朋友(主要是中、小学生)制作的编程序语言:Small Basic (中译:小Basic 儿童Basic)。官方公布的软件和资料在这里:http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx

Computer Programming is defined as the process of creating computer software using programming languages.  Just like we speak and understand English or Spanish or French, computers can understand programs written in certain languages.  These are called programming languages.  In the beginning there were just a few programming languages and they were really easy to learn and comprehend.  But as computers and software became more and more sophisticated, programming languages evolved fast, gathering more complex concepts along the way.  As a result most modern programming languages and their concepts are pretty challenging to grasp by a beginner.  This fact has started discouraging people from learning or attempting computer programming.

      因为网上的资料都是英文的,鉴于你的英文基础所以我再多介绍几句。
       ……随着计算机硬件和软件种类的日益庞杂(复杂多样),程序语言的发展也呈现加速状态,随之带来的就是概念越来越复杂。结果就导致对初学者越难以驾驭和掌握。……
       Basic的出现就是为了推翻横亘在初学者(包括小朋友)和(高级的)计算机编程语言之间的樊篱(bring down the barrier)……还为了(学习者和工程师们)能重拾编程的快乐,小Basic(SmallBasic)项目就是致力于计算机学习和应用的简单(SmallSimple)、趣味(Funny)和激情(Active)的回归。

小保尔,我们今天认识了忍者神龟和我的朋友Mr.Turtle(海龟先生);在下面的编程例题中我们还得认识一位中国古代的科学家,祖充之。因为我们上次画柯西雪花的时候用到的π(读做Pai四声)的近似值355/113(“密率”),是祖充之(公元429公元500)老师发现的。
     并且祖冲之在他的儿子祖暅的协助下利用“割圆”的方法算出
π的值在3.1415926 3.1415927之间。这个π的记忆方法请见新语丝网的另一篇博客《圆周率》:http://xysblogs.org/drkevin/archives/4056,“山巅一寺一壶酒,尔乐,苦煞吾,把酒吃,酒杀尔,杀不死,乐尔乐……”你只要记住前几位就已经足够了。如果你实在记不住这么一大串数字,那也没什么关系,因为我们还可以查资料,或者干脆让计算机帮我们“计算”出来吧。

下面一段程序的例子就是让我们在“小海龟”的帮助下,还原和重复 祖充之父子的“割圆”法计算圆周率π的方法:

你看:小海龟在不知道疲倦地“割圆”不止呢……

小海龟在用“割圆”法求PI的近似值

算法思路:

如果设圆的半径为1;

显然的:图中A(红线)既对角线长度为 squareroot(2) (2的算术平方根)
则有 a(小写-蓝色线重合的部分)长度为:
a
=squareroot(2)-1         ‘: squareroot是求平方根的函数, a=2的平方根 -1
又因为:b*b+b*b=a*a           ‘这里根据勾股定理–“几何既勾股”这个我们有单独讲过哦……
所以:b=squareroot(a*a/2)

–这又是一个迭代调用的算法哦,下略。

小海龟割圆后给出的答案如下:

PI在内接正四边形(正方形)的时候,粗略等于2.8284271247462
       PI
在内接正八边形的时候粗略等于:3.06147458920712

……

      当用内接正262割圆时,PI的值约等于3.1415 9265 3589 7932 3846 2643 3832 7950 288

     “割圆法”算π值人类从祖冲之所在的公元5世纪到1630年,才得出(小数点后)39位数字(因为那时候没有计算机的帮助哦)。值得一提的是德国数学家德耳夫全力以赴的计算π值,几乎用了他毕生的精力,据说德耳夫在1610年的一天夜里,终于用圆的内接正262边形求得π的小数点后35位数字,并且写到了草稿纸上。人们在第二天早晨的时候发现德耳夫已经去世了,并且发现了这个π的近似值(他毕生的成果……)。于是大家决定,为数学家德耳夫树立了一块巨大的墓碑,上面写上了德耳夫计算的这个π的近似值:

    Π = 3.1415 9265 3589 7932 3846 2643 3832 7950 288

小保尔,现在你知道科学是一件严肃的事情,有些人(比如数学家)会用毕生的精力去探询她的足迹、揭示她的奥秘。

学习(科学)同时也会伴随着不少快乐的事哦,比如:小Basic就是为了让小朋友们学得快乐,让程序员们重拾编程的乐趣才组织开发的项目哦,如果有兴趣,大家就多到支持论坛去查询、了解或学习它的用法吧:http://community.winsupersite.com/blogs/paul/archive/2008/11/18/microsoft-small-basic.aspx

      比起汽车、火车和飞机,小Basic简单得象拉菲尔(神龟之一)和小孩子们喜欢的滑板……简单、趣味,学习起来好上手;成人、孩子、业余程序员和专业工程师都会喜欢上它。

小保尔:神龟拉菲尔擅长玩滑板,米开朗基罗精于使用双截棍,……小保尔,你有什么兴趣和爱好,要注意至少要培养一两个哦。

小保尔,Mr.Turtle(海龟)先生真的很神奇、很有趣(funny)吧?它不但能帮助你获得以前科学家花费毕生精力才揭示的数学和科学奥秘,而且还能和你一起玩哦。

最后附送一个小游戏:“接球游戏”给你玩,边学边玩,希望你学得起劲儿、玩的愉快。游戏源码放在网上,拷贝下来不但可以玩,还可以修改哦。

接球游戏:(Baoba改进版—-这个比Small Basic 手册上的有些改进)
http://smallbasic.com/program/?FHT926

用“割圆法”求π值的程序也放在这里:
http://smallbasic.com/program/?TJB740


Donatello^ 1987年《忍者神龟》在中国大陆播出时被改名为另一位伟大人物的名字爱因斯坦

忍者神龟:它的英文名“Teenage Mutant Ninja Turtles”直译为是少年变异忍者龟,因为它们原本为宠物龟,后被遗弃便被冲到下水道,并受到核电厂辐射的影响而产生异变成为人形。这四只忍者神龟的命名分别为李昂纳多.达芬奇”LEONARDO)、拉菲尔RAPHAEL多納太罗DONATELLO米开朗基罗MICHELANGELO,都是文艺复兴时期的著名艺术家名称。


送给爱雪的孩子“柯西雪花”–还是《写给下一代的电脑工程师》

2009年4月2日星期四

331,东北(辽宁地区)下了一场雪,小保尔在外公家度假刚好赶上这场雪。小保尔的外公打电话回来给我们说:小保尔看到下雪了,高兴得跑出去玩雪;他说雪花很大,“象假的一样大”。

可惜春天的雪花落到地上就融化掉了。小保尔玩不成雪,很失望……


小保尔:爸爸送你“柯西雪花”怎么样?

因为刚好上一次说过要给你讲一讲Basic语言,所以这次爸爸就用Basic语言给你做“柯西雪花”(Koch又译:柯克雪花)。

先上图:

http://dongren.cn/NextProgramers/Koch/koch2snow2.gif

Koch Snows1

 

 

“柯西雪花”漂亮吗?

作图、学习语言、和编写程序的道理其实相通的呢。那就是一笔一笔的画,一句一句的学和一行一行的写呀。以后记得吃东西也要这样子,要一口一口的吃哦。

 

小保尔,西方人讲事情喜欢直奔主题,而我们中国人喜欢含蓄,还喜欢从源头讲起,最后再“画龙点睛”哦!介绍有关Basic和谭浩强(老师)的故事今天我们话说从头好吗?

 

BASIC[1]Beginner’s All-purpose Symbolic Instruction Code,初学者指令符号编码),意思就是初学者”使用的计算机语言。

小保尔,中国人介绍一个人首先会从他的年龄开始,谭浩强老师1934年生人,你算算他今年(2009)已经有多大年纪了?对了,他比你爷爷还大十多岁呢。所以对于你来讲,你可以叫谭爷爷了(按中国人的习惯)。

谭浩强是我(Baoba)的老师哦,因为我的Basic语言就是从他的书上学来的;虽然我没有面对面上过谭浩强的课,但我们有句古话(老师说的)是说:“三人行,则必有我师”哦。

虽然Mr.谭写了很多计算机(尤其是计算机语言)的教材,教过很多学生。但是即便如此,关于谭老师也有负面的说法哦(你知道名人、明星很少人可以做到没有丑闻的,这个也属正常,对吧?)。比如就有人说:他写的BASIC是在毒害青少年。

小保尔,你只听说过黄色小说能毒害青少年,怎么BASIC语言也会毒害青少年呢?原来,他们的观点是:BASIC是非结构化语言,学了以后,养成不好的习惯,学了还不如不学。第2:BASIC太简单,功能不够强大,学了也没有什么用。

以上是有些人的观点,这两个观点不代表别的电脑工程师和程序员,也不代表我的观点。我告诉你啊小保尔,BASIC语言的非结构化问题早已经解决了,现在大家用的BASIC语言(尤其是你用到的VB.Net)几乎都是第三代结构化的BASIC了。
至于另外一个瞧不起BASIC的理论:BASIC太简单,功能不够强大,学了也没有什么用。让我来讲一讲谭老师说过的比喻来驳斥这种观点吧:小保尔都知道的,在大马路上有各种各样的汽车;它们包括公共汽车、小汽车、大卡车、三轮车、自行车,摩托车…… 哪种车最好?公物人员(尤其是大领导)们会说小汽车最好,因为它既快又舒服;公交部门说,公共汽车最好,因为它载客量大,能减少交通拥挤的程度;搬家公司说,大卡车最好,装东西最多;老百姓(比如进城里打工的“打工仔”)会说,我骑自行车上班最好、最便宜,不用买汽油,大街小巷都能走。如果领导们有了小汽车,就要取消自行车,大家肯定会不高兴,对吗?因为他脱离了实际,脱离了国情,没能符合普通人的习惯。

老师的第一本计算机教育的书(处女作)BASIC语言》一书发行量超过1200万册,创科技书籍发行量世界纪录。这本书直到现在仍在以每年30万册至40万册的速度增加。谭浩强一生(到现在为止将近一生哦)一共写了一百多本计算机的书,总(发行)量超过2200万册。所以说:在中国计算机界谭浩强老师的学生最多,懂计算机的人很少不知道谭浩强这个名字。

现在你也知道了Mr.谭哦,小保尔。你佩服这样的人吗?如果是的话,那就好好学吧。

 

至少在下一次,在《我的朋友小海龟》这篇文章里你还要继续和这个Basic打交道,让你们领教一下Basic的强大威力吧!

最后不要忘记要自己领略一下“柯西雪花”的Basic程序哦。“人间大炮一级准备……!发射!!”呵呵……让我们留住今年春天的“柯西雪花”,让彩色的雪花在你的小心灵里漫天飞舞吧!

彩色雪花
http://dongren.cn/NextProgramers/Koch/ColorSnows1.jpg

 

 

 

 

 

[1] BASICBeginner’s All-purpose Symbolic Instruction Code,又译培基),意思就是初学者的全方位符式指令代码,是一种设计给初学者使用的程序设计语言BASIC是一种解译式的程式语言,在完成编写后不须经由编译连结等手续即可执行,但如果需要单独执行时仍然需要将其建立成执行档。还要留些资料你自己阅读哦。http://zh.wikipedia.org/w/index.php?title=BASIC&variant=zh-hans