漫谈少儿编程——Scratch
作为一名“攻城狮”、“程序猿”、“码农”的我,编程对我而言充满了爱恨情仇!大二的时候作为班长又作为校科技创新协会副会长的我(人生巅峰早就在大学时期过完了!图片),被导员揪到办公室语重心长的说(想想那是蓄谋已久啊!):“那谁谁谁,作为一名预备共产党员、作为一名学生干部,咱不能虚度大学暑假时光!”,都没给我思考这是干嘛的时间,接着说“按照校分配给咱们的名额,我给你报名参加了全国大学生电子竞赛,暑假你就不用回家了,留在学校参加培训吧!“,我心想您是疯了吧,作为一个生活在青岛的地地道道的青岛银而言,青岛的夏天那就是天堂啊!别的地方三十度,青岛二十几度!别的地方四十度,青岛二十几度!别的地方都快五十度了,青岛还是二十几度!我怎么可能答应你这无理的要求,所以我头也不抬的说了句“好!”(我勒个去!!!)。
顶着四十多度烈日参加培训的,除了我认识的几个标准工科男以外,竟然还有两个美女和一个计算机学院的女神!更没想到的是培训分组的时候计算机学院的女神还跟我分在了一组图片(什么感觉呢?就是考试没复习的孩子,突然发现班级第一就坐在自己旁边,还非得把卷子让你抄)就这样为期两个月的培训开始了,一个连C语言都还没学过的大二学生,开始了跟代码打交道的故事。因为这次大赛我喜欢上了编程,研究生也理所当然的开始了对程序的深入学习。
2后来毕业进入了青岛的一家校企合作的单位,培训大三大四的学生C语言和单片机。再后来进入了青岛一家知名的电子公司,并有幸参与和负责过华为、google、fitbit等国内外知名科技公司的产品研发工作,也对编程有了更深的理解!这就是我与代码的相识、相知!没有什么传奇的经历,但却充满了不平凡的真实!好像还有的什么忘记说了!噢对了,计算机学院的女神正跟我1岁的闺女在房间玩游戏呢!
聊聊程序与编程
什么是程序,什么又是编程?简单来说程序就是计算机能够看懂的语言,编程就是用计算机能看懂的语言来跟计算机对话,让他帮你干你想做的事。
3编程语言是个啥?
聊完程序和编程,那不得不聊的还有编程语言。说到编程语言有人会认为他很神秘和晦涩难懂!(哎,其实你认为的对图片!!!后面内容涉及专业知识,不喜者请绕到下一条)编程语言说到底也就是一门“语言”,是语言当然也就会经历几个时代的发展。就像甲骨文的象形字,到文言文的繁体字,再到白话文的简体字一样,编程语言也经历了几代的变迁。编程语言的经典发展路线:机器语言—>汇编语言—>高级语言。
什么是机器语言?在计算机被设计之初,计算机只能识别一种格式的命令,那就是二进制命令。所谓二进制就是一串全部由“0”和“1”组成的数字。人们只能使用0、1组成各种指令,为了避免重复,一个简单的命令可能需要上百了0、1,(那时候能使用计算机编程的人简直就是天才!)这简直是疯了!从时间和人力成本来说机器语言不适合普及和发展。
机器语言
汇编语言
汇编语言是对机器语言的简化,他使用较为简单的英文单词代替0、1进行编程,降低了程序员的记忆难度,提高了使用效率。它是对硬件底层进行的软件编程,可以达到很高的运行效率,现在仍有一部分人再使用它,但它仍然需要记忆很多的命令格式,不能很好的被大家广为流传使用。
再往后就是我们今天常用的高级语言,高级语言的鼻祖是C语言,它将汇编语言再次精简,使用英文字母、单词按照一定的规则就可以完成一段程序(说的好像很简单!但是……图片)到目前为止,尽管C++、python、C#、Java等语言飞速崛起,但是万变不离其宗,这些所有的高级语言都离不开C语言的基础。
4少儿编程语言
回到今天的主题,少儿编程语言。在跟家长聊天的时候,家长总会有一个疑问,我家小孩才6岁、才7岁能学习编程吗?嗯,答案是,确实学不了!拿最简单的高级语言—C语言来说吧,抛开编程的逻辑思维不说,它需要记忆相对复杂的编程格式、关键字(不理解什么是关键字吧,知道有“关键字”这个关键字就很牛X了)语法规则、英文单词等等,我曾经教授过大学生编程,对于他们来说都是相对难以理解的,更何况六七岁的孩子呢。
但是难并不是不去学习和锻炼的理由(是不是很官方!图片)对于儿童的编程教育来说,恰恰最重要的是我刚刚抛开不说的东西—“编程的逻辑思维”,随着孩子年龄和认知的增长,语法、格式、关键字、英文单词都是可以慢慢记住,但是逻辑思维是需要长时间去锻炼而慢慢养成的,逻辑思维可以渗透到孩子的每一个学科!那孩子通过什么途径可以学习编程呢?(是不是感觉要打广告了!图片)有一款不得不提的针对儿童编程的软件工具——“Scratch”目前官方已经发行到3.6版本。
Scratch是麻省理工学院的“终身幼儿园团队”开发的图形化编程工具,主要面对儿童开放。是目前世界上最适合小朋友学习的编程软件之一。6岁的孩子基本上就可以照着例子完整的“拼”出一个能运行的程序。这个过程并不需要孩子认识英文或汉字。最新的Scratch3.6结合了Micro:bit、乐高的Wedo、EV3等编程工具。