去年接触到了Scratch这个编程工具,它是一种简易图形化编程工具,这个软件的开发团队来自于麻省理工大学称为“终身幼儿园团队”(Lifelong Kindergarten Group)。

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

使用这个工具,当时我是为了教孩子们,在使用了一段时间之后,一些想法不自主的就萌生出来了。

Scratch可使大学教学更有互动性

我记得当年读大学的时候,老师都是用C在一个黑色或蓝色背景的编辑框中,敲入或输出一些非常无趣的字符。

我只想说老师,其实我就想知道游戏是怎么做出来的,怎么就出来一架飞机,它就能移动且发射子弹了。

那么这个在Scratch工具中很容易实现,可以加入一个Sprite,然后图片切换来实现物体的运动。

当时老师如果能先用Scratch来实现一个东西,然后分析一下原理,然后再代码来一通,这知识点不就联系起来了?

Scratch对面向对象的理解有帮助

Scratch绝对是面向对象编程入门的神器。因为代码都是写给每个对象的。

这样能很好的使你在思考程序实现的时候,只考虑当前对象应该有的行为,而不是老想着在某一个对象里去直接控制其它对象行为。

在Scratch里对象的行为都是靠“事件”来驱动的,这样你能很好的理解事件的概念。

在Scratch中对象都是独立的,松耦合的,那么对象直接的协作主要是通过“消息”来控制,这样你也能很好的理解消息的概念和工作方式。

Scratch是个很好理解程序语言的工具

在scratch中你会经常需要用到变量循环判断,和方法定义来实现一些功能。

扩展模块,其实就是用来定义函数,这样能使你更好的理解函数的使用方法,使用场景和使用函数的好处。

用来理解递归也比java等代码来得直观。

Scratch是个很好的建模工具,使你关注于编程逻辑而非语言本身

有时候为了解决某个问题,你有个很好的算法。

但是为了验证这个算法,你需要将其用C,C++或java等其中某一种语言来实现。

由于你不太熟悉编程语言语法以及它提供的方法,使得你花很多时间来编写程序,有时甚至运行不起来。

你原本目的是验证算法,然而大部分时间都花在了熟悉编程语言,以及debug上面。是不是很得不偿失?

Scratch使用模块拖拽,你不再需要关注语言,语法,而更多的是算法,建模。

如下图的:冒泡排序

思考用Scratch将逻辑可视化

其它的编程类工具,要实现解释一个算法或原理,一般都很晦涩,学生很难理解。

如果能用图形化界面,编程之后,让它动态的显示出来,那就生动得多了。

还是上面排序的例子,如果将上面的数字,转化成图片,然后图片根据算法动态的一轮一轮交换位置,最后排出想要的结果。

这个能让学生更直观的掌握排序或其它算法。

“搜索算法”和一些“贪心算法”,“动态规划”等都出现在了我的脑海中。

我深深的觉得,Scratch这种形式的可视化编程工具,会让更多的人进入编程行业,编程语言将不再是障碍,也许未来编程就是这样。

想想可视化的代码和数据库建模工具吧,是不是就是在朝这个方向发展啊。

最后(思考一下):“N.Wirth(沃斯)提出,程序=数据结构+算法.数据结构指的是数据与数据之间的逻辑关系.算法指的是解决特定问题的步骤和方法.”

上面提到了数据结构和算法,并没有提到编程语言,编程语言只是实现程序的一种工具,

所以“程序员,程序员,要会数据结构和算法的才能算得上程序员,只会敲代码的那就是码农,不是程序员!”

这让我理解了,为什么很多公司后来不喜欢招那个“xxx鸟” 机构培训出来的学员了~~

P.S. 2018年的总结忙得忘了写了,人就是这样,过了那个点就不想补了:)

这篇是最近脑海里的想法,写于2019年农历初四~~

再过10多分钟,迎财神咯~~

补一句 scratch 3.0 加入了 摄像头互动,乐高机器人控制,以及语音互动功能。这也告诉了我们人机交互,增强现实,软硬结合将是趋势~~

Scratch不仅适合小朋友,程序员和大学老师都应该广泛使用!!!的更多相关文章

  1. .Net程序员面试 每个人都应知道篇 (回答Scott Hanselman的问题)

    昨天回答了Scott Hanselman在他清单上关于C#那部分的题目,.Net 程序员面试 C# 语言篇 (回答Scott Hanselman的问题),今天接着回答他在清单上列出的"每个写 ...

  2. 面试一个 3 年 Java 程序员,一个问题都不会!

    大家周末愉快,当你看到这篇文章的时候,事情已经过去几天了. 刚从洽谈室走出来,心情很复杂! 栈长面试过很多人,不乏知识渊博.技能顶尖的选手,但从未遇到过工作了三年,却一个问题都答不上来.. 这场史无前 ...

  3. 强力推荐微信小程序之简易计算器,很适合小白程序员

    原文链接:https://mp.weixin.qq.com/s/gYF7GjTRpeZNoKPAPI9aXA 1 概述 前几日QQ群里的朋友问我有没有计算器小程序案例,今天我们说下小程序计算器,然后就 ...

  4. 《Hey程序员 你适合加入创业公司吗?》再补充

    笔者经过多年的走访发现,不是所有优秀的程序员都能在创业公司如鱼得水.根据笔者的经验,具备下面几点优秀品质的程序员会更容易适应创业公司的环境. 1.娴熟的调试技巧可以说,程序员的大部分时间都花在调试程序 ...

  5. 有感于三个50岁的美国程序员的生活状态与IT职业杂想

    前言 这篇杂记其实是去年也就是 2013年9月30日写的,还上过博客园十日推荐的首页,后来在整理博客分类时七弄八弄误删掉了好多文章,就包括这一篇.今天,2014年9月29日,恰好恰好一年的时候居然在好 ...

  6. 转载——有感于三个50岁的美国程序员的生活状态与IT职业杂想

    明天就是国庆节了,今天也不想干活干的太累了!写一篇以前去美国出差的杂想,对比于美国50多岁的程序员和大多数50多岁国内父母的生活状态有感而发. 前几年正好有一个项目的机会出差去了一次美国,地点是美国中 ...

  7. 致诸位新程序员:来自Chuck Jazdzewski慈父般的忠告

    记住这几句话,学无止境.(Never stop learning.)沟通至关重要.(Communication is critical.)履行承诺,胜过交付.(Under promise, over ...

  8. 聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路

    引言 很尴尬的是,这个类型的文章其实之前笔者就写过,原文章里,笔者自称LZ(也就是楼主,有人说是老子的简写,笔者只想说,这位同学你站出来,保证不打死你,-_-),原文章名称叫做<回答阿里社招面试 ...

  9. Mistakes I Made(as a developer)...大龄程序员的忠告...(部分转...)

    在2006年,我开始了编程工作.当意识到来到了十年这个重要的时间关口时,我觉得有必要回顾一下这十年间所犯下的错误,做一做经验总结,并且给正在这个职业上奋斗的人们提出我的一些忠告.开发行业变化得很快,我 ...

随机推荐

  1. Docker系列01—容器的发展历程---Docker的生态圈

    本文收录在容器技术学习系列文章总目录 Docker 和容器技术的发展可谓是日新月异,本文试图以全局的视角来梳理一下 docker 目前的生态圈.既然是概览,所以不会涉及具体的技术细节. Docker ...

  2. [二]基础数据类型之Long详解

      Long   Long 基本数据类型long  的包装类 Long 类型的对象包含一个 long类型的字段     属性简介   值为  263-1 的常量,它表示 long 类型能够表示的最大值 ...

  3. mpvue微信小程序多列选择器用法:实现省份城市选择

    前言 微信小程序默认给我们提供了一个省市区的picker选择器,只需将mode设置为region即可 <picker mode="region" bindchange=&qu ...

  4. 大前端的自动化工厂(3)—— babel

    一. 关于babel babel是ES6+语法的编译器,官方网址:www.babeljs.io,用于将旧版本浏览器无法识别的语法和特性转换成为ES5语法,使代码能够适用更多环境. 最初的babel使用 ...

  5. C#基础-九九乘法表和冒泡排序

    //乘法表 ; i < ; i++)//行 { ; j < ; j++)//列 { if (j <= i) { Console.Write("{0}*{1}={2}\t&q ...

  6. 【设计原则和编程技巧】单一职责原则 (Single Responsibility Principle, SRP)

    单一职责原则 (Single Responsibility Principle, SRP) 单一职责原则在设计模式中常被定义为“一个类应该只有一个发生变化的原因”,若我们有两个动机去改写一个方法,那这 ...

  7. SQL Server中几种遍历方式比较

    SQL遍历解析 在SQL的存储过程,函数中,经常需要使用遍历(遍历table),其中游标.临时表等遍历方法很常用.面对小数据量,这几种遍历方法均可行,但是面临大数据量时,就需要择优选择,不同的遍历方法 ...

  8. Arcpy多线程热力图

        起因是这样一段对话,领导:你会用脚本生成热力图图片吗?我:可以研究下.领导:那这个需求就给你了.我:......     经过一番研究,研究出大概的思路,先将有经纬度的表中的数据筛选出表并生成 ...

  9. (详细)华为荣耀V10 BKL-AL00的USB调试模式在哪里打开的步骤

    每当我们使用pc连接安卓手机的时候,如果手机没有开启Usb开发者调试模式,pc则无法成功检测到我们的手机,有时我们使用的一些功能比较强的的app比如以前我们使用的一个app引号精灵,老版本就需要开启U ...

  10. 红米Note 5A完美卡刷开发版获得ROOT超级权限的方法

    小米的手机不同手机型号一般情况官方论坛都提供两个不同的系统,大概可分为稳定版和开发版,稳定版没有提供root权限管理,开发版中就支持了root权限,在很多工作的时候我们需要使用的一些功能强大的APP, ...