# 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.