125 research outputs found

    Describing and simulating concurrent quantum systems

    Get PDF
    We present a programming language for describing and analysing concurrent quantum systems. We have an interpreter for programs in the language, using a symbolic rather than a numeric calculator, and we give its performance on examples from quantum communication and cryptography

    High-school students' mastery of basic flow-control constructs through the lens of reversibility

    Get PDF
    High-school students specialising in computing fields need to develop the abstraction skills required to understand and create programs. Novices' difficulties at high-school level, ranging from mastery of the "notional machine"to recognition of a program's purpose, have not been investigated as extensively as at tertiary level. This work explores high-school students' code comprehension by asking to reason about reversing conditional and iteration constructs. A sample of 205 K11 - 13 students from different institutions were asked to engage in a set of "reversibility tasklets". For each code fragment, they need to identify if its computation is reversible and either provide the code to reverse or an example of a value that cannot be reversed. For 4 such items, after extracting the recurrent patterns in students' answers, we have carried out an analysis within the framework of the SOLO taxonomy. Overall, 74% of answers correctly identified if the code was reversible but only 42% could provide the full explanation/code. The rate of relational answers varies from 51% down to 21%, the poorest performance arising for a small array-processing loop (and although 65% of the subjects had correctly identified the loop as reversible). The instruction level did not have a strong impact on performance, indicating such tasks are suitable for K11, when the basic flow-control constructs are usually introduced. In particular, the reversibility concept could be a useful pedagogical instrument both to assess and to help develop students' program comprehension

    An Exploration of Novice Programmers' Comprehension of Conditionals in Imperative and Functional Programming

    Get PDF
    2Students of introductory programming courses are expected to develop higher-order thinking skills to inspect, understand and modify code. However, although novices can correctly write small programs, they appear to lack a more abstract, comprehensive grasp of basic constructs, such as conceiving the overall effect of alternative conditional flows. This work takes a little-explored perspective on the comprehension of tiny programs by asking students to reason about reversing conditionals in either an imperative or a functional context. More specifically, besides deciding if the given constructs can be reversed, students had to justify their choice by writing a reversing program or by providing suitable counterexamples. The students’ answers to four reversibility questions have been analysed through the lens of the SOLO taxonomy. 45% of students correctly identified the reversibility for the four code items; furthermore, more than 50% of each cohort were able to provide correct justifications for at least three of their four answers. Most incorrect answers were due to failures to consider border cases or to edit the conditional expressions appropriately to reverse the construct. Differences in comprehension between functional and imperative languages are explored indicating the explicit else paths of the functional examples facilitate comprehension compared with the implicit else (no update) of its imperative counterpart.partially_openopenMirolo, Claudio; Izu, CruzMirolo, Claudio; Izu, Cru

    Programming: Predicting student success early in CS1. A re-validation and replication study

    Get PDF
    This paper describes a large, multi-institutional revalidation study conducted in the academic year 2015-16. Six hundred and ninetytwo students participated in this study, from 11 institutions (ten institutions in Ireland and one in Denmark). The primary goal was to validate and further develop an existing computational prediction model called Predict Student Success (PreSS). In doing so, this study addressed a call from the 2015 ITiCSE working group (the second Grand Challenge ), to systematically analyse and verify previous studies using data from multiple contexts to tease out tacit factors that contribute to previously observed outcomes . PreSS was developed and validated in a longitudinal study conducted over a three year period (twelve years previous from 2004- 06). PreSS could predict with near 80% accuracy, how a student would likely perform on an introductory programming module. Notably this could be achieved at a very early stage in the module. This paper describes a revalidation of the original PreSS model on a significantly larger multi-institutional data set twelve years after its initial development and looks at recent research on additional factors that may improve the model. The work involved the development of a fully automated end-to-end tool, which can predict student success early in CS1, with an accuracy of 71%. This paper describes, in detail the PreSS model, recent research, pilot studies and the re-validation and replication study of the PreSS model

    Automating Deductive Verification for Weak-Memory Programs

    Full text link
    Writing correct programs for weak memory models such as the C11 memory model is challenging because of the weak consistency guarantees these models provide. The first program logics for the verification of such programs have recently been proposed, but their usage has been limited thus far to manual proofs. Automating proofs in these logics via first-order solvers is non-trivial, due to reasoning features such as higher-order assertions, modalities and rich permission resources. In this paper, we provide the first implementation of a weak memory program logic using existing deductive verification tools. We tackle three recent program logics: Relaxed Separation Logic and two forms of Fenced Separation Logic, and show how these can be encoded using the Viper verification infrastructure. In doing so, we illustrate several novel encoding techniques which could be employed for other logics. Our work is implemented, and has been evaluated on examples from existing papers as well as the Facebook open-source Folly library.Comment: Extended version of TACAS 2018 publicatio

    Neuromorphic-Based Neuroprostheses for Brain Rewiring: State-of-the-Art and Perspectives in Neuroengineering.

    Get PDF
    Neuroprostheses are neuroengineering devices that have an interface with the nervous system and supplement or substitute functionality in people with disabilities. In the collective imagination, neuroprostheses are mostly used to restore sensory or motor capabilities, but in recent years, new devices directly acting at the brain level have been proposed. In order to design the next-generation of neuroprosthetic devices for brain repair, we foresee the increasing exploitation of closed-loop systems enabled with neuromorphic elements due to their intrinsic energy efficiency, their capability to perform real-time data processing, and of mimicking neurobiological computation for an improved synergy between the technological and biological counterparts. In this manuscript, after providing definitions of key concepts, we reviewed the first exploitation of a real-time hardware neuromorphic prosthesis to restore the bidirectional communication between two neuronal populations in vitro. Starting from that 'case-study', we provide perspectives on the technological improvements for real-time interfacing and processing of neural signals and their potential usage for novel in vitro and in vivo experimental designs. The development of innovative neuroprosthetics for translational purposes is also presented and discussed. In our understanding, the pursuit of neuromorphic-based closed-loop neuroprostheses may spur the development of novel powerful technologies, such as 'brain-prostheses', capable of rewiring and/or substituting the injured nervous system

    solc-verify: A Modular Verifier for Solidity Smart Contracts

    Full text link
    We present solc-verify, a source-level verification tool for Ethereum smart contracts. Solc-verify takes smart contracts written in Solidity and discharges verification conditions using modular program analysis and SMT solvers. Built on top of the Solidity compiler, solc-verify reasons at the level of the contract source code, as opposed to the more common approaches that operate at the level of Ethereum bytecode. This enables solc-verify to effectively reason about high-level contract properties while modeling low-level language semantics precisely. The contract properties, such as contract invariants, loop invariants, and function pre- and post-conditions, can be provided as annotations in the code by the developer. This enables automated, yet user-friendly formal verification for smart contracts. We demonstrate solc-verify by examining real-world examples where our tool can effectively find bugs and prove correctness of non-trivial properties with minimal user effort.Comment: Authors' manuscript. Published in S. Chakraborty and J. A. Navas (Eds.): VSTTE 2019, LNCS 12031, 2020. The final publication is available at Springer via https://doi.org/10.1007/978-3-030-41600-3_1

    ‘The Invisible Chain by Which All Are Bound to Each Other’: Civil Defence Magazines and the Development of Community During the Second World War

    No full text
    This article uses local collaboratively produced civil defence magazines to examine how community spirit was developed and represented within the civil defence services during the Second World War. It highlights the range of functions which the magazines performed, as well as the strategies employed by civil defence communities to manage their emotions in order to keep morale high and distract personnel from the fear and boredom experienced while on duty. The article also discusses silences in the magazines — especially around the experience of air raids — and argues that this too reflects group emotional management strategies. The significance of local social groups in developing narratives about civil defence and their workplace communities is demonstrated, and the article shows how personnel were able to engage with and refashion dominant cultural narratives of the ‘people’s war’ in order to assert their own status within the war effort

    Formal verification of a memory model for C-like imperative languages

    Get PDF
    http://www.springer.com/International audienceThis paper presents a formal verification with the Coq proof assistant of a memory model for C-like imperative languages. This model defines the memory layout and the operations that manage the memory. The model has been specified at two levels of abstraction and implemented as part of an ongoing certification in Coq of a moderately-optimising C compiler. Many properties of the memory have been verified in the specification. They facilitate the definition of precise formal semantics of C pointers. A certified OCaml code implementing the memory model has been automatically extracted from the specifications

    Toward a History of Women Projectionists in Post-war British Cinemas

    Get PDF
    Cinema projection is usually understood to be a male-dominated occupation, with the projection box characterised as a gendered space separate from the more typically feminine front-of-house roles. Although this is a fairly accurate representation, it risks eliminating all traces of women’s labour in the projection box. Previous work by David R. Williams (1997) and Rebecca Harrison (2016) has addressed the role of women projectionists during wartime, and this article begins to excavate a hidden history of women projectionists in a peacetime context. The article uses oral testimony from two women – Florence Barton and Joan Pearson – who worked as projectionists in the mid-twentieth century. Their accounts are presented in the article as two portraits, which aim to convey a sense of the women’s everyday lives in the projection box, as well as think about implications that their stories have for our understanding of women’s roles in projection more broadly. Of particular significance to both Barton and Pearson are the relationships that they had with their male colleagues, the possibilities afforded for career progression (and the different paths taken by the women) and the nature of projection work. The women’s repeated assertions that they were expected to do the same jobs as their male counterparts form a key aspect of the interviews, which suggest there is scope for further investigation of women’s labour specifically in projection boxes and in cinemas more generally
    • 

    corecore