2,617 research outputs found

    A Systematic Literature Review on the Impact of Formatting Elements on Code Legibility

    Full text link
    Context: Software programs can be written in different but functionally equivalent ways. Even though previous research has compared specific formatting elements to find out which alternatives affect code legibility, seeing the bigger picture of what makes code more or less legible is challenging. Goal: We aim to find which formatting elements have been investigated in empirical studies and which alternatives were found to be more legible for human subjects. Method: We conducted a systematic literature review and identified 15 papers containing human-centric studies that directly compared alternative formatting elements. We analyzed and organized these formatting elements using a card-sorting method. Results: We identified 13 formatting elements (e.g., indentation) and 33 levels of formatting elements (e.g., two-space indentation), which are about formatting styles, spacing, block delimiters, long or complex code lines, and word boundary styles. While some levels were found to be statistically better than other equivalent ones in terms of code legibility, e.g., appropriate use of indentation with blocks, others were not, e.g., formatting layout. For identifier style, we found divergent results, where one study found a significant difference in favor of camel case, while another study found a positive result in favor of snake case. Conclusion: The number of identified papers, some of which are outdated, and the many null and contradictory results emphasize the relative lack of work in this area and underline the importance of more research. There is much to be understood about how formatting elements influence code legibility before the creation of guidelines and automated aids to help developers make their code more legible.Comment: Journal of Systems and Softwar

    Monadic parser combinators

    Get PDF
    In functional programming, a popular approach to building recursive descent parsers is to model parsers as functions, and to define higher-order functions (or combinators) that implement grammar constructions such as sequencing, choice, and repetition. Such parsers form an instance of a monad, an algebraic structure from mathematics that has proved useful for addressing a number of computational problems. The purpose of this report is to provide a step-by-step tutorial on the monadic approach to building functional parsers, and to explain some of the benefits that result from exploiting monads. No prior knowledge of parser combinators or of monads is assumed. Indeed, this report can also be viewed as a first introduction to the use of monads in programming

    The Influence of Personality on Code Reuse

    Get PDF
    The ubiquity and necessity of computer software requires programmers to reuse extant code to keep up with increasing software demands. Researchers have started to investigate the underlying psychological processes and the programmer characteristics affecting code reuse. The present study investigated the role of programmer personality (propensity to trust, suspicion propensity) on willingness to reuse code. Programmers were recruited through Amazon’s Mechanical Turk. Programmers completed propensity to trust and suspicion personality inventories and were subsequently presented with 18 pieces of computer code containing transparency and reputation manipulations. The results demonstrated that propensity to trust did not influence willingness to reuse code. However, facets of suspicion propensity did affect reuse willingness. Programmers lower in trait mal-intent perceptions and higher in cognitive activity were more likely to report they would reuse code. Implications and applications are discussed

    Improving visual representations of code

    Get PDF
    This work was done in 1997 at the Centre for Software Maintenance at the University of DurhamThe contents of this paper describe the work carried out by the Visual Research Group in the Centre for Software Maintenance at the University of Durham.Publisher PD

    The Effect Of Crowding On The Reading Of Program Code For Programmers With Dyslexia

    Get PDF

    Using web-based peer assessment in fostering deep learning in computer programming

    Get PDF
    Active learning is considered by many academics as an important and effective learning strategy. Students can improve the quality of their work by developing their higher cognitive skills through reflection on their own ideas and practice of analytic and evaluative skills. Peer assessment is one of the successful approaches which can be used to enhance this deep learning. In this paper we discuss a novel web-based peer assessment system to support computer programming courses. We discuss the educational rational for the system, and the deep learning theory, report on its deployment on large programming modules. The preliminary results indicate that the system has successfully helped students to develop their higher cognitive skills in learning computer programming
    corecore