This lesson is being piloted (Beta version)

Welcome and Q&A

Overview

Teaching: 30 min
Exercises: 15 min
Questions
  • How important to modern research is software?

  • How is software typically written in academia?

  • Why should we take the effort to write software well?

  • What are we going to learn today?

  • What will happen after this course?

Objectives
  • Explain why software is important to research and has value.

  • Understand what software contains, in addition to programming instructions.

  • Explain the differences between programming and engineering.

  • Describe the benefits of testing and version control.

See topic slides.

Key Points

  • Software is an indispensable tool of modern research.

  • The use and development of software in research is increasing.

  • The software you write is important.

  • Software contains far more value than just a sequence of instructions.

  • Use of version control enables programming to become science.

  • Writing software using established practices will save you time in the long run.

  • Always assume others will use and develop software you write (including a future version of yourself).

  • Be clear on software requirements but assume they they will change.

  • Funders are increasingly expecting software outputs to be sustainable and reusable.