Welcome to Software Carpentry

Simon Hettrick

  ORCID: 0000-0002-6809-5195

What's the worst that can happen?

code... is reused... The error is in the code that converts a 64-bit floating-point number to a 16-bit signed integer... the 64-bit numbers [are] larger... than [the previous code], triggering an overflow condition...

 

...[the] backup computer crashes, followed 0.05 seconds later by a crash of the primary computer.

Housekeeping

Research Software Group

 

www.rsg.soton.ac.uk

@RSGSoton

Software Sustainability Institute

 

www.software.ac.uk

@SoftwareSaved

How to deal with problems

Sticky notes

www.bit.ly/PreAug16

www.bit.ly/EtherAug16

Still having problems?

Say hello to your neighbours

Why care about software?

*Refs [1-3]

Use

software

Fundamental to

results

Time spent coding

Primarily self-taught

69%

92%

30%

90%

  1. Reliable

  2. Reproducible

  3. Reusable

4. Really good for research

What do we teach?

Automation

#! /bin/bash

#Initialise a counter
count=1

#Make new dir
mkdir NewImgDir

#Loop through file, copy and rename
for i in *.jpg
  do
    cp $i NewImgDir/"EventPhoto_"$count".jpg"
    count=$(( count + 1 ))
  done

Bash

Track and share work

Version control: Git

Which version of the code was used to generate this result?

How has this code changed?

Who made this change?

A high level language

This is going to be controversial...

Does your code work?

Unit testing

If it's not tested,

it's broken

Confidence in your code

Quickly check for bugs

And whether edits have introduced more bugs

That's all from me...

...but just the beginning for you

Want to see more of these?

www.bit.ly/BeforeAug16

References

[1] "It's impossible to conduct research without software, say 7 out of 10 UK researchers"http://www.software.ac.uk/blog/2014-12-04-its-impossible-conduct-research-without-software-say-7-out-10-uk-researchers

[2] Hannay JE, Langtangen HP, MacLeod C, Pfahl D, Singer J, et al.. (2009) How do scientists develop and use scientific software? In: Proceedings Second International Workshop on Software Engineering for Computational Science and Engineering. pp. 1–8. doi:10.1109/SECSE.2009.5069155.

[3] Prabhu P, Jablin TB, Raman A, Zhang Y, Huang J, et al.. (2011) A survey of the practice of computational science. In: Proceedings 24th ACM/IEEE Conference on High Performance Computing, Networking, Storage and Analysis. pp. 19:1–19:12. doi:10.1145/2063348.2063374.

[4] "Retraction" http://www.sciencemag.org/content/314/5807/1875.2.long

[5] Stefik A, Siebert A, Stefik M, Slattery M, "An empirical comparison of the accuracy rates of novices using the quorum, perl, and randomo programming languages", Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools
Pages 3-8 

 

20160831 SWC Introduction

By Simon Hettrick

20160831 SWC Introduction

Intro for SWC in Southampton

  • 1,562