VIPLE

ASU VIPLE is a Visual IoT/Robotics Programming Language Environment developed at Arizona State University.

ASU VIPLE is an educational platform designed with a focus on computational thinking, namely on learning how algorithms work without focusing on syntactic complexities. To this end, VIPLE is designed to facilitate the programming of applications that make use of robotics and other IoT devices.

History
Visual and graphical programming languages have been used as tools to teach computer science concepts and computational thinking. A number of visual programming environments have been developed and applied. MIT App Inventor for Android uses drag-and-drop style puzzles to construct phone applications University of Virginia and Carnegie Mellon's Alice (software) is a 3D game and movie development environment. It uses a drop-down list for users to select the available functions in a step-wise manner. App Inventor and Alice allow novice programmers to develop complex applications using visual composition at the workflow level. LEGO EV3 software allows simple robotics programming through puzzle blocks on rails. It has been applied in junior high and middle school levels. Microsoft Robotics Developer Studio (MRDS) Visual Programming Language (VPL) are specifically developed for robotics applications, which is a milestone in software engineering, robotics, and computer science education from many aspects. Microsoft MRDS VPL is service-oriented; it is visual and workflow-based; it is event-driven; it supports parallel computing; and it has been widely used in middle schools, high schools, and colleges an educational tool that is simple to learn and yet powerful and expressive. Unfortunately, Microsoft stopped its development and support for MRDS and VPL in 2014. VIPLE (Visual IoT/Robotics Programming Language Environment) is developed to support MRDS VPL community. VIPLE is developed based on the concept of Robot as a Service. VIPLE has been used in many schools and universities around the world. A textbook has been published by Machine Press China: Introduction to Computer Science with Robotics Experiment, Machine Press, 2013. ASU summer robotics camps are taught using VIPLE every summer. ASU class FSE100 uses VIPLE as the programming language. Under the HEEAP and BUILD-IT programs, over 90 faculty and 20 students in Vietnam were trained in December 2016 to use VIPLE to teach introduction to engineering using robotics programming. ASU VIPLE has been applied in numerous student projects and was reported in different news reports: "Robot programming made easy" and "ASU team won first prize at Intel Cup in China".

Features and philosophy
ASU VIPLE uses the same computing model as Microsoft VPL. The program is running on a Windows computer, a desktop, a laptop, or a tablet. The computer sends commands to control the robot actuators (motors) and receives the sensory data and motor feedback from the robot. The data between the computer and the robot is encoded in a JSON object which is in plain text format. It supports Wi-Fi, Bluetooth and USB connections between the main computer and the robot. ASU VIPLE is based on Robot as a Service concepts and uses standard interface to communicate with different IoT and robotics platforms. It supports EV3 and any self-developed robots. ASU developed different robots based on Intel architecture, the Linux operating system, and the Windows operating system. Two VIPLE simulators are developed, which can be used as a step in the development process before using physical robots, as well as alternatives when physical robots are not available. The simulators support all the functionalities of the physical robots. One simulator is developed using Unity 3D game engine, which provides realistic and real-time behaviors of robots, and the other simulator is developed using HTML 5 and JavaScript, which runs in any Web browser. VIPLE is a programming language that supports the following paradigms: - General-purpose control flow programming (imperative) - Service-oriented computing, supporting RESTful and WSDL services - Parallel / multithreading programming, with underlying threads safety - Event-driven programming, with built-in and custom events - Workflow and visual programming - IoT and Robotics programming

"Hello world" Example
ASU VIPLE is similar to Microsoft VPL not only in concepts but also in programming. The intention is to have Microsoft VPL programmers use ASU VIPLE with little learning. Examples of basic programming in ASU VIPLE. Start with the Hello World program. Figure 2.2 shows the two versions of code using VPL and ASU VIPLE. The two diagrams look the same. However, ASU VIPLE has simplified a couple of steps: it automatically changes the type to String after a string is entered, and the default null value step in Microsoft VPL is eliminated.

Implementations
VIPLE is implemented and operational since 2015. The software maintained and updated in monthly basis. The software is free and the latest version can be downloaded from Arizona State University Site.