其实选择哪种编程语言不是重点,激发孩子的学习兴趣,培养孩子的逻辑思维,掌握编程思想,学会用编程的方式去发现问题和解决问题才是重点。
如果孩子能够熟练掌握编程中变量、条件、循环,还有函数等基本的编程概念,并以一种语言编程成功,这时再用另一种语言来编程就不难了。
转换编程语言虽然不像打个响指那样容易,但只要了解了其他语言的语法就能快速上手,因为编程的核心不在于语法,而是解决问题的思路和方法(算法)。
因此,大家推荐零基础的孩子,先从 Scratch 语言开始学起。
有的家长不理解,觉得:
“那种拖块看起来像玩游戏,不如 Python、C++ 这样的代码编程语⾔⾼级,对于孩子太简单了。””现在是人工智能时代,直接让孩子从Python学习,以后前景更好。““让孩子学习C++,以后考个信奥对升学有帮助!”
其实语言并没有高级低级之分,只是各自应用的场景不同,盲目追求编程语言的复杂度,是不可取的。
对于一名零基础的孩子来说,培养编程的兴趣很重要,直接上手代码编程不是不可以,只是这样的学习会让孩子觉得枯燥,容易打消他们学习编程的积极性,甚至产生抵触。
如果真的想让孩子学习编程,那么他的学习路径应该是循序渐进的,孩⼦刚开始接触编程时,重要的有 2 点。
⼀是容易上手,让孩⼦能⽤编程做出东西,体会到编程的乐趣,培养孩子对编程的兴趣。⼆是把精力尽量用在学习编程逻辑上,而不是编程语言的语法上。因为编程逻辑,才是编程的核心,真正锻炼思维的东西,而编程语⾔只是大家为了完成目的使用的⼯具。
Scratch的 4 个特点,⾮常好地满⾜了这 2 点要求。
(1)Scratch特点1:入门容易
Scratch使⽤了图形化的呈现,通过拖拽代码块进⾏编程,过程很像搭建“电⼦积⽊”,对刚接触编程的孩⼦来说,上⼿容易、门槛低。
Scratch与Python、C++对比
从上⾯这张图大家可以看出Scratch更直观易懂,⽽Python、C++则需要具备打字能力,和⼀定的英⽂基础。
尤其C++,语法相当复杂,还有很多与编程逻辑⽆关的繁琐细节。由于C++语法过于复杂,很多孩子学C++时理解不了它的语法,导致孩⼦只能抄代码,没有实际独立创作的能力,最终连逻辑也没能学习到。
这就像大家想教孩子学骑车,但大家⼀开始就给了他一辆摩托车,本想为他提供便利,可孩⼦骑不好摩托,结果最后连自行车也没学会。而如果大家⼀开始给孩⼦骑自行车,他是能学会的,再上手摩托车就容易多了。因此,一开始就把入门门槛抬得太高,导致孩子入不了门,后续的学习就更困难了!
(2)Scratch特点2:及时反馈
孩⼦使⽤Scratch时,点击单个代码块,就能看到“移动”、“转向”、“切换造型”等代码效果;通过⼀些简单的操作就能完成⼀个小故事、节⽇贺卡、⼩游戏⼀类的作品。
这能让孩⼦在刚接触编程时,就体会到⾃⼰创造出作品的成就感,获得精神上的⿎励,更容易激起孩子的学习兴趣,有信心迎接后续的挑战。
(3)Scratch特点3:避免了代码语法错误
Python和C++之所以让⼈感觉⽐Scratch难,是因为Python/C++的代码语法更繁琐,在完成⼀个相同逻辑难度的作品时,Python/C++⽐起Scratch,需要花费更多的时间在解决语法问题上。
过早学习代码语言无形中浪费了很多时间,俗话说:“思考5分钟,找茬2小时。”⽐如,把英⽂的分号写成了中⽂的分号、把双引号⽤成了单引号、少写了⼀半括号等都会造成程序报错,无法正常运行。
而这些繁琐的语法问题,对孩⼦理解编程核⼼逻辑并没有任何帮助,却总是需要孩⼦花费时间去解决,就像是大家在⾛路时,总得花很多时间去倒掉鞋⼦⾥的⼩⽯⼦,⽽因此忽略了沿途的风景。
⽽Scratch是⽤拖拽代码块的⽅式来编程的,从根本上就不需要孩⼦去关注拼写错误、标点错误等⽆意义的语法问题,极大减轻了孩子对编程的挫败感,而让他们留有更多时间全⾝⼼专注于理解编程逻辑上,这才是对锻炼思维真正有⽤的部分。
另外,由于Scratch把编程的常规语句都做成了代码块,孩⼦只需要根据⾃⼰梳理好的编程逻辑挑选符合要求的代码块拖拽就能使⽤,不⽤⾃⼰一个字一个字地敲出来,大大提高了孩子的学习效率。
(4)Scratch特点4:高上限
有的家长看到Scratch语法简单,就误以为Scratch只能做出简单的作品。其实编程的核⼼是逻辑和算法,编程语⾔只是⼯具,作品的复杂度是由编程逻辑决定的,⽽不是由⼯具决定的。
现在很多热门软件和游戏,虽然它们本身不是⽤Scratch开发的,但同样可以⽤Scratch还原出来,实现相同的效果。
另外,Scratch对于创新的鼓励以及在图像创作、声音编辑和项目混制方面的功能优化,让它在成为各年龄段孩子首选编程语言上变得理所当然。
较之被称为“编程语言”,它更希望被定位为一个绘图工具,一个动画制作工具,或是一个故事与游戏创作工具。
学习了Scratch孩子,更愿意去尝试代码编程,因为他们觉得那意味着长大,只有“真正的编程”才会被行业采纳。
至于Python 和 Scratch 哪一个更适合小孩子学习。偶的回答是:低年级的孩子建议学 Scratch,初中左右可以考虑直接学 Python。因为 Scratch 的图形化更能激发学习的兴趣,而 Python 的好处在于,以后可以拿来真刀真枪的做项目,甚至养家糊口。
但其实在任何年龄,如果你不是那么急切地想掌握一门实用语言,Scratch 都是值得花时间尝试的。虽然它的初衷是给小孩子用的,但也完全适合一个对计算机毫无基础的成人用来了解编程思想和开发流程。
在 reddit 有这样一个帖子:
大意就是:一个网友说,如果你完全没有编程经验,强烈推荐从 Scratch 开始入手。
他自己就通过学习一阵子之后,很快做出了一个自己的游戏,这给他继续学习编程带来了很大的动力。
另一个网友评论说,有不少会一点编程的人会瞧不起 Scratch,觉得它算不上一门语言。
但事实上,很多编程初学者因为搞不清变量、循环、函数等概念而放弃。
而真正在编程时,大家 90% 是在处理逻辑和解决问题,而不是去生搬概念。
如果从逻辑出发来教授编程,那么可能对于学习者来说是更合适的。如果你理解了程序背后的逻辑,之后再学习其他语言也是很容易的。
python实训的意义与目的?
Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发,所有实训的目的都是为了以后更好的适应工作。
游戏引擎是什么意思?
戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些互交式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。大部分都支持多种操作平台,如Linux、Mac OS X、微软Windows。游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。
诸如Unreal系列引擎、Doom3引擎、CryENGINE2、RenderWare、Gamebryo, Virtools以及Source引擎提供一套可视开发工具,为了简化开发,这些工具通常整合到集成开发环境中。 游戏引擎也被称为 “游戏中间层” ,这是由于引擎开发商提供一套凌驾于硬件层与用户界面之间的可以重用的全功能封装,为引擎使用者减少独立开发费用,开发周期时间。使得使用者在竞争日益激烈的电脑游戏产业中赢得利益。
引擎作为一个中间层,他能够将同一个游戏表现在不同的游戏平台之上,诸如:个人电脑、PlayStation、PlayStation 2、PlayStation 3、Xbox、Xbox 360、Wii和任天堂游戏机。一些游戏引擎通常被设计为部分组件可以替换或增加新组件,从而增强引擎的表现能力。当然这样的引擎也会更昂贵。可用于增加功能的组件有用于物理计算的Havok,处理声音的FMOD,加快渲染速度的SpeedTree等。 一些引擎直接设计为组件分离,用户根据需要自己组装引擎组件比如RenderWare引擎。但这样的设计给引擎的开发带来了更高的难度,因为设计者要更多考虑各组件之间的协调问题。
游戏引擎还经常用在其他需要互动的领域,比如商业产品介绍,建筑效果预览,模拟训练等。
有些游戏引擎只含有渲染器。其他必要的游戏组件需要使用者自行开发,或者集成其他引擎中的现有组件。这样的通常叫做“图像引擎”、“渲染引擎”或“3D引擎”。但很多全功能的引擎亦简称为“3D引擎”,比如RealmForge、Power Render、Crystal Space以及Genesis3D。