This paper summarizes the keynote address on the future of end-user software engineering. We believe the future that we envision has implications for not only end-user software engineering, but also for "classic&...
详细信息
ISBN:
(纸本)9783662448113;9783662448106
This paper summarizes the keynote address on the future of end-user software engineering. We believe the future that we envision has implications for not only end-user software engineering, but also for "classic" software engineering.
Many Web applications do not meet the precise needs of their users. Browser extensions offer a way to customize web applications, but most people do not have the programming skills to implement their own extensions. I...
详细信息
ISBN:
(纸本)9781450375078
Many Web applications do not meet the precise needs of their users. Browser extensions offer a way to customize web applications, but most people do not have the programming skills to implement their own extensions. In this paper, we present spreadsheet-driven customization, a technique that enables endusers to customize software without doing any traditional programming. The idea is to augment an application's UI with a spreadsheet that is synchronized with the application's data. When the user manipulates the spreadsheet, the underlying data is modified and the changes are propagated to the UI, and vice versa. We have implemented this technique in a prototype browser extension called Wildcard. Through concrete examples, we demonstrate that Wildcard can support useful customizations-ranging from sorting lists of search results to showing related data from web APIs-on top of existing websites. We also present the design principles underlying our prototype. Customization can lead to dramatically better experiences with software. We think that spreadsheet-driven customization offers a promising new approach to unlocking this benefit for all users, not just programmers.
UNIX-based operative systems were always empowered by scriptable shell interfaces, with a core set of powerful tools to perform manipulation over files and data streams. However those tools can be difficult to manage ...
详细信息
ISBN:
(纸本)9783319108315;9783319108308
UNIX-based operative systems were always empowered by scriptable shell interfaces, with a core set of powerful tools to perform manipulation over files and data streams. However those tools can be difficult to manage at the hands of a non-expert programmer. This paper proposes the creation of a Collaborative Web Platform to easily create workflows using common UNIX command line tools for processing Big Data through a collaborative web GUI.
Mashups are essentially combinations of APIs and online data in a single interface. However, to be able to take advantage of these systems, users must have the prerequisite programming skills to gather, manipulate, an...
详细信息
Mashups are essentially combinations of APIs and online data in a single interface. However, to be able to take advantage of these systems, users must have the prerequisite programming skills to gather, manipulate, and present the data retrieved from these APIs. In order to support the less programming-savvy users, tools have been created that simplify the process and remove many of the more complex programming tasks. While attempting to be comprehensive, as with all emerging technologies, there are design flaws that exist. This work focuses on the tasks that are involved in creating mashups and specifically investigates end-user mental models as they approach this programming task. The first half of this work looks at the skill disparities between expert mashup programmers and novice end-users. I then detail the characteristics of the web-active enduser, a population of endusers who could take advantage of mashups but cannot because of skill barriers. Focusing on this user group, I explore the ways in which they consider online information. In doing so, I formulate a better understand of the mental models of the web-active enduser and provide an informed design guide for the development of future tools.
The Internet of Things (IoT) and connected products have become part of the advance of ubiquitous technology into personal and professional living spaces, such as the smart home. What connectivity and distributed comp...
详细信息
The Internet of Things (IoT) and connected products have become part of the advance of ubiquitous technology into personal and professional living spaces, such as the smart home. What connectivity and distributed computing have made possible, is still programmed only according to more or less simplified rule systems (or in traditional code);the mapping between what endusers intend or would value and what can be expressed in rules is not straightforward. This article analyzes the temporal, preferential, technical, and social complexity of mapping end-user intent to rules, and it suggests new concepts to better frame information that needs to be captured to create smart-home systems that better match users' intents. We need a new approach aimed at first capturing endusers' intentions and potential usage scenarios, then providing this information to a control system that learns to resolve intentions and scenarios for available devices in the context. The new approach should deconstruct and rebuild IoT-related programming at a higher level of abstraction that allows endusers to express long-term intentions and short-term preferences, instead of programming rules. Based on related work, a first-person perspective and analysis of current smart-home programming practices, the concept of Interactive Intentional programming (IIP), is introduced and discussed.
programming is everywhere, and is becoming an increasingly essential component of knowledge work outside the realms of traditional software development. Examples include data journalism, scientific computing, machine ...
详细信息
ISBN:
(纸本)9781450375078
programming is everywhere, and is becoming an increasingly essential component of knowledge work outside the realms of traditional software development. Examples include data journalism, scientific computing, machine control, machine learning, financial management, and others. A key aspect of this trend is that users have to use programming tools, but typically lack programming education, let alone a computer science background. In this short paper we revisit potential assumptions and preconceptions underlying traditional programming system design, from the perspective of practicing scientists using tools like MATLAB, R, Bash, Python, C++, and others. Specifically, we aim to peel off some ingrained assumptions that have informed programming language and system design for decades. Without giving a lot of answers, we hope some of our contrarian observations may turn out to be controversial, and stimulate a meaningful discussion towards a better programmer experience in the domain of science.
We report an empirical study of nonprogrammers who built a database-centered web application using an end-user web development tool. Half of the users spent time planning their project by creating a concept map before...
详细信息
The increase of robots in working environments has created a demand for workers who are capable of programming new tasks for them. Previously, the programming has been done exclusively by expert users due to the compl...
详细信息
The increase of robots in working environments has created a demand for workers who are capable of programming new tasks for them. Previously, the programming has been done exclusively by expert users due to the complexity of the process. The fields of end-user programming and programming by Demonstration have shared a goal of creating user-friendly approaches so that novice users may also participate in this programming process. Such approaches involve creating robot programs from user demonstrations using methods such as kinesthetic teaching and interaction with a Graphical user Interface. The approaches of programming by Demonstration involve fluent and uninterrupted demonstrations, while the end results often include models, which are difficult to comprehend for end-users. On the other hand, the end results of end-user programming have an understandable structure, but the demonstration process can be seen tedious. This tediousness results from the constant switching between demonstrating the task and interacting with the Graphical user Interface. This thesis proposes a program creation framework that shares desired characteristics from both end-user programming and programming by Demonstration. It aims to combine the seamless style of demonstration from programming by Demonstration with the user-friendly programs of end-user programming. The programs of this thesis were created based on given user demonstrations as a set of parametrized actions, primitives. As the demonstrations were given in uninterrupted fashion, a segmentation algorithm was needed in order to identify said primitives from the demonstration. This algorithm included segmentation of gripper-related primitives and the trajectory as well as a program validation step which allowed for postponed modification of the program. For the segmentation of the trajectory, two different algorithms were proposed. The conducted experiments examined the functionality of the program creation framework as well as
LibX is a browser extension that provides direct access to library resources. LibX enables users to add additional features to a webpage, such as placing a tutorial video on a digital library homepage. LibX achieves t...
详细信息
LibX is a browser extension that provides direct access to library resources. LibX enables users to add additional features to a webpage, such as placing a tutorial video on a digital library homepage. LibX achieves this ability of enhancing web pages through library applications, called LibApps. A LibApp examines a webpage, extracts and processes information of the page, and modifies the web content. It is possible to build an unlimited number of LibApps and enhance web pages in numerous ways. The developers of LibX team cannot build all possible LibApps by themselves. Hence, we decided to create an environment that allows users to create and share LibApps, thereby creating an eco-system of library applications.
We developed the LibApp Builder, a cloud-based end-user programming tool that assists users in creating customized library applications with minimal effort. We designed an easy-to-understand meta-design language model with modularized, reusable components. The LibApp language model is designed to hide the complex programming details from the target audiences who are mostly non-technical users, primarily librarians.
The LibApp Builder is a web-based editor that allows users to build and test LibApps in an executable environment. A built-in publishing mechanism allows users to group LibApps into packages and publish them in AtomPub format. Any user can directly reuse or adapt published components as required. Two error checking mechanisms have been built into the LibApp Builder viz., type checking and semantic checking to enhance user experience and reduce debugging effort. Additionally, the web interface displays help tooltips to guide users through the process of building a LibApp.
We adhered to good software engineering practices such as the agile development model and the model-view-controller design paradigm. The LibApp Builder is built with the ZK AJAX framework and provides a rich interactive user interface. The LibApp Builder is integrated with an
暂无评论