User Tools

Site Tools


en:lehre:softwareentwicklung:buch:01:index

01. Motivation: The nature of science

Topics
Science and the scientist’s responsibility
Gaining insight through an understanding of interrelationships
Scientific data analysis: requirements
Larger projects require knowledge of software development
Chapter at Springer (German)
https://link.springer.com/chapter/10.1007/978-3-662-71607-6_1

Key aspects

  • Science places high demands on those who practise it.
    Scientists should be aware of these demands.
  • Computer-assisted data analysis often plays a significant role in the natural sciences.
    Writing code is a necessary means to an end.
  • Software for scientific data analysis should meet a number of requirements:
    reusability, self-documentation, reliability,
    verifiability, user-friendliness, extensibility and reproducibility.
  • Analysis software can quickly become complex.
    Knowledge of professional software development strategies is therefore important.

Summary

Why shouldn’t scientists engage not only with programming but, in particular, with scientific software development during their studies? And what, in fact, is the difference between programming and software development?

Software is becoming increasingly important at every stage of research, from planning through data collection and analysis to the publication of results. Most of this software is written by the researchers themselves – who, in most cases, have never formally learnt to code, let alone how to develop software that can be understood and used by others (including their future selves), whilst also meeting the standards of scientific rigour.

A core aspect of all science is reproducibility and, consequently, the ability for others to independently verify the results. For software that plays a crucial role in the scientific knowledge-generation process, this means, first and foremost: readability, clarity and expressiveness of its source code. Researchers are responsible for ensuring that the software they develop is of sufficient quality.

In this first chapter, drawing on the nature of science, seven requirements that scientific software should meet are briefly presented.

Comprehension questions

These questions are intended to encourage personal reflection on the topic, but no answers are provided.

  • What is a key aspect of scientific work that should be reflected in the processing and analysis of data?
  • What requirements should software for scientific data analysis meet? What implications does this have from a programmer’s perspective, and how might these be addressed?
  • What responsibility does every scientist have towards science? How should this influence the way they work?

Newtons letter to Hooke

If I have seen further, it is by standing on ye shoulders of giants. Sir Isaak Newton1)

The spelling “ye” for “the” comes from Old English; strictly speaking, the “y” here is also incorrect – it is actually a Thorn, i.e. the letter “þ”. The spelling with “y”, as an archaic form, has survived to this day in expressions such as “ye olde”.

Further reading

An annotated and carefully selected list of further reading on the subject. The selection is, by its very nature, subjective.

Philosophy of science

Addressing the question “What is science?” goes far beyond the scope of this book and is, not without reason, the subject of entire books and dedicated lectures on the philosophy of science (usually within the Faculty of Philosophy). Those interested are recommended to consult relevant primary literature (including Popper, Kuhn and Hacking) and secondary literature (including Poser and Chalmers). For those wishing to explore the historical context of Newton’s quotation in his letter to Hooke in greater depth, Merton’s highly scholarly book of the same name is recommended.

  • Chalmers, Alan F. (1999): What is this thing called Science?, Open University Press, Berkshire, UK
  • Hacking, Ian (1995): Einführung in die Philosophie der Naturwissenschaften, Reclam, Stuttgart
  • Kuhn, Thomas S. (1976): Die Struktur wissenschaftlicher Revolutionen, Suhrkamp, Frankfurt am Main
  • Merton, Robert K. (1993): On the Shoulders of Giants. A Shandean Postscript, The University of Chicago Press, Chicago and London
  • Popper, Karl (2005): Logik der Forschung, Mohr Siebeck, Tübingen
  • Poser, Hans (2001): Wissenschaftstheorie, Reclam, Stuttgart

Scientific Computing / Computational Science

Particularly in experimental physical chemistry and related disciplines, computer-aided data analysis is indeed ubiquitous, but it remains merely a “means to an end”. Two articles addressing the problem that most scientists have never learnt how to write software are listed below. Further details on this will follow in the second part of the motivation.

  • Merali, Zeeya (2010): ...why scientific programming does not compute, Nature 467:775-777
  • Wilson, Greg (2006): Software carpentry. Getting scientists to write better code by making them more productive, Comput. Sci. Eng. 8:66-69
1)
Letter to Robert Hooke, February 5, 1676
en/lehre/softwareentwicklung/buch/01/index.txt · Last modified: by 127.0.0.1