Skip to content

Commit

Permalink
Merge pull request #120 from esciencecenter-digital-skills/research-s…
Browse files Browse the repository at this point in the history
…oftware-update

Updates to the research software module
  • Loading branch information
DaniBodor authored Sep 9, 2024
2 parents 2455ff1 + bf95ea3 commit 099d465
Show file tree
Hide file tree
Showing 14 changed files with 203 additions and 104 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Research software?
title: Is it Research Software?
type: exercise
order: 5
---
Expand Down
4 changes: 2 additions & 2 deletions modules/researchsoftware/exercise-research-life-cycle.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Research life cycle
title: Research Life Cycle
type: exercise
order: 6
order: 5
---

## Exercise: Where does software fit in the research life cycle?
Expand Down
25 changes: 25 additions & 0 deletions modules/researchsoftware/exercise-writing-software.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: Writing Software
type: exercise
order: 2
---

## Writing software with Python (10 minutes)

<img src="media/python-online.png" width="70%">
<small>https://www.online-python.com/</small>

### If you have never written software before:

- Visit https://www.online-python.com/
- it will show you as an example the code for a function that adds items together.
- Play around with the code a bit, e.g.
- Try using words instead of numbers as inputs. What happens and why?
- Add a function that subtracts items rather than adding them. What happens now if you use words instead of numbers, and why?
- What else can you do?

### If you have experience in writing software:

- Buddy up with someone from the above group.
- Use the 4-eye principle (pair programming), to watch what they are doing and help them figure out what is going on and why.
- Try to be conscious in explaining what is important and what your buddy needs to know without overcomplicating matters or taking over the keyboard.
Original file line number Diff line number Diff line change
@@ -1,30 +1,37 @@
---
title: Software and data
title: Further Reading
type: reading
order: 2
order: 6
---

### Software is data (10 minutes, optional)
# Software and data

## Software is data

In computer science, the fact that software is data is considered one of the fundamental concepts of computing. The fact that the thing that operates the machine (software) is the same kind of thing as the thing it operates on (data) is definitely one of the strengths of current computersystems and one of the main reasons why we can do such complex and powerful things with the combination of hardware and software.

Read the following blogpost about why this concept is so powerful:
https://www.blackliszt.com/2014/04/fundamental-concepts-of-computing-software-is-data.html
The following blogpost discusses why this concept is so powerful: [Fundamental Concepts of Computing: Software is Data!](https://www.blackliszt.com/2014/04/fundamental-concepts-of-computing-software-is-data.html)

## Software is a special type of data

### Software is a special type of data (10 minutes, optional)
However for most practical purposes in most domains of scientific research (except maybe the domain of computer science) it is useful to make a distinction between the data that is software and other data. From now on, when we use the word data, we mean the kind fo data which is not software and which we use to store more static information.

- Software is executable, data is not.
- Data provides information or evidence, software provides a tool to do work on the data.
- Software is a creative work, scientific data are facts or observations.
- The lifetime of software is generally not as long as that of data.

[Software vs Data](https://github.com/danielskatz/software-vs-data)

[Software vs. data in the context of citation](https://doi.org/10.7287/peerj.preprints.2630v1)


https://github.com/danielskatz/software-vs-data
# The role of Research Software

https://doi.org/10.7287/peerj.preprints.2630v1
The following piece was written after a workshop called "The Future of Research Software", held in the Netherlands in 2022.

It explores the different roles for research software in the research life cycle, strengthening the case for sustainable software.

### Discussion
[Defining the Roles of Research Software](https://upstream.force11.org/defining-the-roles-of-research-software/)

- Can you think of examples where the line between software and data becomes fuzzy?
[Defining Research Software: a controversial discussion](https://zenodo.org/records/5504016): Summary Report of FAIR4RS Subgroup 3 activity and discussion
2 changes: 1 addition & 1 deletion modules/researchsoftware/info.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Learning objectives
title: Learning Objectives
type: info
order: 0
---
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file added modules/researchsoftware/media/python-online.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 0 additions & 19 deletions modules/researchsoftware/research-software.md

This file was deleted.

64 changes: 50 additions & 14 deletions modules/researchsoftware/slides-researchsoftware.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@ order: 3

## *Ceci n'est pas une photo*

<center>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/4f/Black_hole_-_Messier_87_crop_max_res.jpg/1280px-Black_hole_-_Messier_87_crop_max_res.jpg" width="55%">
</center>

<small>[The Event Horizon Telescope Collaboration et al. 2019](https://doi.org/10.3847/2041-8213/ab0ec7) (CC BY 3.0)</small>

Expand All @@ -40,11 +38,9 @@ The data can be converted into an image using custom software.

## The research lifecycle

<center>
<img src="media/researchcycle.png" alt="The Research Life Cycle" width="55%"/>
</center>

<small>Software is used all across the research lifecycle</small>
In which stages is software used?

Note:

Expand All @@ -54,9 +50,9 @@ Software is used all across the research life cycle.

<!-- .slide: data-state="standard" -->

<center>
<img src="media/definition.png" width="55%">
</center>
### What is Research Software?

<img src="media/definition.png" width="50%">

<small>definition of Research Software from the FAIR4RS working group</small>

Expand All @@ -71,19 +67,59 @@ The code written in R or Python for an analysis would be research software, howe
Just like a custom-made Excel macro that is used to analyse data.
Or a custom-made web application that is used to collect data.

==

<!-- .slide: data-state="standard" -->

## The research lifecycle

In which stages is ***Research Software*** used?

<img src="media/researchcycle.png" alt="The Research Life Cycle" width="55%"/>


Note:

Research Software is *mainly* used in "Collecting" and "Processing & analyzing" steps.
However, non-research software can also be used in these steps, and research software can also be used in other steps.

==

<!-- .slide: data-state="standard" -->

## The research lifecycle

In which stages is ***Research Software*** used?

<img src="media/research-cycle-RS.png" alt="The Research Life Cycle" width="55%"/>


Note:

Research Software is *mainly* used in "Collecting" and "Processing & analyzing" steps.
However, non-research software can also be used in these steps, and research software can also be used in other steps.

===

<!-- .slide: data-state="standard" -->

## Why the distinction?

- Research software is an important asset and output of research
- Enable proper attribution
- Increase Findability and Reuse
Defining Research Software...

- Acknowledges its importance during research
- Designates it as research output
- Enables proper attribution
- Facilitates findability and reusability

Note:

The distinction is important
By defining research software:

- we can more easily justify and emphasize how essential it is while doing research
- we can emphasize that creating (good) research software is an essential part of research and that the product is a true "deliverable" e.g. in grant applications
- we give the opportunity for the developers to gain (citable) recognition for their work
- by tagging software as "research software", we make it more (computer) findable, and therefor more easily reused

===

Expand All @@ -92,8 +128,8 @@ The distinction is important
## Take home messages

- Software is an important part of research
- Not all software used in research is research software
- It is important to regard research software in the whole research lifecycle
- Not all software used in research is Research Software
- Defining "Research Software" provides recognzition in the research community

===

Expand Down
Loading

0 comments on commit 099d465

Please sign in to comment.