35 research outputs found

    Structured Tools and Condiitonal Logic: an Empirical Investigation

    Get PDF
    An important outcome of recent work on the psychology of programming has been the recognition that we have a poor understanding of how various programming practices-indenting, commenting, naming, etc.-facilitate or inhibit the programming process. After a fairly extensive series of studies, many results obtained are contradictory and counterintuitive. The major probem seems to be that we have poor theoretical bases to drive the empirical research. In particular, we have little knowledge of the psychological constructs that programmers bring to bear when they perform various programming tasks, and we have little knowledge of what is natural for programmers. This research tested the propositon that the effectiveness of a programming practice is a function of the extent to which it provides a close cognitive fit with a programmers\u27 problem solving strategy when he or she performs a programming task. The proposition was tested in the context of two psychological processes that appear to be used by programmers when they design and code conditional logic: (a) taxonomizing-identifying the conditions that evoke particular actions; and (b) sequencing-converting the taxa to a linear sequence of program code. Three structured tools-structured English, decision tables, and decision trees-were investigated in a laboratory setting to determine how they facilitated these two processes. It was hypothesized that decision tables and decision trees would facilitate the taxonomising process because they allow conditions and actions to be easily identified, and that structurd English would facilitate the sequencing process because it provides a linear representation of logic that can be mapped easily into programming code. To test the hypotheses, 124 volunteer information systems and computer science students undertook three experiments. In the first experiment they were given a narrative description of some conditional logic and asked to represent the logic using one of the three types of structured tools. In the second experiment they were given conditional logic already represented via one of the tools and asked to convert it into COBOL code. In the third experiment they were given a narrative description of some conditional logic and asked to convert it into COBOL code after having first represented the logic using one of the three types of structured tools. Their perfomance was assessed in terms of the number of syntactic errors they made, the number of semantic errors they made, and the time taken to perform the experimental tasks. In general, the results confirmed the propostions investigated. When the taxonomizing task had to be undertaken, decision trees outperformed strutured English, although surprisingly structured English outperformed decision tables. When the sequencing task had to be undertaken, structured English outperformed decision tables, but decision trees evoked the same level of performance as structured English. Across all tasks, decision tables evoked relatively poor levels of perfomance. On the other hand, decision trees evoked high levels of performance across all tasks. It appears that the graphical tree structure allows taxon information to be represented poignantly. At the same time it appears relatively easy to trace a branch to its leaf node to perform the sequencing task. The superiority of decision trees seems to confirm the desirablity of graphically revealing the structure inherent in processes rather than using symbolic languages. Moreover, the results suggest that the syntax of current programming languages may be unnecessarily restrictive. Perhaps programming languages should provide decision trees as part of their syntax instead of providing only unidimensional, linear syntax to represent conditional logic

    Computation of bifurcations : Automatic provisioning of variational equations

    Get PDF
    In the conventional implementations for solving bifurcation problems, Jacobian matrix and its partial derivatives regarding the given problem should be provided manually. This process is not so easy, thus it often induces human errors like computation failures, typing error, especially if the system is higher order. In this paper, we develop a preprocessor that gives Jacobian matrix and partial derivatives symbolically by using SymPy packages on the Python platform. Possibilities about the inclusion of errors are minimized by symbolic derivations and reducing loop structures. It imposes a user only on putting an expression of the equation into a JSON format file. We demonstrate bifurcation calculations for discrete neuron dynamical systems. The system includes an exponential function, which makes the calculation of derivatives complicated, but we show that it can be implemented simply by using symbolic differentiation

    Human Error Analysis in Software Engineering

    Get PDF
    As the primary cause of software defects, human error is the key to understanding, detecting and preventing software defects. This chapter first reviews the state of art of an emerging area: software fault defense based on human error mechanisms. Then, an approach for human error analysis (HEA) is proposed. HEA consists of two important components: human error modes (HEM) and an undated version of causal mechanism graphs (CMGs). Human error modes are the general erroneous patterns that humans tend to behave in a variety of activities. Causal mechanism graph provides a way to extract the error-prone contexts in software development, and link the contexts to general human error modes. HEA can be used at various phases of software development, for both defect detection and prevention purposes. An application case is provided to demonstrate how to use HEA

    An Empirical Study of Off-by-one Loop Mutation

    Get PDF
    Context: Developing test cases that are measurably effective in finding faults in programs is a very challenging research problem. Mutation testing, a prominent technique developed to address this challenge, often becomes com- putationally too expensive for practical use due to the very large number of mutants that need to be analyzed. Objective: This paper evaluates the impact of One-by-one (OBO) loop mutation in reducing the cost of mutation analysis and investigates this technique\u27s effectiveness in measuring the strength or weakness of test suites. Method: A set of Java and C programs have been used to generate both OBO and traditional mutants. Mutation scores are computed and analyzed for both sets of mutants. An analysis of first order vs. higher order loop mutations have also been performed. Results: On average, 89.15% fewer mutants are generated by OBO op- erator in comparison to traditional operators while the two sets of muta- tion scores still remain highly positively correlated (correlation coefficient of .9228) indicating the usefulness of OBO operator in measuring test suite\u27s ef- fectiveness of finding faults in programs. We also investigate the relationship between first order OBO mutation (FOM) and their corresponding higher order mutations (HOM). We have found that OBO HOMs do not subsume their corresponding FOMs. Conclusion: We conclude that One-by-one (OBO) loop mutant operator, which targets specific program elements for mutation, can greatly reduce the number of mutants generated, and thus make the mutation analysis relatively inexpensive and practical while still being capable of providing useful measurement of the strength or weakness of a test suite. Our investigation into the relationship between higher order OBO mutants (HOM) and first order OBO mutants (FOM) has revealed that OBO HOMs usually do not add any value to the mutation analysis over the corresponding FOMs

    The Effects of Changing AIS on User Experience and Business Role

    Get PDF
    Technology has become a dominant factor in many aspects of modern life. This research explores how technology has influenced the field of accounting through the advancement of Accounting Information Systems (AIS). To address the issue of the qualification of students entering the accounting profession, two populations were surveyed. Students who were previously enrolled in an AIS class at SUNY Brockport were surveyed about their comfort level with AIS before and after the class, along with their outlook on technology in the workforce. Accounting professionals were surveyed on their usage of systems in their companies, their preference towards change, and their first-hand accounts of changing technology in the workplace. The results of this research shows that while having an AIS class significantly helps prepare students for the real world, there are ways to improve the course content to provide even better professional candidates. To be successful, students must achieve a foundational grasp on system usage the same way that debits and credits are a foundation to the whole accounting cycle. Students should be exposed to a multitude of different accounting software so that they learn to move beyond “point and click” to a stage of analysis that will allow them to adapt to whatever systems they see later in their careers. For this to occur, either a second AIS class would be required, or a whole new major should be added, focusing on the importance of AIS. In the professional world, the changes in technology and AIS are causing restructuring of both the company structure and the human resource usage. Soon the new-hire data entry position will be obsolete as computers take over and the whole process becomes automated; thus ushering accounting into the age of analysis and forecasting as opposed to book keeping and data entry

    The effect of team programming on student achievement in COBOL instruction

    Get PDF
    As computing systems, technology and the use thereof become more mature, new skills are being suggested for improving computer programming efficiency. Two of these skills are the use of structured programming and team programming. The subjects of this study of the effect of team programming were students enrolled in an introductory COBOL programming course at the University of Wisconsin--La Crosse during the Spring and Fall semesters of 1980. The subjects were divided into a control group who wrote programs in the traditional individualized manner and an experimental group who wrote programs in teams of three. Both groups used structured programming techniques. Student achievement was measured in the areas of knowledge of grammatical structure and syntax rules, the ability to read programs, and the ability to write programs. Data collected from the students included the score on the pretest, the average programming score, the score on the final exam, and the course grade;Results of the study indicate that those students involved in team programming had significantly better programming scores than the control group, showed moderately lower achievement in the areas of knowledge of grammatical structure and syntax, and showed no difference in achievement in the ability to read programs or in the ability to write programs. Those students involved in team programming not only had better programming scores but spent less time than those students working individually;Based on this study, it appears that the needs of industry (skill development in the area of team programming) can possibly be met without detracting from the student\u27s development of reading and writing abilities in traditional courses. However, team programming may detract from the student\u27s learning of syntax and the development of reading abilities

    Effects of sequencing computer-based instruction and lecture in learning function concepts of C programming language

    Get PDF
    This study investigated the effectiveness of a computer-based lesson used before versus after formal lecture and examined students\u27 difficulties in learning the function concepts of the C programming language. The subjects were fifteen university students who were randomly assigned to two treatment groups that received different instructional sequences. The subjects completed questionnaires, a pretest, the computer-based lesson and a posttest. During the experiment, students\u27 learning processes were observed, their program errors were recorded by the computer system, and some students\u27 reactions were video-taped;Results showed that students\u27 posttest scores were not significantly affected by whether the computer-based lesson was presented before or after the formal lecture. The study reported students\u27 difficulties in syntax, semantics, design and debugging of C programs on the function topics. Recommendations for programming instruction, such as providing appropriate examples, teaching design and debugging strategies and developing a notional machine , were discussed. Use of a team approach, interviews of students, use of think-aloud and investigations of students\u27 preferences were also made for future research

    Implementation and Validation of Fault-Rupture Response Spectrum Analysis Procedure in CSiBridge for Bridges Crossing Earthquake Fault Ruptures

    Get PDF
    This thesis evaluates the application of a simplified analysis procedure as implemented in version 16 of CSiBridgeTM for design of bridges crossing earthquake fault ruptures. The fault-rupture response spectrum analysis (FR-RSA) approximation method has been proved adequate for both straight and curved ordinary bridges, but lacked a comfortable interface to accommodate the method users. Computers and Structure, Inc. has implemented the FR-RSA procedure into CSiBridgeTM, a user-friendly integrated 3-D bridge design software, as an added seismic design feature. By combining the response of the bridge due to the quasi-static displacement from the fault strike-slip rupture and the pseudo-dynamic displacement from the earthquake response spectrum analysis, a combined seismic demand is approximated using the software. The CSiBridgeTM bridge model creation process and application of FR-RSA as the Caltrans Fault Crossing Seismic Design Request is explained and evaluated in this thesis. In order to validate the implementation of FR-RSA in CSiBridgeTM v.16, the bridge demands for a three span and a four span curved bridge crossing earthquake fault rupture zones from the analytical models developed in Open System for Earthquake Engineering Simulation (OpenSees) and CSiBridgeTM v.16 are compared and discussed. It was found that the displacement demands from the abutments and bents were comparable from the two programs, supporting the correct application of the approximation method. This thesis also presents recommendations for improving the analysis function of CSiBridgeTM v.16 for bridges crossing fault ruptures
    corecore