Paradigm | Service Oriented, Visual Programming, Workflow application |
---|---|
Designed by | Arizona State University |
First appeared | 2014 |
Influenced by | |
Microsoft Visual Programming Language |
ASU VIPLE is a Visual IoT/Robotics Programming Language Environment developed at Arizona State University. [1]
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. [2]
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 [3] University of Virginia and Carnegie Mellon's Alice (software) is a 3D game and movie development environment. [4] 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. [5] ASU summer robotics camps are taught using VIPLE every summer. [6] ASU class FSE100 uses VIPLE as the programming language. [7] 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. [8] ASU VIPLE has been applied in numerous student projects and was reported in different news reports: "Robot programming made easy" [9] and "ASU team won first prize at Intel Cup in China". [10]
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. [1] 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
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. [11]
This section is empty. You can help by adding to it. (March 2017) |
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.
A fourth-generation programming language (4GL) is a high-level computer programming language that belongs to a class of languages envisioned as an advancement upon third-generation programming languages (3GL). Each of the programming language generations aims to provide a higher level of abstraction of the internal computer hardware details, making the language more programmer-friendly, powerful, and versatile. While the definition of 4GL has changed over time, it can be typified by operating more with large collections of information at once rather than focusing on just bits and bytes. Languages claimed to be 4GL may include support for database management, report generation, mathematical optimization, GUI development, or web development. Some researchers state that 4GLs are a subset of domain-specific languages.
An integrated development environment (IDE) is a software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, and a debugger. Some IDEs, such as IntelliJ IDEA, Eclipse and Lazarus contain the necessary compiler, interpreter or both; others, such as SharpDevelop, NetBeans do not.
An application program is a computer program designed to carry out a specific task other than one relating to the operation of the computer itself, typically to be used by end-users. Word processors, media players, and accounting software are examples. The collective noun "application software" refers to all applications collectively. The other principal classifications of software are system software, relating to the operation of the computer, and utility software ("utilities").
In computing, a visual programming language or block coding is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.
In computer programming, dataflow programming is a programming paradigm that models a program as a directed graph of the data flowing between operations, thus implementing dataflow principles and architecture. Dataflow programming languages share some features of functional languages, and were generally developed in order to bring some functional concepts to a language more suitable for numeric processing. Some authors use the term datastream instead of dataflow to avoid confusion with dataflow computing or dataflow architecture, based on an indeterministic machine paradigm. Dataflow programming was pioneered by Jack Dennis and his graduate students at MIT in the 1960s.
Quantum programming is the process of designing or assembling sequences of instructions, called quantum circuits, using gates, switches, and operators to manipulate a quantum system for a desired outcome or results of a given experiment. Quantum circuit algorithms can be implemented on integrated circuits, conducted with instrumentation, or written in a programming language for use with a quantum computer or a quantum processor.
Mobile app development is the act or process by which a mobile app is developed for one or more mobile devices, which can include personal digital assistants (PDA), enterprise digital assistants (EDA), or mobile phones. Such software applications are specifically designed to run on mobile devices, taking numerous hardware constraints into consideration. Common constraints include CPU architecture and speeds, available memory (RAM), limited data storage capacities, and considerable variation in displays and input methods. These applications can be pre-installed on phones during manufacturing or delivered as web applications, using server-side or client-side processing to provide an "application-like" experience within a web browser.
Lego Mindstorms NXT is a programmable robotics kit released by Lego on August 2, 2006. It replaced the first-generation Lego Mindstorms kit, which was called the Robotics Invention System. The base kit ships in two versions: the Retail Version and the Education Base Set. It comes with the NXT-G programming software, or optionally LabVIEW for Lego Mindstorms. A variety of unofficial languages exist, such as NXC, NBC, leJOS NXJ, and RobotC. The second generation of the set, the Lego Mindstorms NXT 2.0, was released on August 1, 2009, featuring a color sensor and other upgraded capabilities. The third generation, the EV3, was released in September 2013.
Microsoft Robotics Developer Studio is a discontinued Windows-based environment for robot control and simulation that was aimed at academic, hobbyist, and commercial developers and handled a wide variety of robot hardware. It requires a Microsoft Windows 7 operating system or later.
Microsoft Visual Programming Language, or VPL, is a visual programming and dataflow programming language developed by Microsoft for the Microsoft Robotics Studio. VPL is based on the event-driven and data-driven approach. The programming language is distinguished from other Microsoft programming languages such as Visual Basic and C#, as it is the only Microsoft language that is a true visual programming language. Microsoft has utilized the term "Visual" in its previous programming products to reflect that a large degree of development in these languages can be performed by "dragging and dropping" in a traditional wysiwyg fashion.
Microsoft Azure, often referred to as Azure, is a cloud computing platform run by Microsoft. It offers access, management, and the development of applications and services through global data centers. It also provides a range of capabilities, including software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). Microsoft Azure supports many programming languages, tools, and frameworks, including Microsoft-specific and third-party software and systems.
LEGO Mindstorms EV3 is the third generation robotics kit in LEGO's Mindstorms line. It is the successor to the second generation LEGO Mindstorms NXT kit. The "EV" designation refers to the "evolution" of the Mindstorms product line. "3" refers to the fact that it is the third generation of computer modules - first was the RCX and the second is the NXT. It was officially announced on January 4, 2013, and was released in stores on September 1, 2013. The education edition was released on August 1, 2013. There are many competitions using this set, including the FIRST LEGO League Challenge and the World Robot Olympiad, sponsored by LEGO.
Blockly is a client-side library for the programming language JavaScript for creating block-based visual programming languages (VPLs) and editors. A project of Google, it is free and open-source software released under the Apache License 2.0. It typically runs in a web browser, and visually resembles the language Scratch.
Robot as a service or robotics as a service (RaaS) is a cloud computing unit that facilitates the seamless integration of robot and embedded devices into Web and cloud computing environment. In terms of service-oriented architecture (SOA), a RaaS unit includes services for performing functionality, a service directory for discovery and publishing, and service clients for user's direct access. The current RaaS implementation facilitates SOAP and RESTful communications between RaaS units and the other cloud computing units. Hardware support and standards are available to support RaaS implementation. Devices Profile for Web Services (DPWS) defines implementation constraints to enable secure Web Service messaging, discovery, description, and eventing on resource-constrained devices between Web services and devices.
Serverless computing is a cloud computing execution model in which the cloud provider allocates machine resources on demand, taking care of the servers on behalf of their customers. "Serverless" is a misnomer in the sense that servers are still used by cloud service providers to execute code for developers. However, developers of serverless applications are not concerned with capacity planning, configuration, management, maintenance, fault tolerance, or scaling of containers, VMs, or physical servers. Serverless computing does not hold resources in volatile memory; computing is rather done in short bursts with the results persisted to storage. When an app is not in use, there are no computing resources allocated to the app. Pricing is based on the actual amount of resources consumed by an application. It can be a form of utility computing.
Microsoft, a technology company historically known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled.
PWCT is a free open source visual programming language for software development.
AirSim is an open-source, cross platform simulator for drones, ground vehicles such as cars and various other objects, built on Epic Games’ proprietary Unreal Engine 4 as a platform for AI research. It is developed by Microsoft and can be used to experiment with deep learning, computer vision and reinforcement learning algorithms for autonomous vehicles. This allows testing of autonomous solutions without worrying about real-world damage.
Microsoft Power Platform is a line of business intelligence, app development, and app connectivity software applications. Microsoft developed the Power Fx low-code programming language for expressing logic across the Power Platform. It also provides integrations with GitHub and Teams among other apps.