5,753 research outputs found
Conjoined Events
Many existing synchronous message-passing systems support
choice: engaging in one event XOR another. This paper introduces the AND operator that allows a process to engage in multiple
events together (one AND one more AND another; all conjoined),
engaging in each event only if it can atomically engage in all the
conjoined events. We demonstrate using several examples that this
operator supports new, more ?exible models of programming. We
show that the AND operator allows the behaviour of processes to
be expressed in local rules rather than system-wide constructs. We
give an optimised implementation of the AND operator and explore
the performance effect on standard communications of supporting
this new operator
Auto-Mobiles: Optimised Message-Passing
Some message-passing concurrent systems, such as occam 2, prohibit aliasing of data objects. Communicated data must thus be copied, which can be time-intensive for large data packets such as video frames. We introduce automatic mobility, a compiler optimisation that performs communications by reference and deduces when these communications can be performed without copying. We discuss bounds for speed-up and memory use, and benchmark the automatic mobility optimisation. We show that in the best case it can transform an operation from being linear with respect to packet size into constant-time
37 Million Compilations: Investigating Novice Programming Mistakes in Large-Scale Student Data
Previous investigations of student errors have typically focused on samples of hundreds of students at individual institutions. This work uses a year's worth of compilation events from over 250,000 students all over the world, taken from the large Blackbox data set. We analyze the frequency, time-to-fix, and spread of errors among users, showing how these factors inter-relate, in addition to their development over the course of the year. These results can inform the design of courses, textbooks and also tools to target the most frequent (or hardest to fix) errors
Investigating novice programming mistakes: educator beliefs vs. student data
Educators often form opinions on which programming mistakes novices make most often - for example, in Java: "they always confuse equality with assignment", or "they always call methods with the wrong types". These opinions are generally based solely on personal experience. We report a study to determine if programming educators form a consensus about which Java programming mistakes are the most common. We used the Blackbox data set to check whether the educators' opinions matched data from over 100,000 students - and checked whether this agreement was mediated by educators' experience. We found that educators formed only a weak consensus about which mistakes are most frequent, that their rankings bore only a moderate correspondence to the students in the Blackbox data, and that educators' experience had no effect on this level of agreement. These results raise questions about claims educators make regarding which errors students are most likely to commit
Frame-Based Editing: Easing the Transition from Blocks to Text-Based Programming
Block-based programming systems, such as Scratch or Alice, are the most popular environments for introducing young children to programming. However, mastery of text-based programming continues to be the educational goal for stu- dents who continue to program into their teenage years and beyond. Transitioning across the significant gap between the two editing styles presents a difficult challenge in school- level teaching of programming. We propose a new style of program manipulation to bridge the gap: frame-based edit- ing. Frame-based editing has the resistance to errors and approachability of block-based programming while retaining the flexibility and more conventional programming seman- tics of text-based programming languages. In this paper, we analyse the issues involved in the transition from blocks to text and argue that they can be overcome by using frame- based editing as an intermediate step. A design and imple- mentation of a frame-based editor is provided
Similarity and dissimilarity as evidence in perceptual categorization
In exemplar models the similarities between a new stimulus and each category exemplar constitute positive evidence for category membership. In contrast, other models assume that, if the new stimulus is sufficiently dissimilar to a category member, then that dissimilarity constitutes evidence against category membership. We propose a new similarity–dissimilarity exemplar model that provides a framework for integrating these two types of accounts. The evidence for a category is assumed to be the summed similarity to members of that category plus the summed dissimilarity to members of competing categories. The similarity–dissimilarity exemplar model is shown to mimic the standard exemplar model very closely in the unidimensional domain
Sequence effects in categorization of simple perceptual stimuli
Categorization research typically assumes that the cognitive system has access to a (more or less noisy) representation of the absolute magnitudes of the properties of stimuli and that this information is used in reaching a categorization decision. However, research on identification of simple perceptual stimuli suggests that people have very poor representations of absolute magnitude information and that judgments about absolute magnitude are strongly influenced by preceding material. The experiments presented here investigate such sequence effects in categorization tasks. Strong sequence effects were found. Classification of a borderline stimulus was more accurate when preceded by a distant member of the opposite category than by a distant member of the same category. It is argued that this category contrast effect cannot be accounted for by extant exemplar or decision-bound models of categorization. The effect suggests the use of relative magnitude information in categorization. A memory and contrast model illustrates how relative magnitude information may be used in categorization
Position Paper: Lack of Keyboard Support Cripples Block-Based Programming
Block-based programming is very popular with beginners, but it has failed to gain traction among intermediate and expert programmers. The mouse-centric interfaces typically found in block-based programming environments make edit interactions (especially in large programs) tedious and awkward. We propose that adding keyboard support is a key step to extending the applicability of block-based programming ideas and would allow their use by intermediate and expert programmers, extending some of their benefits to new user groups. We describe an implementation of this idea, `frame-based programming', which leads to a number of benefits in error avoidance and edit efficiency
- …