游戏+数学+程序员=小学生也懂的Scratch : 编程是什么?难不难?

欢迎大家来到「纸飞机烧脑大本营」的Scratch编程课堂。

在进入正式的课程前,我想首先来回答很多人,特别是很多家长和孩子们,都关心的两个问题,那就是:

  1. 编程究竟是什么?
  2. 编程到底难不难?
Logo.jpg

先来谈谈第一个问题。

编程究竟是什么?

在今天,“编程”已经成为了一个很多人都耳熟能详的名词了,或者你以前也接触过,或者你仅仅是听说过,并正准备通过Scratch来学习怎样编程。但无论如何,在进入到我们的正式的Scratch课程之前,稍微的关心一下,什么是编程,是不无裨益的。

当然,要想非常理论化的说清楚这个概念,既不容易,也不是我们这个课程的目标,更为重要的是,我向来觉得,编程和中国人之间,是天然亲和的。

因为,在我们从小所接受的那种系统化的教育 ,尤其是数学的教育中,所经过的种种训练,和习得的种种技巧,本身就有着一种非常强烈的,强调机械化程式化的倾向,这一点,和西方数学强调以演绎为核心的思路截然不同,虽然近些年来,也一直因其相对显得刻板,为一些人诟病,将其视为是导致中国缺乏顶级创造力的原因之一(当然,我并不承认这点),但这确确实实是中国式教育的特质所在。

而且,更为重要的是,在这样耳濡目染下出来的中国人,几乎就可以无障碍的一步就跨进编程的世界中。

拿加法的学习来做例子。

我们先是在一年级,通过大量的反复的练习,死记硬背住了10以内所有的个位数和数的加法的结果(别怀疑,实际上你能不假思索的说出7+8=15,所依靠的就是死记硬背住所得来的“知识”,而不是什么逻辑);

之后,我们开始被教会使用“竖式”,来进行更为复杂的多位的运算,而全部的运算技巧,总起来,就是下面的这三句“口诀”:

每位对齐,从个位算起,逢10进1

而一些所谓的“速算”,则很多是在这个口诀上的一些修补和改变,比如,让你从高位算起,等等,但无论如何,其本质仍然是口诀,而当我们依据这些口诀,反复的进行着训练时,我们其实就已经开始了一次次非常完美的构建在头脑和笔头上的编程实践!

对的,你没有看错,这就是编程,你以前把他们叫做口诀,叫做套路,叫做规则,......,那么,从今天开始,你则可以开始,大声的把通过这些“知识 + 口诀”的方式,来解决问题的过程,叫做编程了。

你还是不信?好的,那么,不妨我们来根据这个规则,写个程序试试。

随机两位竖式加法过程演示系统.gif

要稍微说一点的是,上面的这个演示,在个位数加法方面,我没有采用“记忆”的模式来实现,而是设计了一个看上去更加“演绎”一些的方法(或者叫更加愚蠢更合适?)即:

所谓a + b,就是在按序排列的整数列表中,找到a后,再往后b个数,所对应的那个数

这貌似更加符合自然数中,关于加法的本来定义,但实际却并不高效。更为高效的,其实还是我们所熟悉的那种“记忆模式”,即:可以通过一张包含从0到9,每个数字和数字之间的加法和的“巨大”的“表格”,来代替我们在传统教学中,所要求学生熟练记住的那部分“知识”,然后,加法则演化成为了在这一表格中的一种检索过程,这在实际的编程中,其是是一个非常常见的提高效率的策略,我们在后续的Scratch,甚至其他编程的学习实践中,也会经常的碰到,即:

以空间换时间,用存储来替代运算

此外,还有一点也要在这里声明下,在以二进制为核心的计算机体系中,我们实际上是不会用这个方式来实现加法的,因此,这就仅仅是一个“正确”的演示,但却足以说明,我们从一年级开始,花了不少时间和精力,来学习加法,本质上并不仅仅是在习得一个技能,也是在不断的熟悉如何用一种非常机械化的方式,来按部就班的解决问题的方法。

不免稍微吐槽一下,现在的某些教育,天天在想着,如何让小孩子更快的度过这个阶段,因为觉得这个实在不够“素质”,不够“编程思维”,但究竟什么是“编程思维”?“编程思维”又仅仅是体现在上几门计算机编程课,甚至是上一些看上去高大上的课程上么?我倒觉得未必,有时候,“编程思维”,可能就隐藏在这一次次的看似简单的训练之中。

编程到底难不难?

那么,编程究竟难不难呢?这里的答案,就恐怕并不能让所有的“初学者”们感到满意了,因为:

编程真的很难!

那么,编程又难在哪儿呢?

大家听到最多的答案,可能会说是“算法”,也因为很多算法,确实的和数学密切相关,以至于很多人甚至会模糊编程和数学的界限,觉得编程 = 数学,将编程的难,等同于了数学的难。

数学之于编程,当然非常重要,要不然,我也不会把这一系列的课程,统一定名为:《游戏+数学+程序员=小学生也懂的Scratch》了。

但编程的难,却不仅仅体现在了数学上,之所以选用数学,纯粹是因为一些简单的编程,所涉及到的相关数学背景知识,也比较简单直接而已。事实上,如果我们要将背景知识这一项,也加进去,那么编程的难,几乎会是全方位的:开发一个包含碰撞的游戏时,我们能会遇到“力学”的难;开发一个光的演示程序时,又可能会遇到“光学”的难,等等等等。

因此,我觉得,有必要在这里,对这个“”,稍微的作下限制,并以此作为相关后续课程的基础。在我看来,很多时候,编程本身的难,和我们学习任何一种语言,不管是古文,还是英语时,所感受到的难,是非常一致的,他主要体现在:

编程,自有其自身的范式和给定的软硬件限定条件,因此,编程难就难在,我们经常要像一个战士一样,和这些范式以及限定条件进行战斗!

这也导致了,在很多情况下,对于某些问题的表达和实现,哪怕你在“逻辑”上知道,应该怎么做,但在现实编程过程中,可能还是会觉得无从下手,有些,甚至需要通过一些“非常高级”的技巧去解决。

这实际上,也正是我的这一个系列的编程课程,所试图真正需要向大家传达的东西,即希望通过这样的课程,让所有学习者了解:

  1. 作为一种语言的Scratch,是怎样来表达问题的,即他的编程范式是什么
  2. 当我们在开发中,遇到因为环境的限制所导致的问题时,我们是在当前环境所允许的前提下,挖掘出相应的解决方案的

现在来说这些,好像有点“虚幻”,就以市场上,如汗牛充栋般的Scratch教程中,几乎都会在一开始所给出的一个程序为例吧。

这个程序很简单,就是让大家在舞台(至于什么是舞台等等概念,后面的课程会详细讲,这里就不展开了)上,放上一个角色,并且,循例的喊出:“你好,世界!”(当然,也可能是其他)

你好世界.png

这有什么问题吗?对于这样的一个场景来说,当然没问题。但是,如果你现在不是这样的想法,而是希望像一般的文字冒险类的AVG游戏,或者一些MTV一样,直接在舞台上的某个区域,输出你想要显示的文字(比如,一些过场的文字),不想看起来很“Low”的,显示什么气泡,那我们又应该怎么做呢?

找遍Scratch所缺省提供的积木,我们只能非常遗憾的说一声:

这个缺省真的没有!

如果把这作为一个缺省环境所导致的限制,那么,在我们将这一功能构建出来的过程中,所需要的,就根本不是什么数学,不是什么算法,当然也不是什么物理,等等,而纯粹,就是一种:

基于当前环境所提供元素下的一种组合和创造

比如像这样:

《静夜思》和自定义文字显示引擎.gif

这个当然不像想起来那么容易,而在后面的课程中,我们也会一而再再而三的遇到这些东西。但这就是编程,既是他的难度所在,也是他的乐趣所在

最后,作为结语,我想引文史学家Douglas Bush曾说过的一句话,即:

在所有的课程中,现代教育的一个主要“罪行”是不要求学生们付出艰辛的努力。

在强调减负和快乐学习的今天,对于这样的一句话,我深以为然。

课后习题

1、 为什么在我们设计的加法中,按序的整数列表只包含0 ~ 18?

2、 在引入方程化问题解决方案之前,盈亏问题一直是小学应用题的一个重点,也是难点。那么,你能尝试整理出关于盈亏问题的机械化解决方案么?

3、 尝试第一次使用Scratch3(自己安装桌面版本或者是直接使用在线模式均可),编程的任务当然就是:在舞台上,显示一个角色,然后,在单击“开始”后,那个角色可以说出:“你好,Scratch”

想了解这3个问题的答案和更多的相关背景知识?关注并「私信」我,私信的内容是:s0,我已经准备好了,您还在等什么?

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容

  • Scratch少儿趣味编程 [日] 阿部和广 著;陶旭 译 Scratch是麻省理工学院设计开发的一款编程工具,是...
    少儿创客阅读 7,996评论 0 9
  • 都说好的人际关系,要重复的自我介绍,看见这一期的同学们的有心自我介绍,好感动,每个人都展示了自己最完美的一面,我也...
    苏静_省思阅读 573评论 0 0
  • 信息时代一个问题的提出其价值要远大于若干答案。学会提问在某种意义上可以说就是学会思考。《学会提问》这本书被誉为批判...
    入户锁门阅读 713评论 6 14
  • 主持人:周公若愚 40年的久别重逢,我们心潮澎湃,激情荡漾;15000天的翘首期盼,我们风尘仆仆,欢聚一堂! 今天...
    周公若愚阅读 288评论 0 0