End-user development ( EUD ) or end-user programming ( EUP ) refers to activities and tools that allow end-users – people who are not professional software developers – to program computers . People who are not professional developers can use EUD tools to create or modify software artifacts (descriptions of automated behavior) and complex data objects without significant knowledge of a programming language . In 2005 it was estimated (using statistics from the U.S. Bureau of Labor Statistics ) that by 2012 there would be more than 55 million end-user developers in the United States, compared with fewer than 3 million professional programmers. Various EUD approaches exist, and it is an active research topic within the field of computer science and human-computer interaction . Examples include natural language programming , spreadsheets , scripting languages (particularly in an office suite or art application), visual programming , trigger-action programming and programming by example .
34-513: EUD may refer to: End-user development Europa-Union Deutschland , a German Eurofederalism organization European Union of the Deaf Europeans United for Democracy , a political alliance Topics referred to by the same term [REDACTED] This disambiguation page lists articles associated with the title EUD . If an internal link led you here, you may wish to change
68-489: A skill library . For increasing the abstraction level further, skills can be converted into dynamic movement primitives (DMP). They generate a robot trajectory on the fly which was unknown at the time of the demonstration. This helps to increase the flexibility of the solver. For final users, to automate a workflow in a complex tool (e.g. Photoshop ), the most simple case of PbD is the macro recorder . A robot that learns to cook an omelet: A robot that learns to unscrew
102-474: A guaranteed stable manner. Furthermore, the paper won the best student paper award. The networks represent movements, where asymptotic stability is incorporated through constraints derived from Lyapunov stability theory. It is shown that this approach successfully performs stable and smooth point-to-point movements learned from human handwriting movements. It is also possible to learn the Lyapunov candidate that
136-670: A humanoid robot is supposed by its nature to adapt to new environments, not only the human appearance is important but the algorithms used for its control require flexibility and versatility. Due to the continuously changing environments and to the huge varieties of tasks that a robot is expected to perform, the robot requires the ability to continuously learn new skills and adapt the existing skills to new contexts. Research in PbD also progressively departed from its original purely engineering perspective to adopt an interdisciplinary approach, taking insights from neuroscience and social sciences to emulate
170-400: A mathematical elegant manner. After a task was demonstrated by a human operator, the trajectory is stored in a database. Getting easier access to the raw data is realized with parameterized skills. A skill is requesting a database and generates a trajectory. For example, at first the skill “opengripper(slow)” is sent to the motion database and in response, the stored movement of the robotarm
204-784: A programming language. The usual distinction in literature between these terms is that in PbE the user gives a prototypical product of the computer execution, such as a row in the desired results of a query ; while in PbD the user performs a sequence of actions that the computer must repeat, generalizing it to be used in different data sets. These two terms were first undifferentiated, but PbE then tended to be mostly adopted by software development researchers while PbD tended to be adopted by robotics researchers. Today, PbE refers to an entirely different concept, supported by new programming languages that are similar to simulators. This framework can be contrasted with Bayesian program synthesis . The PbD paradigm
238-424: A user to develop an application in as little as 40–80 hours. Lieberman et al. propose the following definition: End-User Development can be defined as a set of methods, techniques, and tools that allow users of software systems, who are acting as non-professional software developers, at some point to create, modify or extend a software artifact. Ko et al. propose the following definition: End-user programming
272-537: A wiki style repository of scripts. On this wiki, users can browse available scripts and extend existing scripts to support additional parameters, to handle additional conditions or to operate on additional objects. Online and offline communities of end-user developers have also been formed, where end-user developers can collaboratively solve EUD problems of shared interest or for mutual benefit. In such communities, local experts spread expertise and advice. Community members also provide social support for each other to support
306-416: Is an end-user development technique for teaching a computer or a robot new behaviors by demonstrating the task to transfer directly instead of programming it through machine commands. The terms programming by example (PbE) and programming by demonstration (PbD) appeared in software development research as early as the mid 1980s to define a way to define a sequence of operations without having to learn
340-423: Is developed. Benefits (which may be perceived or actual) are seen as: Many end-user development activities are collaborative in nature, including collaboration between professional developers and end-user developers and collaboration among end-user developers. Mutual development is a technique where professional developers and end-user developers work together in creating software solutions. In mutual development,
374-407: Is first attractive to the robotics industry due to the costs involved in the development and maintenance of robot programs. In this field, the operator often has implicit knowledge on the task to achieve (he/she knows how to do it), but does not have usually the programming skills (or the time) required to reconfigure the robot. Demonstrating how to achieve the task through examples thus allows to learn
SECTION 10
#1732786836441408-571: Is programming to achieve the result of a program primarily for personal, rather [than] public use. Artifacts defined by end users may be objects describing some automated behavior or control sequence, such as database requests or grammar rules, which can be described with programming paradigms such as programming by demonstration , programming with examples , visual programming , or macro generation. They can also be parameters that choose between alternative predefined behaviors of an application. Other artifacts of end-user development may also refer to
442-432: Is provided. The parameters of a skill allow to modify the policy to fulfill external constraints . A skill is an interface between task names, given in natural language and the underlying spatiotemporal movement in the 3d space, which consists of points. Single skills can be combined into a task for defining longer motion sequences from a high level perspective. For practical applications, different actions are stored in
476-441: Is that end users or their consultants employ declarative tools that support rigorous business and security rules at the expense of performance and scalability; tools created using EUD will typically have worse efficiency than those created with professional programming environments. Though separating functionality from efficiency is a valid separation of concerns , it can lead to a situation where end users will complete and document
510-442: Is used for stabilization of the dynamical system. For this reason, neural learning scheme that estimates stable dynamical systems from demonstrations based on a two-stage process are needed: first, a data-driven Lyapunov function candidate is estimated. Second, stability is incorporated by means of a novel method to respect local constraints in the neural learning. This allows for learning stable dynamics while simultaneously sustaining
544-505: Is your favorite programming language) books are out there? I was initially amused by this trend, but recently I’ve become uneasy thinking about where these dabblers are applying their newfound knowledge. This viewpoint assumes that all end users are equally naive when it comes to understanding software, although Pliskin and Shoval argue this is not the case, that sophisticated end users are capable of end-user development. However, compared with expert programmers, end-user programmers rarely have
578-496: The requirements analysis and prototyping of the tool, without the involvement of business analysts . Thus, users will define the functions required before these experts have a chance to consider the limitations of a specific application or software framework . Senior management support for such end-user initiatives depends on their attitude to existing or potential vendor lock-in . Programming by demonstration In computer science , programming by demonstration ( PbD )
612-670: The Software Shaping Workshop are proposed to bridge the communication gap between professional developers and end-user developers. These approaches often provide translucency according to the social translucence model, enabling everyone in the collaboration to be aware of changes made by others and to be held accountable of their actions because of the awareness. Besides programming collaboration platforms like GitHub, which are mostly utilized by expert developers due to their steep learning curve, collaborations among end-user developers often take place on wiki platforms where
646-516: The accuracy of the dynamical system and robustly generate complex movements. Diffeomorphic transformations turn out to be particularly suitable for substantially increasing the learnability of dynamical systems for robotic motions. The stable estimator of dynamical systems (SEDS) is an interesting approach to learn time invariant systems to control robotic motions. However, this is restricted to dynamical systems with only quadratic Lyapunov functions. The new approach Tau-SEDS overcomes this limitations in
680-559: The collaborative construction of software. Commentators have been concerned that end users do not understand how to test and secure their applications. Warren Harrison, a professor of computer science at Portland State University, wrote: It’s simply unfathomable that we could expect security... from the vast majority of software applications out there when they’re written with little, if any, knowledge of generally accepted good practices such as specifying before coding, systematic testing, and so on.... How many X for Complete Idiots (where "X"
714-494: The creation of user-generated content such as annotations, which may be or not computationally interpretable (i.e. can be processed by associated automated functions). Examples of end-user development include the creation and modification of: According to Sutcliffe , EUD essentially outsources development effort to the end user. Because there is always some effort to learn an EUD tool, the users' motivation depends on their confidence that it will empower their work, save time on
SECTION 20
#1732786836441748-428: The first attempts at generalizing the skill were mainly based on the help of the user through queries about the user's intentions. Then, different levels of abstractions were proposed to resolve the generalization issue, basically dichotomized in learning methods at a symbolic level or at a trajectory level. The development of humanoid robots naturally brought a growing interest in robot programming by demonstration. As
782-406: The job or raise productivity. In this model, the benefits to users are initially based on marketing, demonstrations and word-of-mouth. Once the technology is put into use, experience of actual benefits becomes the key motivator. This study defines costs as the sum of: The first and second costs are incurred once during acquisition, whereas the third and fourth are incurred every time an application
816-590: The link to point directly to the intended article. Retrieved from " https://en.wikipedia.org/w/index.php?title=EUD&oldid=942419957 " Category : Disambiguation pages Hidden categories: Short description is different from Wikidata All article disambiguation pages All disambiguation pages End-user development The most popular EUD tool is the spreadsheet . Due to their unrestricted nature, spreadsheets allow relatively un-sophisticated computer users to write programs that represent complex data models, while shielding them from
850-796: The move. More recently, interest in how to exploit EUD to support development of Internet of Things applications has increased. In this area trigger-action programming seems a promising approach. Lessons learned from EUD solutions can significantly influence the software life cycles for commercial software products , in-house intranet / extranet developments and enterprise application deployments. Roughly 40 vendors now offer solutions targeted at end users designed to reduce programming efforts. These solutions do not require traditional programming and may be based around relatively narrow functionality, e.g. contract management, customer relationships management, issue and bug tracking. Often referred to as low code development platforms, web based interactions guide
884-440: The need for the user to learn the abstractions of a classic programming language. The user instead introduces some examples of the desired results or operations that should be performed on the data, and the PbE system infers some abstractions corresponding to a program that produces this output, which the user can refine. New data may then be introduced to the automatically created program, and the user can correct any mistakes made by
918-477: The need to learn lower-level programming languages. Because of their common use in business, spreadsheet skills are among the most beneficial skills for a graduate employee to have, and are therefore the most commonly sought after In the United States of America alone, there are an estimated 13 million end-user developers programming with spreadsheets The programming by example ( PbE ) approach reduces
952-498: The process of imitation in humans and animals. With the increasing consideration of this body of work in robotics, the notion of Robot programming by demonstration (also known as RPD or RbD) was also progressively replaced by the more biological label of Learning by imitation . Neurally-imprinted Stable Vector Fields (NiVF) was introduced as a novel learning scheme during ESANN 2013 and show how to imprint vector fields into neurals networks such as Extreme Learning Machines (ELMs) in
986-553: The professional developers often “under design” the system and provide the tools to allow the “owners of problems " to create the suitable solution at use time for their needs, objectives and situational contexts. Then the communication between professional developers and end-user developers can often stimulate formalizing ad hoc modifications by the end users into software artifacts, transforming end-user developed solutions into commercial product features with impacts beyond local solutions. In this collaboration, various approaches such as
1020-481: The program in order to improve its definition. Low-code development platforms are also an approach to EUD. One evolution in this area has considered the use of mobile devices to support end-user development activities. In this case previous approaches for desktop applications cannot be simply reproposed, given the specific characteristics of mobile devices. Desktop EUD environments lack the advantages of enabling end users to create applications opportunistically while on
1054-451: The skill without explicitly programming each detail. The first PbD strategies proposed in robotics were based on teach-in , guiding or play-back methods that consisted basically in moving the robot (through a dedicated interface or manually) through a set of relevant configurations that the robot should adopt sequentially (position, orientation, state of the gripper). The method was then progressively ameliorated by focusing principally on
EUD - Misplaced Pages Continue
1088-399: The software artifacts created are shared. End-user development is also often used for creating automation scripts or interactive tutorials for sharing “how-to” knowledge. Examples of such application include CoScripter and HILC. In such applications, user can create scripts for tasks using pseudo-natural language or via programming by demonstration. The users can choose to upload the script to
1122-414: The teleoperation control and by using different interfaces such as vision. However, these PbD methods still used direct repetition, which was useful in industry only when conceiving an assembly line using exactly the same product components. To apply this concept to products with different variants or to apply the programs to new robots, the generalization issue became a crucial point. To address this issue,
1156-501: The time or interest in systematic and disciplined software engineering activities, which makes ensuring the quality of the software artifact produced by end-user development particularly challenging. In response to this, the study of end-user software engineering has emerged. It is concerned with issues beyond end-user development, whereby end users become motivated to consider issues such as reusability, security and verifiability when developing their solutions. An alternative scenario
#440559