Skip to content

Commit

Permalink
Merge pull request #19 from esciencecenter-digital-skills/research-so…
Browse files Browse the repository at this point in the history
…ftware

Research software
  • Loading branch information
JaroCamphuijsen authored Apr 9, 2024
2 parents 8dca602 + 6fe4131 commit 3484ac8
Show file tree
Hide file tree
Showing 7 changed files with 84 additions and 80 deletions.
80 changes: 0 additions & 80 deletions modules/researchsoftware.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,84 +8,4 @@ thumbnail: "nlesc-dummy.png"
visibility: visible
---

:::Chapter{headline="Slides: Software" presentation="slides-software.md"}

:::

:::Chapter{headline="Software and Data" widemd=1}

### Software is data (10 minutes, optional)
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


### Software is a special type of data ()
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.


https://github.com/danielskatz/software-vs-data

https://doi.org/10.7287/peerj.preprints.2630v1


### Discussion

-
- Can you think of examples where the line between software and data becomes fuzzy?

:::

:::Chapter{headline="Slides: Research Software" presentation="slides-researchsoftware.md"}

:::

:::Chapter{headline="Research software" widemd=1}

## The role of research software (10 minutes)

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.

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

After reading the piece, discuss the following questions:

- What are the different roles of research software?
- What are the challenges for each of these roles?
- How can we address these challenges?

:::


:::Chapter{headline="Exercise: the Research Life Cycle" widemd=1}

## Exercise: Where does software fit in the research life cycle?

Take a look at the research life cycle below.

<img src="stories/_fairsoftware/researchcycle.png" alt="The Research Life Cycle" width="400"/>

Think of a piece of research software you have used or developed.

Where does it fit in the research life cycle?

### Existing software

The following research software can also be used as examples:

- [Xenon](https://research-software-directory.org/software/xenon)
- [ESMValTool](https://research-software-directory.org/software/esmvaltool)
- [RS-DAT](https://research-software-directory.org/projects/rs-dat)
- [Haddock](https://research-software-directory.org/software/haddock3)
- [worcs](https://cjvanlissa.github.io/worcs/index.html)

:::

24 changes: 24 additions & 0 deletions modules/researchsoftware/exercise-is-it-research-software.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@

## Exercise: Is it research software?

Using the definition of research software from the FAIR4RS working group, try to classify the following as "research software" or "software in research"

### Example software tools

#### Shape Preserving Local Histogram Modification Algorithm
[An Analysis and Implementation of the Shape Preserving Local Histogram Modification Algorithm](https://doi.org/10.5201/ipol.2018.236) is a published article on [IPOL](https://www.ipol.im/). The source code implementing the algorithm is available for download.

Is this "research software" or "software in research"?

#### SciPy
[SciPy](https://zbmath.org/software/6293) is open-source software for mathematics, science, and engineering.
It is also the name of a very popular conference on scientific programming with Python. The SciPy library depends on NumPy, which provides convenient and fast N-dimensional array manipulation.
The SciPy library is built to work with NumPy arrays, and provides many user-friendly and efficient numerical routines such as routines for numerical integration and optimization.
Together, they run on all popular operating systems, are quick to install, and are free of charge.
NumPy and SciPy are easy to use, but powerful enough to be depended upon by some of the world’s leading scientists and engineers.

Is this "research software" or "software in research"?

### Other software tools
How about other software tools you are familiar with?
Can you provide an example of software you are familiar with, and then classify it as "research software" or "software in research"?
20 changes: 20 additions & 0 deletions modules/researchsoftware/exercise-research-life-cycle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

## Exercise: Where does software fit in the research life cycle?

Take a look at the research life cycle below.

<img src="stories/_fairsoftware/researchcycle.png" alt="The Research Life Cycle" width="400"/>

Think of a piece of research software you have used or developed.

Where does it fit in the research life cycle?

### Existing software

The following research software can also be used as examples:

- [Xenon](https://research-software-directory.org/software/xenon)
- [ESMValTool](https://research-software-directory.org/software/esmvaltool)
- [RS-DAT](https://research-software-directory.org/projects/rs-dat)
- [Haddock](https://research-software-directory.org/software/haddock3)
- [worcs](https://cjvanlissa.github.io/worcs/index.html)
14 changes: 14 additions & 0 deletions modules/researchsoftware/research-software.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@

## The role of research software (10 minutes)

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.

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

After reading the piece, discuss the following questions:

- What are the different roles of research software?
- What are the challenges for each of these roles?
- How can we address these challenges?
File renamed without changes.
26 changes: 26 additions & 0 deletions modules/researchsoftware/software-and-data.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@

### Software is data (10 minutes, optional)
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


### Software is a special type of data ()
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.


https://github.com/danielskatz/software-vs-data

https://doi.org/10.7287/peerj.preprints.2630v1


### Discussion

-
- Can you think of examples where the line between software and data becomes fuzzy?

0 comments on commit 3484ac8

Please sign in to comment.