青少年编程学习路径

趣味编程按照学生的年龄,兴趣和知识掌握程度由易到难。

Scratch符合低龄儿童和程序初学者,简单的拖拽式和脚本语言编程使他们对编程产生兴趣。

App Inventor则是使学生们了解手机编程是怎么一会事情。

GameMaker以开发游戏为出发点,结合稍微复杂一点的拖拽式和脚本语言编程,使得青少年能开发出真正意义上的游戏。

Green Foot以Java语言为基础,富有游戏性和直观性的编程平台,使得学习Java这么高级语言不那么枯燥。
语言是实现想法以及与其他编程者交流的工具,当然趣味编程也是让青少年从拖拽式编程,逐步了解脚本语言,然后再深入到面向对象的高级语言。

学习路径选择参考

1.Scratch介绍

地址:https://scratch.mit.edu/

Scratch是一款由麻省理工学院开发的面向少年儿童的简易编程工具。这个软件的特点是:使用者可以不认识英文单词,也可以不会使用键盘,非常适合儿童使用。Scratch专为8至16岁的人设计,但被所有年龄段的人使用。数百万人正在各种环境中创建Scratch项目,包括家庭,学校,博物馆,图书馆和社区中心。

Scratch你可以很容易的去创造交互式故事情节,动画,游戏,而后你可以把你的创作,共享到其他网站上去!

Scratch能帮助年轻人提高创造性思维,系统性的逻辑思考,并协同工作—这些都是21世纪生活中必不可少的技能。

2.APP Inventor 介绍

地址:http://appinventor.mit.edu/explore/

APP Inventor 是一款麻省理工学院开发的面向所有人,包括少年儿童的移动设备编程工具。这个工具使用者可在不到30分钟的时间内开发并运行一个简单的适合智能手机和平板电脑的应用。

APP Inventor提供了基于模块的工具,可以在比传统的编程环境更短的时间内穿件复杂,影响力更强的应用程序。

App Inventor项目旨在通过赋予所有人,特别是年轻人从技术消费转向技术创造的能力,使移动端英语开发更简单化。

APP Inventor 不仅仅局限于普通移动端应用程序开发,更可用于与机器人集成,软硬件结合给编程提供了更多的乐趣和创新的可能性。APP Inventor现已可很好的控制乐高EV3机器人,以及通过蓝牙设备与Arduino通讯,为编程提供了无限可能。

3.Green Foot 介绍

地址:https://www.greenfoot.org/overview

Greenfoot是英国肯特大学编程教育工具组开发的的一个Java学习工具。

Greenfoot是一个用Java语言创建二维图形程序的框架和IDE的结合体,很适合初学者使用。

Greenfoot程序就是用标准的Java语言来编写,支持Java的全部特性,特别适合于练习可视化组件的编程。在Greenfoot中,对象的可视化和对象的交互性是关键。

4. GemeMaker 介绍

地址:https://www.yoyogames.com/gamemaker

GameMaker是一个商业性的游戏编程平台,该平台尽可能的简化了开发流程,并且提供了游戏编写开始所需要的所有资源。

GameMaker旨在让所有人都能开发游戏,消除了游戏制作的进入门槛。直观的“拖放式”开发环境,使用者可以在几分钟内启动并运行开发的游戏,而无需编写任何代码!

GameMaker的内置脚本式语言(GML)可帮助您学习如何编程,而不是在编码的最后端跳入。


少儿编程学什么

很多家长朋友让孩子学习编程,是为了培养逻辑思维能力。
毫无疑问,编程是一门非常适合用来锻炼逻辑思维的学科,因为编写程序的过程就是不断思考和运用逻辑的过程,所以学习编程对逻辑思维的培养非常有效和重要。
但是这些也恰巧是计算机最擅长的,未来在大数据和人工智能面前也是最容易被替代的。围棋已经是一个非常需要思维计算的项目了,但是也抵不过计算机那么强大的运算和分析。
那么什么是不容易被替代的呢?
人类的品质,探索的精神,创新的意识,文明的艺术,更高的思维方式。
我认为少儿编程重点不在于学习编程软件的使用和编程语言,而在于思维的锻炼。让孩子在愉悦的学习环境中,尽情的将自己内心的想法表达出来,通过项目制的学习方法,掌握分析问题,解决问题的能力。

以下将从3个方面阐述下,我认为少儿编程到底学什么?1.学什么?2.锻炼什么?3.培养什么?
1.学什么?

(1)学习软件使用方法
我们将会越来越多的使用各种软件来帮助我们更快的工作和解决问题。例如Word、Excel以及图像处理、视频剪辑软件等,而它们的使用在很多地方是相通的。

(2)学习编程知识(仅仅少儿编程学习中的一小部分)
简单的编程逻辑,代码的编写能力,条件判断,顺序执行,循环,变量,链表,函数等等一些列的编程知识和技巧。通过编程知识帮助我们设计一些小工具解决一些重复流程化的工作。

(3)数学应用
将很多数学的实际知识运用到一个个实实在在的项目上,将数字和计算赋予更高的生命力,而不是停留在试卷上答题。

2.锻炼什么?

1)自律性
我们大部分时间是生活再他律的状态,老师管着上课不能说话,作业要按时完成。编程可以很好的将他律变成自律,因为在程序世界的对与错不需要外人评说,程序会自己告诉你。
相信大家都知道要培养一个孩子的自律性,需要制定规则,培养孩子遵守规则的意思,以及适当的延迟满足感。
每一门编程语言都有自己的规则,程序的运行也将会完全按照规则进行执行。而编程通过严谨的逻辑判断和程序规则帮助孩子不断的提升自律性。编程做项目做游戏,都不是一蹴而就的,它需要一个过程。比如:想玩一款自己脑海里的游戏,需要先进行分析-制作-测试,然后才能进行游戏。这个过程可以很好延迟满足感。所以说编程学习可以锻炼孩子的自律性。自律性对孩子的成长和成绩都非常重要,至少在小学和初中来说一个自律的孩子学习成绩通常都很优秀。

(2)自主学习能力

我们获取知识越来越便捷。无论是大人还是孩子可以通过网络或者书籍获取各种知识,这个时候的差异化凸显就体现在自主学习能力上。自主学习能力表现在两个方面一是主动学习,二是高效的学习。在高中其间高效的学习非常重要,这也是成绩从自律性拉开的关键。一个自律的人可以很好的做到主动学习,但是学业压力非常重的时候如果没有好的学习方法,将会学习的非常辛苦而不见成效。而对于大学时代主动学习将是核心,大学时光孩子将会有大把的空余时间,如果可以做到主动学习那将是人生的一笔财富。
孩子在幼儿园、小学、初中、高中一直都有家长的督促,老师的管理,并且学习压力和负担也是逐渐上升。但是在这些阶段中,孩子却无需直面社会的挑战。然而大学这个最邻近社会挑战的学习生涯却可以很轻松,大学生活这对很多孩子来说无疑是的放松的天堂,无限的自由,可以睡到自然醒,可以没日没夜的游戏。在这个阶段,没有了家长的时刻督促也没有了老师严格的管理,但是这样轻松的四年一过去,就要迎接比高考还严峻的就业挑战和面临比高中还要辛苦的工作。
似乎这样的学业规划并不是那么的合理,但是现实的教育路径就是这样的。这就需要我们的孩子提前具备自律性和自主学习能力。才能在这样的路径下成为佼佼者。

(3)创造力

孩子的想象力是无穷的,哪怕是孩子的梦境也是一部有趣的动画。编程可以将孩子想法结合音乐、图画一同表达出来。可以通过游戏,动画等等一些列的方式将想法生动的表达出来。创新意识会在孩子不断将内心想法实现和表达的过程中得到很好的锻炼,不断的创新,不断的思考。具备了自律性和自主学习能力将会是社会的中心力量,在融合上创造力,那将会是未来的霸主,极具创新的人才。

(4)表达力
通过项目进行中的团队协作,锻炼沟通协调能力。将自己的项目进行讲解和展示不断的提升表达能力。自己创造的好游戏或者好项目更容易激发分享欲,通过这个的激发,让孩子不断的感觉到分享带来的乐趣,在不知不觉中锻炼表达力。

3.培养什么?

(1)计算思维
计算思维是一种具有逻辑性和抽象化的科学计算的解决问题的能力,计算思维有四个方面,他们分别是分层思维、模式识别、流程建设和抽象化。

分层思维
帮助我们将大项目拆分成若干个小项目,将复杂的问题拆解成一个个小问题,让其变成容易理解和解决的小部分。然后通过完成小项目,解决小问题从而完成大项目,解决复杂问题,使整体变得更加易懂和简单。

如同制作汉堡
将汉堡分层划分组成部分
最上层的圆面包
生菜
奶酪
火腿
烤肉
最下层的圆面包

模式识别
任何事物都有相似性,模式识别正是教会我们寻找到它们之间的共同点。从以往的经验中得到规律并且举一反三,利用这些相同的规律,去解决问题。当我们把大项目、复杂问题分层到小项目、小问题时,我们通常可以在小项目、小问题中找到模式和规律。
加法就很典型,每一步小加法我们都会运算。
9+10+8+6+7=?
我们的计算是分层为
9+10=19
19+8=27
27+6=33
33+7=40
分层后的每个计算,都是我们之前学习过或者有规律可以遵循的。通过一层的计算,得到了最终的答案。
9+10+8+6+7=40

流程建设
流程建设是一步一步解决问题的过程,按照的一定的顺序完成一个个任务。设计程序的每一个步骤,编写程序每一行代码的过程就是流程建设的过程。
我们已经在日常生活中运用到了流程建设
7:00起床
8:00早餐
8:30上学
12:00午饭
13:00午休
14:00眼保健操
17:00放学
18:00晚餐
19:00作业
21:00睡觉

抽象化
抽象化是关注关键信息,将重要的内容提炼出来,忽略不必要的细节。掌握了抽象化的能力,我们就可以将一个解决方案应用于其他事物中,制定出解决方案的总体思路。
(2)培养耐心和细心
找Bug就是一个极需要耐心和细心的活。
既然少儿编程教育的理念是这样的,那么整个学习过程就应该围绕这个来开展,才不会让少儿编程教育变成知识灌输式的科目。少儿编程好与不好,关键不在于少儿编程本身好不好,因为学习总是有益的。我觉得少儿编程的关键在于教学的形式和过程。

为什么要学习机器人编程?

近年来,越来越多的机构涉足少儿编程和机器人培训领域,同时也涌入了很多创业者。在美国, STEAM教育已成为其素质教育的核心,编程、3D打印、机器人等新技术教育已走进了美国的中小学校。美国前总统奥巴马也曾参与“编程一小时”活动,并呼吁美国小朋友“别总在手机上玩,要去编程”。同时国内外对少儿编程的推动举措更是络绎不绝,也就说明的少儿编程的重要性。

日本在中小学普及编程教育科目;
英国教育大纲规定计算机编程是5-16岁儿童必修课程;
  新加坡全面推动少儿编程教育,中小学考试中加入编程考试科目;
  美国政府投资40亿美元开展少儿编程教育,呼吁全国青少儿学习编程;
  美国国情咨文推行计算机科学教育,强制要求高中毕业必修计算机编程学分;

  在国内,2015年9月,教育部发指导意见,鼓励探索STEAM教育等新教育模式。2017年起中国浙江地区将把信息技术作为高考选考科目,其高考考试范围包括编程、数据库处理、表格处理等。2017年国务院关于印发《新一代人工智能发展规划的通知》“实施全民智能教育项目,在中小学阶段设置人工智能相关课程,逐步推广编程教育,鼓励社会力量参与寓教于乐的编程教学软件、游戏的开发和推广”。

   少儿编程有望成为继数学和英语后的第三大刚需。中国未来更倾向培养那些逻辑思维缜密,应对自如,提出独特想法的创造性人才。

为什么要让孩子接触编程?

(1)从长期看,编程锻炼孩子逻辑思维能力,对培养孩子高效的思考模式、做事视角,有很大帮助

“编程思维(computational thinking)”是“理解问题——找出路径”的思维过程,它由分解、模式识别、抽象、算法四个步骤组成。通过这四个步骤能够清晰有条理地解决一个复杂的问题。

同时,根据皮亚杰儿童认知发展阶段理论,整个7-12岁处于孩子的具体运算阶段,儿童获得了较系统的逻辑思维能力。所以,学编程的最佳时机是小学段。

2)从短期看,编程能帮孩子养成良好学习习惯

不少父母反馈,孩子学编程后,学习主动性提高了,专注力提升了。或者更懂得规划自己的时间,不再一味沉迷于游戏中