Jul 11 2017 cs.CY
The collaborative development methods pioneered by the open source software community offer a way to create lessons that are open, accessible, and sustainable. This paper presents ten simple rules for doing this drawn from our experience with several successful projects.
Oct 17 2016 cs.SE
Software produced for research, published and otherwise, suffers from a number of common problems that make it difficult or impossible to run outside the original institution, or even off the primary developer's computer. We present ten simple rules to make such software robust enough to run anywhere, and inspire confidence in your reproducibility, and thereby delight your users and collaborators.
Sep 02 2016 cs.SE
We present a set of computing tools and techniques that every researcher can and should adopt. These recommendations synthesize inspiration from our own work, from the experiences of the thousands of people who have taken part in Software Carpentry and Data Carpentry workshops over the past six years, and from a variety of other guides. Unlike some other guides, our recommendations are aimed specifically at people who are new to research computing.
Jun 09 2015 cs.CY
The aim of this study was to investigate if participants of Software Carpentry (SC) get more done in less time. We asked 32 questions to assess 24 former participants to analyse if SC gave them the computing skills to accomplish this. Our research shows that time was already saved during the workshop as it could shorten the learning process of new skills. A majority of participants were able to use these new skills straight away and thus could speed up their day to day work.
Oct 03 2014 cs.SY
With quadrotor use seeing extensive growth in recent years, the autonomous control of these Unmanned Aerial Vehicles (UAVs) is an increasing relevant and intersting field. In this paper a linear state-space approach at designing a stable hover controller in the presence of disturbances is presented along with simulation of control system performance. Additionally the design of a tracking system, for linear inertial position and yaw, is presented with simulation results. The gain matrix developed for this control system is independent of the specific quadrotor parameters, meaning that this same gain matrix can be used on a wide variety of quadrotors without modification. The hover and tracking controllers designed in this paper proved to perform well in simulation under perturbation disturbances and normally distributed disturbances on the UAVs linear speeds and angular speeds.
Jul 24 2014 cs.SE
We studied scientists who attended two-day workshops on basic software skills to determine which tools and practices they found most useful. Our pre- and post-workshop surveys showed increases in self-reported familiarity, while our interviews showed that participants found learning Python more useful than learning the Unix shell, that they found pointers to further resources very valuable, and that background material---the "why" behind the skills---was also very valuable.
Jul 23 2014 cs.SE
We describe two pilot studies of code review by and for scientists. Our principal findings are that scientists are enthusiastic, but need to be shown code review in action, and that just-in-time review of small code changes is more likely to succeed than large-scale end-of-work reviews.
Jul 02 2014 cs.RO
Enabling high speed navigation of Unmanned Ground Vehicles (UGVs) in unknown rough terrain where limited or no information is available in advance requires the assessment of terrain in front of the UGV. Attempts have been made to predict the forces the terrain exerts on the UGV for the purpose of determining the maximum allowable velocity for a given terrain. However, current methods produce overly aggressive velocity profiles which could damage the UGV. This paper presents three novel safer methods of force prediction that produce effective velocity profiles. Two models, Instantaneous Elevation Change Model (IECM) and Sinusoidal Base Excitation Model: using Excitation Force (SBEM:EF), predict the forces exerted by the terrain on the vehicle at the ground contact point, while another method, Sinusoidal Base Excitation Model: using Transmitted Force (SBEM:TF), predicts the forces transmitted to the vehicle frame by the suspension.
Jun 12 2014 cs.SY
Consider the problem of control selection in complex dynamical and environmental scenarios where model predictive control (MPC) proves particularly effective. As the performance of MPC is highly dependent on the efficiency of its incorporated search algorithm, this work examined hill climbing as an alternative to traditional systematic or random search algorithms. The relative performance of a candidate hill climbing algorithm was compared to representative systematic and random algorithms in a set of systematic tests and in a real-world control scenario. These tests indicated that hill climbing can provide significantly improved search efficiency when the control space has a large number of dimensions or divisions along each dimension. Furthermore, this demonstrated that there was little increase in search times associated with a significant increase in the number of control configurations considered.
Nov 12 2013 cs.SE
PLOS and Mozilla conducted a month-long pilot study in which professional developers performed code reviews on software associated with papers published in PLOS Computational Biology. While the developers felt the reviews were limited by (a) lack of familiarity with the domain and (b) lack of two-way contact with authors, the scientists appreciated the reviews, and both sides were enthusiastic about repeating the experiment.
Over the last 15 years, Software Carpentry has evolved from a week-long training course at the US national laboratories into a worldwide volunteer effort to raise standards in scientific computing. This article explains what we have learned along the way the challenges we now face, and our plans for the future.
Scientists spend an increasing amount of time building and using software. However, most scientists are never taught how to do this efficiently. As a result, many are unaware of tools and practices that would allow them to write more reliable and maintainable code with less effort. We describe a set of best practices for scientific software development that have solid foundations in research and experience, and that improve scientists' productivity and the reliability of their software.