Software and research: the Institute's Blog

ArticDEM project

By Daniel S. Katz, Assistant Director for Scientific Software and Applications at the National Center for Supercomputing Applications, University of Illinois Urbana-Champaign.

This article is part of our series: A day in the software life, in which we will be asking researchers from all disciplines to discuss the tools that make their research possible.

A large amount of today’s computational and data science involves combining the execution of many tasks that each run a model or transform data, to build up a multi-component model or a multi-stage data transformation. Most researchers initially do this manually, and then (if they have any programming experience) eventually move to using shell scripts when the manual process gets too painful.  However, shell scripts tend to limit the work to single resources, as they don’t really work well with parallel computing.

An alternative method is to use a system that I’ve been involved in developing: the Swift Parallel Scripting Language. (Note that there’s no relation here to Apple’s Swift, other than that they reused our name.) Swift provides an implicitly parallel and deterministic programming model, which applies…

Continue Reading

Good coding practiceBy Sanjay Manohar, University of Oxford, and Software Sustainability Institute fellow

When you try to distil years of experience into words, something is always lost. How can you convey the basic principles of a practical art in a seminar? Teaching coders how to code well is challenging because each person starts with a different set of experiences, a different skill set, and a different end goal in their programming journey. Yet there is something that brings them all together: a passion to improve their code to broaden the set of techniques they have in their toolbox.

As a teacher, it is crucial to remain aware of what students do and do not understand yet. A set of assessment techniques is part of the armament of every educator and allows the use of the most appropriate level of language, criticism and sophistication. These formative tools also give students the feedback they need to see their own limitations and measure themselves against.

On 10th April 2017, I held a seminar on good coding practice for neuroscientists. It was at the British Neuroscience Association Festival of Neuroscience, a national meeting involving neuroscientists of every kind from around the country. In a small seminar room in the convention centre, forty excitable scientists crowded…

Continue Reading

Measuring Behavior

By Robyn Grant, Manchester Metropolitan University, and Software Sustainability Fellow.

Measuring Behavior 2018 will take place in Manchester, 5th to 8th June 2018. Call for symposia and workshops is now open!  

I am a lecturer in Comparative Physiology & Animal Behaviour at Manchester Metropolitan University. I am really interested in measuring precise aspects of animal behaviour using image techniques. Specifically, I use high-speed video cameras to measure whisker movements in small mammals (and large underwater mammals), and then use image processing techniques to detect and track these fine, fast-moving sensors. I am really keen to develop free, open-source behavioural hardware and software systems to encourage quantitative behavioural measurement in the bio-sciences.

Indeed, I became a Software Sustainability Institute Fellow in 2014-15 to really get to grips with making our software adaptable and free for future users, which can hopefully be seen in our subsequent papers (Hewitt et al. 2017: A novel automated rodent tracker (ART), demonstrated in a mouse model of amyotrophic lateral sclerosis and Hewitt et al. 2016: Manual Whisker Annotator (MWA): A Modular Open-Source…

Continue Reading

Best coding practicesBy Sanjay Manohar, University of Oxford, and Software Sustainability Institute fellow.

We have a problem in neuroscience. The complexity of data analysis techniques increases every year. With each increase in complexity comes an increase in the possibility of error. We have already been plagued by such problems, which have been reported on the internet and in the news. With increasing quantities of code being written, these problems seem unlikely to subside. How can we address the root of the problem?

In a questionnaire I regularly give to my students, one recurrent and ominous statistic always emerges: neuroscientists are, by and large, taught by each other to code. A PhD student is taught by his postdoc, who is in turn guided by her PI, who herself learned to program on the job with help from colleagues. Nobody in the loop has been formally taught coding practices, or implements the kinds of guidelines or conventions that are commonly imposed when programming in industry. This, I believe, is a central part of the problem.

I see a…

Continue Reading

Library carpentryBy Julianne Schneider, Data Curator

This post was originally published at the Software Carpentry website.

In the space of a year, interest and participation in the Library Carpentry community has exploded like an amoeba who over-ate at an algae banquet and attempted one too many pseudopods.For Library Carpentry, though, this is a good thing; the pseudopods are propelling us forward across institutions, disciplines, and continents. The community, grounded in collaborative tools like Github and Gitter (I always want to type Glitter) is coalescing around lesson development and holding new workshops. Why is the buzz so strong? I think it’s a combination of relentless energy from people like Belinda Weaverand Tim Dennis (to name just a few), the acceptance and active encouragement of new people who want to contribute in some way, and the mutual recognition by all of us that in any one thing, we are all absolute beginners, and we all give each other permission to be terrible until we aren’t.

I am still terrible at Github and command line and use Tim’s Github workflow post every time I work with Github - seriously, this is Github workflow…

Continue Reading