author: "Tobias Kölling, Florian Ziemen, and the teams at MPI-M and DKRZ"
---
# This course
## Idea
* Acquire skills that help you in the day-to-day work
* Understand how things work, and why they take the time they take
* Do things more efficiently
## Format
* Weekly lectures with exercises
* Changing lecturers
* If you need a grade, active participation in the exercises will get you a 2, if you want a different grade, you can prepare a presentation for the last lecture date, and we'll grade that.
## The exercises
* We provide exercises at the end of each lecture.
* You have to hand-in the answers _before_ the next lecture.
* We will draw candidates for presenting from those submissions.
* Starting with lecture 2 *submitting* will usually be a git commit hash, but we'll explain that next week.
* We expect attendence in at least 80% of the exercises - contact us if that's not possible for you.
# The topics
## Practical skills
* Working with the command line
* GIT
* Testing
* Debugging
* User experience and best practice
* Good scientific practice
## Understanding the system
* Computing devices (hardware)
* File & Data systems
* Memory hierarchies
## Understanding usage
* Programming paradigms
* Data structures
* Complexity
* Parallelism
# The lecturers
## DKRZ
* Claudia Frauen (HPC and GPU programming)
* Dominik Zobel (HPC and GPU programming)
* Florian Ziemen (data access and visualization)
* Georgiana Mania (HPC and GPU programming)
* Jan Frederik Engels *JFE* (experimental computer science)