Skip to content
Snippets Groups Projects
slides.qmd 2.45 KiB
---
title: "Introduction"
---

# 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 (Tobi, Lukas, and Flo)

## Passing and grades
* Active participation in the exercises will get you a pass, or a 2 if you need a grade. 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 exercises - contact us if that's not possible for you.
* You will also need 50% of the score for the exercises.

::: {.notes}
The presentation can change your grade in either direction.
:::


## 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
* Working with the command line 
* Git
* Coding environment and reproducibility
* Tooling and CI
* Git advanced

## Working with code
* Testing
* Refactoring & Legacy code, Facade pattern
* Debugging
* User experience design
* error handling & observability (& logging)
* Open development, Licenses, ...

## Understanding usage
* Data structures
* Complexity
* Programming paradigms


# The students

## Who needs a grade? {.special}

## Who is experienced with git? {.special}

## Who has used an HPC system before? {.special}

## Which programming languages do you speak? {.special}

* Python
* Fortran
* C/C++
* other

## What is missing in our lecture concept? {.special}

# Course materials

## The source of the slides is public

* They are generated using [quarto](https://quarto.org/)
* Find the source code at [https://gitlab.dkrz.de/generic-software-skills/lecture-materials](https://gitlab.dkrz.de/generic-software-skills/lecture-materials) 
* And the generated slides at [https://generic-software-skills.gitlab-pages.dkrz.de/lecture-materials/](https://generic-software-skills.gitlab-pages.dkrz.de/lecture-materials/)




## 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/generic-software-skills/lecture-materials](https://gitlab.dkrz.de/generic-software-skills/lecture-materials)