---
# System prepended metadata

title: SWE course discussion

---

# SWE course discussion

**Group:** Anthony Arendt, Vikas Pejaver, Johann Brehmer, Stéfan van der Walt

## Target audience

Scientists who want to build their own libraries, research pipelines.

## Basic requirements

Proficiency in the programming language taught is required.

## Course outline

### Session 1

For this day, we will need a good example package; something that doesn't require too much coding, but would be fun to build up.

Building a basic package: file structure, licensing, requirements.

Documenting package (e.g. Sphinx + sphinx-api)

Testing (e.g. pytest)

### Session 2

Collaboration: Git, GitHub PR workflow

- Using branches, making a PR from that branch, updating PRs
- How do write an effective issue
- How to structure your pull request
- How to review other people's code

### Session 3

Deeper knowledge around programming & QA. How to write *good* code, not just *working code*.

- Continuous integration via GitHub actions
- Code style; what does healthy code look like (similarly, what are warning signs in bad code)

## Practical implementation

By compressing these sessions, they can be fit into three days of teaching. Or, by adding a practical project, it can be expanded to five days.
