Most programs today are written not by professional software developers, but by people with expertise in other domains working towards goals for which they need computational support. For example, a teacher might write a grading spreadsheet to save time grading, or an interaction designer might use an interface builder to test some user interface design ideas. Although these end-user programmers may not have the same goals as professional developers, they do face many of the same software engineering challenges, including understanding their requirements, as well as making decisions about design, reuse, integration, testing, and debugging. This article summarizes and classifies research on these activities, defining the area of End-User Software Engineering (EUSE) and related terminology. The article then discusses empirical research about end-user software engineering activities and the technologies designed to support them. The article also addresses several crosscutting issues in the design of EUSE tools, including the roles of risk, reward, and domain complexity, and self-efficacy in the design of EUSE tools and the potential of educating users about software engineering principles.
Self-efficacy theory was applied to the domain of computer programming to develop a thirty-two-item self-efficacy scale for computer programming, primed to the C++ programming language. To assess its construct validity, the scale was administered to 421 students enrolled in an introductory course in C++ programming at the beginning and the end of the course. The reliability of the scores was high. An exploratory factor analysis, with oblimin rotation, yielded a four-factor solution. There was a growth in self-efficacy between two administrations of the scale twelve weeks apart, particularly for students who initially had low self-efficacy. The computer programming self-efficacy of males and females did not differ substantially in practical terms.Self-efficacy is a key construct of social cognitive theory as it has developed since the 1970s. Self-efficacy is defined by Bandura as ". . . people's judgments of their capabilities to organize and execute courses of action required to attain designated types of performances" [ 1, p. 3911. Bandura argues that efficacy beliefs influence: 1) choice of activities, 2 ) level of effort expended, 3) persistence in the face of difficulties, and 4) performance [ 1,2]. An individual's efficacy beliefs are critical to self-motivation. A person with high self-efficacy is more likely to initially choose to undertake a challenging task and to apply greater effort to achieve it. A person with high self-efficacy is also more likely to initiate coping strategies in the face of difficulties and to persist when presented with competing demands. While intellectual ability and domain knowledge are major factors in achievement in an educational setting, self-efficacy also plays a strong role. Those with the same 367 0 1998, Baywocd Publishing Co., Inc.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.