Introduction

This course

Idea

  • Understand how things work, and what to expect from them
  • Acquire skills that help you in the day-to-day work
  • How to “end up” with good software
  • works for me 👉 works 👉 works well

Format

  • Weekly lectures with exercises
  • Changing lecturers (Lukas, Flo, Manuel, and Victor)

Passing and grades

  • Active participation in the exercises will get you a 2 (“pass”)
  • If you want a different grade, you can prepare a presentation for the last lecture date, and we’ll grade that
  • We expect attendance in at least 80% of the lectures - contact us if that’s not possible for you
  • You will also need 50% of the score for the exercises

The exercises

  • We provide exercises at the end of each lecture
  • Programming exercises will use python
  • You have to hand-in the answers before the next lecture
  • We will grade and discuss them one week later
  • Starting with lecture 2 submitting will usually be a git merge request, but we’ll explain that next week

The topics

Basic workbench

  • The command line
  • Git
  • Coding environment & tools
  • Reproducibility and CI
  • Git advanced

Working with code

  • Error handling & logging
  • Debugging
  • Testing
  • Refactoring
  • User experience design
  • Open development

Understanding usage

  • Data structures
  • Complexity

The students

Who needs a grade?

Who is experienced with git?

Who has used an HPC system before?

Which programming languages do you speak?

  • Python
  • Fortran
  • C/C++
  • other

What is missing in our lecture concept?

Course materials

The source of the slides is public

Cookies

We will award cookies for improvements / fixes to the slides. Just open an issue and/or a merge request at

https://gitlab.dkrz.de/gss/lecture-materials