scratch入门教程小猫走迷宫
有哪些适合初一孩子学习的编程书籍?
有哪些适合初一孩子学习的编程书籍?
感谢邀请。
其实我是个文科生,是苦逼的电商狗。也不会编程。除了会写一点vba外,真的啥都不会了。所以我只能强答了,谁叫我被邀请了呢……(狗头)
但就是因为我是个渣渣,难的编程书是一本也看不懂的。因此我可以推荐几本我看过的,感觉还不错的书籍。
编程语言类:
《啊哈C》,这本书写得已经再简单不过了,不过小孩子可能还是看不懂的,可能需要家长带一下,我都快奔30的人了,这本书上有些东西还是得仔细读。这本是讲C语言的。
《父与子的编程之旅:与小卡特一起学Python》,这本是外国人写得,写得就是爸爸和孩子一起学编程的书籍,书本内容,我个人感觉已经算是简单了,比《head first python》要简单。
编程语言我只看过python和C语言的书。另外《C primer Plus》,这本我看过,但是实在不建议。
算法类:《啊哈!算法!》
快速排序,冒泡排序,枚举一些基本的算法,我都是跟着这本书学的,但是学这本书的前提是要会C语言。
虽说是有点诙谐的书籍,但是没有家长带带,应该看着也是吃力的吧。
这里我推荐一下excel的vba,操作简单,界面可以直接用单元格画,还有各种控件。用来入门真得再好不过了。如果用python的pyqt,等你搞好界面,可能vba已经写好工具了。不过就是vba在面向对象上似乎有很大的缺点。(好像根本就没有啊!求大牛告知。)
如果想入门vba,建议这本书 → 《别怕,EXCEL VBA其实很简单》
如何看待有人培养孩子学习编程代码的行为?
谢邀。
----------------------------------------------------------------------------------
先关注,后收藏,总有一天用得着。
----------------------------------------------------------------------------------
1. 编程能培养孩子的哪些能力?
编程是一件很有趣的事情,我觉得主要能培养这些能力:
1) 构思能力。编程是一种“先写剧本,后看结果”的活动,这要求孩子先在脑子里进行构思并模拟出结果,然后再实际验证结果是不是符合预期。这是一个“异步”的过程,对于这种“都得事先想好”的方式,孩子一开始是不适应的,因为这违背他们的直觉。我见过很多父母给孩子买“迷宫书”,其实走迷宫也包含这个要素,有的孩子会先在脑子里走一遍,然后一次性下笔把路线画出来,这就是一种构思和模拟能力的体现。
2) 逻辑能力。编程需要考虑到各种情况,根据不同的情况作出不同的选择(分支),而且各个分支之间不能重复,也要避免遗漏某一种可能性造成程序的异常行为。在逻辑思维中有个词叫做MECE(Mutually Exclusive and Collectively Exhaustive),意思就是“相互排斥且整体完备”,也就是“不重复,不遗漏”。这是逻辑思维中的一个重要原则。举个例子,交通信号灯有红、黄、绿三种状态,如果你在写程序的时候只考虑了红灯和绿灯的情况,没考虑黄灯的情况,那就不“完备”了。此外,条件还会涉及到“与”、“或”、“非”等逻辑操作,比如说,“当信号灯为红色或黄色时”和“当信号灯不是绿色时”这两个描述应该是等价的,这对于孩子来说都是非常好的逻辑训练。
3) 模式识别能力。在编程中我们经常需要发现一些“可以重复”的单元,然后让计算机去重复它。举个简单的例子,计算(1 5)×4相当于(1 5) (1 5) (1 5) (1 5),其中每一个(1 5)就是一个可重复的单元,或者说是一种模式(pattern)。在解决实际问题时,模式并不都是显而易见的,有些模式是隐藏的,或者需要一定的变换才能出现的,这些都考验孩子观察力和识别力。
4) 分解问题的能力。一些复杂的问题都可以分解中等的问题,中等的问题还可以进一步分解成小问题。在解决复杂问题时,问题的分解是非常重要的,编程中我们也经常需要使用这样的方法。举个例子,比如要造一辆汽车,我们先要把汽车分解成很多小的部件,比如发动机、变速器等,这些部件还可以继续分解成更小的部件,我们需要先造好每一个小部件,再把他们组合起来变成一辆汽车。
5) 调试除错能力。任何工作都无法一蹴而就,是人总会犯错误,程序运行起来发现不对有问题,这时需要孩子能够找到出错的地方在哪里,并且将它改正。这里面包含的能力很多,比如抗挫折力、观察力、专注力等等。
总之,通过学习编程所培养的能力并不只是适用于编程,而是可以在很多方面派上用场。
关于不同年龄段学些什么,我只能大致给点建议:
4~6岁:玩一些编程小游戏,比如用指令控制一个角色到达终点,绕过一些障碍物,用循环来完成重复任务等等。我家哥哥玩过的不错的游戏包括:Box Island、LightBot Jr.等。7~9岁:用一些可视化编程工具来完成一些复杂的任务,比如Scratch、AppInventor等。也可以挑战一些复杂的编程游戏,比如Cargo-Bot、Human Resource Machine等。10岁 :学习一种真正的编程语言,比如Swift、Python等,尝试编写一些软件,初步学习算法、数据结构以及面向对象编程。也可以尝试一些硬件编程,比如用Arduino做个小机器人。上面这个建议中,我认为对于接受度好的孩子,可视化编程的部分可以跳过去,那个不是学编程的必经阶段。或者这么说,如果你是7~9岁才开始入门的,那么用Scratch之类的东西没问题,如果你4岁已经入门了,那么不必按部就班地上Scratch,直接奔着Swift、Python这种正经编程语言去就可以了——就好像学自行车不是一定要用辅助轮一样,有些孩子不用辅助轮反而学得快。
关于书,我只看过两本,一本叫《Scratch少儿趣味编程》(这本书最近还出了2),一本叫《父与子的编程之旅:与小卡特一起学Python》,都是国外引进的书。其他的书欢迎大家推荐吧,我只能说我看得比较少。
3. 家长不会编程,怎么教孩子学?
说实话,就4岁孩子玩的那些编程游戏,再不会编程的家长,看一眼也都能玩,怎么可能智商还不如4岁的娃呢?所以就启蒙来说,我不相信哪个家长不能胜任,主要有没有兴趣和时间。当然,到了正经学编程语言、算法和数据结构这些东西的阶段,如果家长不会编程,那肯定是辅导不了了,但反过来说,到了这个阶段,孩子都可以自主学习了,也可以通过交朋友、参加兴趣班等方式来学。
4. 现在社会上出现了一些编程培训机构,要不要让孩子去上?
目前编程培训相对于美术舞蹈之类的培训机构相对较少,主要原因也是老师相对比较少,市面上出现了一部分培训机构,能力参差不齐,要多对比多尝试。
5. 学编程是不是一定要数学好?
首先应该搞清楚的是,数学和算术是两码事,孩子对数字敏感不敏感,会不会做加减乘除,跟能不能学好编程关系不大,跟能不能学好数学关系也不大。
编程和数学确实是相辅相成的,因为编程所需要的很多能力和数学所需要的能力是相通的,比如逻辑完备性、模式识别等等;编程中的一些概念也是来自数学,比如函数;而到了学算法的时候,就会用到更多的数学思想和工具;至于最近特别火的机器学习,那更是纯数学模型。
对于这个问题,我只能说,编程和数学应该是相互促进的关系,学编程有利于更好地学数学,而学好数学当然也能够帮助你更好地学编程。
6. 学编程要花很多时间在屏幕前,担心影响视力怎么办?
这个问题很大程度上是个误会。
近视的最大影响因素在于基因,环境因素的影响相对较小。在环境因素中,目前认为相关性(并非因果性)最强的是户外活动时间,户外活动时间长有助于减少近视的发生率,这可能和阳光的刺激有关。除此之外,无论是看书的距离、姿势和时间、光线的明暗,以及电子屏幕的使用,都没有证据表明这些和近视的发生率有关,网上的很多文章其实都是吓唬人的,或者是犯了因果倒置、选择偏见(cherry picking)之类的逻辑错误。
因此,只要不是户外活动,无论是看书、玩玩具还是使用电子设备,这些都是划等号的,如果说认为看书就是比用电子设备要“不伤眼”,那只能是自欺欺人。我家不限制孩子使用电子设备的时间,基本管够,中间提醒休息,但会确保每天户外活动的时间。
7. 有哪些编程方面的比赛?
最有名的当然是国际信息学奥赛(IOI),这是仅次于国际数学奥赛的规模第二大的国际青少年学科竞赛,也是编程领域最高级别的国际比赛。在中国有相应的国家信息学奥赛(NOI),我在初中和高中的时候也参加过,成绩一般(算法没学好嘛)。这项比赛是偏重算法的,对数学的要求也比较高,但如果在NOI中拿奖,就会被很多一流大学mark。
除了编程比赛,还有很多机器人方面的比赛,不过我没太仔细了解过。我所知道的大概就是乐高赞助的国际机器人奥赛(IRO),中国应该也有相应的国内比赛。机器人比赛考察的能力更宽泛,但对算法的要求就比较低——或者说,信息学比赛更偏重Science,机器人比赛更偏重Engineering。至于大学会不会关注这类比赛,我就不清楚了。
比赛不是学习的目的,如果有能力的话去挑战一下也不错。