少儿编程为什么要从Scratch起步?

网友投稿 2019-08-24 11:50

对于6-8岁初学编程的少年儿童来说,从“拖拽编程”起步是最好的选择。”拖拽编程”是一种基本的技术,可以让你通过拖拽块创建代码,而不是手动编写基于文本的代码。也就是说,我们可以在不细究语言语法格式的情况之下,很容易地理解编程原理。

    Scratch是一款由麻省理工学院(MIT)设计开发的一款面向少年的简易编程工具。它采用的就是“拖拽编程”技术。

https://cdn.china-scratch.com/timg/190826/1150493457-0.jpg

Scratch的积木化操作具有简单、可视等特点,有趣的界面可以制作动画、游戏等,能充分调动学生学习兴趣。我们只需使用鼠标拖动相应模块到程序编辑栏后,再进行部分参数的设定,就可以完成程序,实现一段动画、一个小游戏等,让孩子在编程中体会成就感。

学习编程最重要的是编程概念的掌握,Scratch虽然是以积木形式进行的编程,但它包含了常见的编程概念,如程序的三种基本结构:顺序结构、循环结构和选择结构,还有变量的定义和链表(数组)的使用等。Scratch在程序设计时还引入了事件、线程、同步的概念。例如Scratch中包含多种事件,比如判断角色是否碰到边界;而多线程则是让舞台上的不同角色各自执行不同的脚本;在程序中不同角色间可以通过发送广播和接收广播实现同步。这样,学生在使用过程中自然而然就掌握了正确的编程概念,为日后学习更深层次的编程语言打好基础。

Scratch编程不是为游戏而生

1、Scratch不是编程

   Scratch是一款儿童图形化编辑软件,它仅是编码,它编程的产物。

   Scratch编程对于青少年来说很容易上手,可能仅仅一节课,孩子就能编写一个看似复杂的游戏。但是问题就在“编码游戏”!从一个游戏陷阱掉到另一个游戏陷阱。

https://cdn.china-scratch.com/timg/190826/115050ED-1.jpg

 2、Scratch是孩子学习编程的启蒙

   入门简单,无需编程基础。

   让孩子做一些应用型软件,而不是单纯的玩游戏。

   让Scratch成为孩子学习的工具。让孩子能够通过Scratch明白什么是数理,几何甚至是文理。

   让孩子在应用设计过程中逐渐形成逻辑分析、独立思考创新的思维方式,学会提出问题,解决问题。

https://cdn.china-scratch.com/timg/190826/1150501B5-2.jpg

scratch积木模块包括8个大类,100多个功能。包括了一个完整程序的每个环节。这些图形化的积木使用需要老师或者家长循序渐进的正确引导,孩子从模仿的过程中,能感悟到条件语句,循环语句,判断,能理解参数和命令的区别。

Scratch提供了图像、颜色、声音、运动、计算等基础能力,再加上使用者的奇思妙想,组合出无限种可能,包括但不限于游戏、动画、音乐、图画、数理化计算等。

https://cdn.china-scratch.com/timg/190826/1150505920-3.jpg

Scratch编程让孩子从底层理解游戏逻辑、规则、关卡、奖励等事件,当他学会编写游戏再来玩游戏时,就相当于一个熟练的汽车修理师傅在开车,自己能看透游戏背后的“秘密”,沉迷程度自然大大减小

Scratch的优势:

Scratch的门槛低,小学及以上的人群都可以使用,Scratch的操作体验人性化,各功能模块设计得易于使用,使用者不需要认识英文单词,也不需要会使用键盘,更不需要像成人编程那样——记忆大量的命令,一切操作只需要使用鼠标,将积木模块按自己的需求逐个拼搭,过程有些类似于堆积木,也像组装乐高玩具。

学习Scratch的意义,并不在于学习了某种特殊的技能,或早早地把孩子培养成程序员,重要的是,在这个过程中,培养了孩子逻辑思维能力、创新实践能力、拆解任务、解决问题的能力,并且,这个创造的过程,是最让孩子快乐的。

https://cdn.china-scratch.com/timg/190826/1150504916-4.jpg

可以预见,在不久的人工智能时代,人和机器之间的对话、互助、合作都会变得平常,甚至成为工作的一部分。到那时,我们的孩子,他们即使不是这些智能机器的制造者,但也必须了解它,会与它共处! 就像今天,我们并不会生产制造电脑,但如果不会使用电脑,很多非常普通的工作已无法胜任!

Python在少儿编程教学领域中的优势

https://cdn.china-scratch.com/timg/190826/1150512944-5.jpg

在我们的常规认知中,编程是一件枯燥且略带难度的事情,很多家长更是担心孩子学不懂,不想学。这是很多编程机构面临的问题,也是他们一直在解决的问题。但目前来看,通过游戏化教育,能够培养孩子的学习兴趣,而能够承载这一教学目标的当属Python语言了。

伴随着“Python”加入浙江高考大纲,许多家长也开始有些恐慌,我们一无所知的Python要加入高考,到底Python是什么,什么时候开始学,以及Python有哪些优点呢?

首先,什么是Python?

https://cdn.china-scratch.com/timg/190826/1150514321-6.jpg

Python,英文“大蟒蛇”的意思。Python的发明者是荷兰人Guido van Rossum。 

Guido在1989年圣诞节期间,为了打发圣诞节的无趣,于是想着要开发一个新的脚本解释程序,所以就有了Python。而之所以选中Python大蟒蛇的意思)作为程序的名字,据说因为Guido是一个名为Monty Python的喜剧团体的爱好者。虽然Python的诞生似乎源于一种偶然,然而Python能够在诞生之后不久就风靡程序员的圈子似乎又是一种必然。

https://cdn.china-scratch.com/timg/190826/115051M62-7.jpg

其次,孩子什么时候开始学Python?

山东省最新出版的小学信息技术六年级教材也加入了 Python 内容,更是又一次把这一问题抛在了大众面前。其实,在美国连婴幼儿都有 Python 编程书。打开亚马逊,就会看到很多婴幼儿 Python 编程书,美国确实是一个非常重视编程技能培养的国家,从比尔·盖茨 13 岁学习编程,Facebook创始人扎克伯格 11 岁开始学习编程这些事例中也可见一斑。其实年龄在7岁左右的孩子,学过一点Scratch或者机器人编程的都可以学习Python语言。这个年龄段的孩子思维模式和认知能力都已经可以接受Python语言课程。

https://cdn.china-scratch.com/timg/190826/115051E39-8.jpg

再次,Python的优点和长处有哪些?

简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。

https://cdn.china-scratch.com/timg/190826/1150512140-9.jpg

易学:Python极其容易上手,因为Python有极其简单的说明文档。

速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C写的,运行速度非常快。

免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。

可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。

可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。

https://cdn.china-scratch.com/timg/190826/1150511Q7-10.jpg

C/C+是什么,能用来做什么?

https://cdn.china-scratch.com/timg/190826/1150523614-11.jpg

1、从C到C++

计算机诞生初期,用机器语言或汇编语言编写程序;

第一种高级语言FORTRAN诞生于1954年;

BASIC语言(1964)是由FORTRAN语言的简化而成的是为初学者设计的小型高级语言;

C语言是1972年由美国贝尔实验室的 D.M.Ritchie 研制成功的。它是为计算机专业人员设计的;

大多数系统软件和许多应用软件都是用C语言编写的。随着软件规模的增大,用C语言编写程序渐渐吃力了,于是便创造出了C++语言。

https://cdn.china-scratch.com/timg/190826/1150522S6-12.jpg

2、C++的特点

C++是由 AT&T Bell实验室 于20世纪80年代初在C语言的基础上成功开发出来的。C++保留了C语言原有的所有优点,并增加了面向对象的机制。

C++是由C语言发展而来的,与C兼容。用C语言写的程序基本上可以不加修改地用于C++。从C++的名字可以看出它是C的超集。C++既可用于面向过程的程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型程序设计语言。

备注:C++不是纯面向对象语言。

3、C++是对C语言的“增强”

(1) 在原来面向过程机制的基础上,对C语言的功能做了很多扩充。

(2) 增加了面向对象的机制。

面向对象程序设计,是针对开发较大规模的程序而提出来的,目的是提高软件开发的效率。不要把面向对象和面向过程对立起来,面向对象和面向过程不是矛盾的,而是各有用途互为补充的。

所以,通俗来讲,大家在学习的过程中不要把C语言和C++做为两门独立或者对立的语言来学习,本身他们就可以看成是一门语言,任何一款支持C++的编译工具都支持C语言。C++就是C语言的超集,包括了所有C语言的特性,所以你把C++学会了,C语言自然也就会了。如果你之前学过C语言,那么再学习下C++的面向对象思想,那么两者你也就都会了。

https://cdn.china-scratch.com/timg/190826/115052G96-13.jpg

给大家举个例子:

学习编程的人针对谭浩强这个名字应该几乎都听过。谭浩强老师的C语言/C++语言的编程书籍可以说是国内很多大学的标杆教材了。

他有一本《C语言程序设计》专门讲解C语言的,还有一本《C++程序设计》专门讲解C++的,书挺厚的,包括了C语言的部分。还有一本是《C++面向对象程序设计》是专门讲解C++的,所以可以这么说:《C语言程序设计》+《C++面向对象程序设计》=《C++程序设计》,这也充分体现了C语言和C++的关系。

https://cdn.china-scratch.com/timg/190826/1150525229-14.jpg

4、用途:C语言和C++都能做什么呢?

C语言:操作系统底层、系统驱动、单片机、嵌入式方面 等等;

C++:网络游戏开发、音视频技术、Socket网络通信,另外,苹果/谷歌/微软 等大型软硬件公司的系统或者软件上面都支持C/C++语言的集成开发。

你常用的软件大多数都是C++写的,例如:Office软件:MS Office,WPS Office,OpenOffice/LibreOffice,你所用的Windows也用了大量的C++,你说你在用C#和SQL,那我告诉你你用的 VS IDE 核心部分是C++写的,你用的C#,C# 的.Net执行框架也是C++写的,你用的Sql数据库,是Sql Server吧?很不幸,Sql Server也是cpp写的、你上网页在用浏览器吗?很不幸,浏览器内核都是C++写的,界面大多数浏览器界面也是C++写的,你聊天用的 QQ、YY、Skype 等也是C++写的。这些都是你绝对有在用的,至于其他,还有很多,杀毒软件、PhotoShop、Maya,N多行业软件,几乎所有的端游 等等,都是C++写的。你问我C++能做什么实际的东西,我告诉你什么也做不了,你信吗?

https://cdn.china-scratch.com/timg/190826/11505331G-15.jpg

C++ 的几个常见的发展方向:客户端,游戏,服务端,嵌入式,移动端(移动只要是跨平台的移动端用C++写通用部分,GUI可以用平台特性,也可以用C++的跨平台框架)

针对界面UI方面C++的选择也是很多的,其实C++还是擅长“内功”的方面。如果你想带个GUI界面的话,也有很多类似Qt之类的框架和界面库可以使用,网上有很多,而且很多都跨平台,还开源,不管是 Windows,还是Mac,还是Linux,还是移动端平台,通吃的。本身C/C++就是跨平台的。

https://cdn.china-scratch.com/timg/190826/1150532L9-16.jpg

另外,说点大家感兴趣的,什么远程控制软件,什么木马,什么外挂等等,可以说95%以上都是用C/C++来写的。

难道这么多的用途还不值得大家来好好学学C/C++吗?

另外,闻道有先后、术业有专攻,C++虽然功能很强大,几乎什么都能做,但有的地方也是不适合,不是不能做而是不适合。比如网页开发,C++也能做,但是还是建议使用Java-Web或者PHP之类的语言来做,毕竟他们就是为了Web开发而生的。

https://cdn.china-scratch.com/timg/190826/1150535943-17.jpg

我认为少儿编程重点不在于学习编程软件的使用和编程语言,而在于思维的锻炼。让孩子在愉悦的学习环境中,尽情的将自己内心的想法表达出来,通过项目制的学习方法,掌握分析问题,解决问题的能力。

https://cdn.china-scratch.com/timg/190826/1150534a9-18.jpg

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com