1.1 Google Blockly概述

美国计算科学教育一直认为计算机作为当今各个领域的基础技术工具,有必要让学生尽早的了解和学习计算机工作原理,理解基础的编程思维。在2006年周以真教授提出计算思维概念,这很大程度上促进了人们对计算机编程教学的认识。图形化编程摒弃了繁琐的代码语法,以直观的图形化模块进行编程,其思想最早来源于西摩尔·帕伯特的心理学家在从事儿童学习的研究中发明的LOGO语言。近年来随着计算机技术的快速发展,出现了很多优秀的图像化编程工具提供给学生学习计算机程序设计,比如:Alice、Scratch、AppInventor等著名软件。在2012年6月,Google发布了完全可视化的编程语言Google Blockly,这是一款完全开源的,集合多种编程语言的编程工具。很多图形化编程平台都是基于Google Blockly二次开发的,譬如:APPInventor、Wyliodrin、Earsketch等优秀编程平台。Google Blockly作为一种易于掌握的图像化开源编程环境,是编程初学者学习和掌握程序设计方法的有力工具,非常有必要予以了解和掌握。

1.2 什么是Google Blockly

1、一种基于网页的可视化程序

Google Blockly是基于网页的可视化编程工具库。用户可以以离线或者在线的方式在Windows、Linux、MC和Android平台上的浏览器端进行编程操作。可以使用计算机端、手机或平板移动端进行随时随地的完成编程设计,教学编程方式多种多样。

2、多种开发语言环境库

Blockly基于图形化编程设计可以导出Javascript、Python、PHP、Lua、Dart等多种语言。通过图形化编程完成程序设计,在Blockly中有一个类似语言转换器的工具箱,可以将图形化编程语言转化成多种编程语言代码。用图形化编程方式去理解多种程序语言。

3、开源的自定义编程环境

Blockly是开源的编程工具,用户可以根据自己编程的特点要求,对Blockly工具箱进行自定义设计。同时,Blockly开发工具能让用户自定义块导出至工具箱,并在工作区工厂完成对代码的封装。如图所示。

1.3 Google Blockly的编程环境

Blockly是一个可用于Web、Android、iOS的可视化代码编辑器库

1. Blockly在线使用

打开浏览器,在地址栏输入https://developers.google.com/blockly/,前往Blockly官网,即可体验编程。如图所示

2、Blockly的离线环境搭建

在Github网站或者Blockly主页上找到对应系统的文件包,下载后,无需安装,解压,进入demos目录,打开index.html,选择相应的选项,即可体验。
Linux系统,可下载TAR Ball,在终端进行文件解压即可;
Windows系统,可下载ZIP File,并继续解压即可;
Github Blockly地址: https://github.com/google/blockly
TAR Ball地址: https://github.com/google/blockly/tarball/master
ZIP File地址: https://github.com/google/blockly/zipball/master
Blockly离线使用都是免安装的,只需Clone或解压后,进入demos目录,打开index.html,选择相应的选项,即可体验。

1.4 Google Blockly在中学信息技术课程教育应用优势

Blockly 是一个基于 Web 的可视化编程工具,以图形化语言编程,这个新语言的主要目的是为web应用提供宏(或脚本编程)的支持。可以把生成的脚本输出成Javascript, python 等,还可以自定义图形化编程工具。目前可以在中小学利用blockly开始信息技术课程的编程学习,同时结合Arduino开发板,进行创客教育的探索与实践。

1、基于WEB跨平台的图形化编程软件

在中小学信息技术课程中,编程算法的教学工具的选择一直是教师专家探究的主要问题。代码程序的封装使得图形化编程工具的优势越来越明显,在计算机编程方面出现许多优秀的图形化编程工具。Blockly是基于WEB平台的图形化编程工具,可以在任何系统平台进行在线与离线版操作使用编程,也可以在教室主机现场搭建服务器平台,WEB界面实时编程,测试编程结果。

2、定制自己的编程工具—项目式教学探索

目前的Scratch、PencilCode以及APPInventor等流行的图形化编程软件中,由于图形程序模块的局限性,一些特殊功能很难在平台实现。Blockly提供的代码自定义工厂功能,使得用户可以利用集成块编辑器,创建符合自己创作要求的应用程序块。Blockly只是一种生成代码的方法, 你的应用程序的核心在于如何处理该代码。这样一种自定义图形化块的方式可以方便师生在教学任务过程中自定义符合教学功能的模块,实现教学工具的再次开发。

3、结合开源Arduino进行创新体验编程教学

中小学阶段使用Arduino开源硬件版进行创客课程教学非常普及,使用Blockly平台结合Arduino开源硬件,是构建高中信息技术课堂的STEAM教学项目新探索。学生可以基于图形化编程跨平台创造作品,通过程序功能设计的硬件外化过程,建构跨学科知识课堂。

课后练习

  1. 进入Blockly官网,熟悉Blockly,并使用在线Blockly输入“Hello Blockly”。
  2. 在本地配置离线版Blockly,并完成“Plane”游戏的练习。

【blockly教程】第一章 Google Blockly教学应用手册的更多相关文章

  1. 村田噪声抑制基础教程-第一章 需要EMI静噪滤波器的原因

    1-1. 简介 EMI静噪滤波器 (EMIFIL®) 是为电子设备提供电磁噪声抑制的电子元件,配合屏蔽罩和其他保护装置一起使用.这种滤波器仅从通过连线传导的电流中提取并移除引起电磁噪声的元件.第1章说 ...

  2. [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍

    注:为了看上去比较清晰这里只转载了中文 原地址:  [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍 本章将引导您完成安装和设置开发环境,然后你就可 ...

  3. javascript进阶教程第一章案例实战

    javascript进阶教程第一章案例实战 一.学习任务 通过几个案例练习回顾学过的知识 通过练习积累JS的使用技巧 二.实例 练习1:删除确认提示框 实例描述: 防止用户小心单击了“删除”按钮,在用 ...

  4. [ABP教程]第一章 创建服务端

    Web应用程序开发教程 - 第一章: 创建服务端 关于本教程 在本系列教程中, 你将构建一个名为 Acme.BookStore 的用于管理书籍及其作者列表的基于ABP的应用程序. 它是使用以下技术开发 ...

  5. 《进击吧!Blazor!》系列入门教程 第一章 8.部署

    <进击吧!Blazor!>是本人与张善友老师合作的Blazor零基础入门教程视频,此教程能让一个从未接触过Blazor的程序员掌握开发Blazor应用的能力. 视频地址:https://s ...

  6. OpenGL完全教程 第一章 初始化OpenGL

    第一章 初始化OpenGL 无论是什么东西,要使用它,就必须对它进行初始化.如果你之前使用过GDI,你应该也多多少少了解到GDI在绘制图形之前要为之创建渲染环境.OpenGL也一样.本章给出的代码,大 ...

  7. python 教程 第一章、 简介

    第一章. 简介 官方介绍: Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程.Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使 ...

  8. storm入门教程 第一章 前言[转]

    1.1   实时流计算 互联网从诞生的第一时间起,对世界的最大的改变就是让信息能够实时交互,从而大大加速了各个环节的效率.正因为大家对信息实时响应.实时交互的需求,软件行业除了个人操作系统之外,数据库 ...

  9. storm入门教程 第一章 前言

    转自:http://blog.linezing.com/?p=1847 storm:http://www.cnblogs.com/panfeng412/tag/Storm/ http://blog.l ...

随机推荐

  1. node升级 npm的升级

    安装方法: 1.产看node版本,没安装的请先安装: node -v 2.清楚node缓存: sudo npm cache clean -f 3.安装node版本管理工具'n'; sudo npm i ...

  2. python取当前时间前后一定间隔的时间点

    当前时间 datetime.datetime.now() 时间间隔 datetime.timedelta(参数=数值) #参数:weeks,days,hours,minutes,seconds,mic ...

  3. Linux系统之路——如何在服务器用U盘安装CentOS7.2(一)

    终于将CentOS7装上服务器(thinkserver250,不得不说联想的太烂了)了,过程无比艰辛,因为我发现网上大家提到的所有U盘安装CentOS7时碰到的问题几乎都被我碰到了,像什么: 1.刻录 ...

  4. 随手记——数据结构可视化(graphviz)

    普通二叉树 void writedot(BTree tree, FILE* fw) { if (tree == NULL) return; else{ fprintf(fw, "%d [la ...

  5. 【Webpack】学习随笔

    参考链接:http://www.runoob.com/w3cnote/webpack-tutorial.html Webpack 是一个前端资源加载/打包工具. Webpack 可以将多种静态资源 j ...

  6. Spyder中figure显示设置

    Spyder是Python的一个IDE.和其他的Python的IDE相比,它最大的优点就是模仿MATLAB的“工作空间”的功能,可以很方便地观察和修改数组的值. 如果不是进行大规模的工程开发,重点专注 ...

  7. 7、RabbitMQ-主题模式

    1.模式图 发送到主题交换的消息不能具有任意的 routing_key - 它必须是由点分隔的单词列表. 单词可以是任何内容,但通常它们指定与消息相关的一些功能.一些有效的路由键示例:“ stock. ...

  8. Kali-linux免杀Payload生成工具Veil

    Veil是一款利用Metasploit框架生成相兼容的Payload工具,并且在大多数网络环境中能绕过常见的杀毒软件.本节将介绍Veil工具的安装及使用. 在Kali Linux中,默认没有安装Vei ...

  9. Python 多线程 使用线程 (二)

    Python中实现多线程需要使用到 threading 库,其中每一个 Thread类 的实例控制一个线程. Thread类 #类签名 def __init__(self, group=None, t ...

  10. Spring(二)之入门示例

    任何编程技术,特别是入门示例,通常都是Hello World,在这里我也遵循这个业界公认的原则. 这里我使用的maven项目,大家如果想要演示,建议使用Eclipse(含maven插件)或Idea(含 ...