eBlockly An expandable programming learning environment based on the Blockly

  • 李 明益

Student thesis: Master's Thesis


With the rise of computer science education and the popularity of the Internet programming is no longer limited to those who study electronic engineering and computer science People who are interested in programming even an elementary school student can learn it To this end lots of convenient tools for programming learning have been developed such as the famous visual block-based programming languages Scratch and App Inventor However their applications are limited The purpose of this thesis is developing an expandable programming learning environment which is based on the open-source project of Google Blocky Except the block-based programming as scratch Blockly can also translate visual blocks to source code such as JavaScript Python PHP Lua and Dart Besides Blockly directly runs in browsers without Adobe Flash Player It’s also supported step-by-step code execution for tracing and debugging code However Blockly lacks a rich support of music and multimedia though it has above advantages To improve the above-mentioned disadvantage further This thesis plans using custom user interface and component to control various open-source software and hardware by dragging and dropping blocks The implementation of this thesis’s programming learning environment includes three parts: Blockly-end Daemon and Service-end Firstly the Blockly-end is an interface for users to create programs and contains the translation of visual blocks into source code Secondly Daemon is a computer program that runs as a background process and is responsible for the transfer of command between Blockly-end and Service-end; Lastly Service-end includes kinds of software and hardware for users to control Up to now Service-end has implemented computer music software Pure Data (PD) and Max/MSP the deep learning software MNIST handwritten digits recognition as well as the single circuit boards Arduino and Raspberry Pi The programming learning environment has three advantages Firstly for program beginners they only need to learn how to create programs at Blockly-end need not to learn the programming language of each software and hardware individually Secondly each service can communicate with each other through our learning environment for example when the light sensor connected with Arduino triggered Blockly-end send a command of playing music to Max/MSP Thirdly The environment is expandable A developer who can connect a new service to the environment only have to abide by the protocol of this environment The benefit is the environment can hold communities of software and hardware by connect software and hardware to it The programming learning environment reduces the threshold of beginning programming learners Users can simply control each software and hardware of Service-end by means of dragging and dropping blocks at the Blockly-end In other words users neither need to learn the programming language of each software and hardware individually nor have to consider the connection and programming methods between software/hardware and diverse components In addition the programming learning environment is open-source under the Apache License 2 0 so that everyone who is interested in this environment can improve and expand its functions
Date of Award2017 Aug 23
Original languageEnglish
SupervisorWen-Yu Su (Supervisor)

Cite this