ENCCS / software-bootcamp

Material for RISE Software Bootcamp
1 stars 0 forks source link

RISE Software Bootcamp

[!NOTE]

  • Online via Zoom
  • Dates: November 6-10 and 13-17
  • Time: 10:00-12:00 and 13:00-15:00 every day

Target audience

The RISE Software Development Bootcamp is a practical training program meant for both new and experienced RISE team members. It's meant to help newcomers understand programming and good software practices, and for our seasoned researchers to gain new skills to solve new types of problems.

The bootcamp covers several topics: we start with the basics of the Unix shell and move on to beginner and intermediate programming in Python or Julia (in parallel tracks). We also teach how to use Git for version control, especially when working with a team. We moreover focus on good practices in software testing, writing documentation, developing modular code, and understanding licensing. These skills will help you make software that's easy to maintain, reuse, and share - what we call FAIR software.

Our bootcamp offers a welcoming and useful environment for learning many necessary practical skills that are typically not taught in university education. We're looking forward to having you with us!

Prerequisites

Before the bootcamp

Before attending the bootcamp, please follow carefully the installation instructions below (click the arrow) to make sure that all tools and packages that will be needed during the bootcamp are installed correctly on your computer.

Installation instructions You will need the following tools installed on the computer you will use during the bootcamp. Please go through this list carefully and make sure to install everything that you don't already have installed. The links take you to external installation instructions for different operating systems. - Shell and Git - [instructions](https://coderefinery.github.io/installation/shell-and-git/) - A GitHub account - [instructions](https://coderefinery.github.io/installation/github/) - SSH connection to GitHub - [instructions](https://coderefinery.github.io/installation/ssh/) - A text editor - [instructions](https://coderefinery.github.io/installation/editors/) - **Sublime Text** is also a good text-based code editor to use for Win, Linux, and Mac OS - [instruction](https://www.sublimetext.com/download) - Python via one of two ways: - through the Anaconda distribution - [instructions](https://carpentries.github.io/workshop-template/install_instructions/#python-1) - or if you already have a Python installation and the `conda` package manager on your computer, make sure to install the required packages listed in the following yaml file by saving it to a file `env.yml` and then run `conda env create -f env.yml`: ```yaml name: bootcamp channels: - conda-forge - defaults - bioconda dependencies: - python>3.9 - click - ipywidgets - jupyterlab - jupyterlab-git - matplotlib - myst-parser - nbdime - numpy - pandas - pytest - pytest-cov - snakemake-minimal - sphinx - sphinx-autobuild - sphinx_rtd_theme - jsonlines - notebook - requests - seaborn - setuptools - twine - poetry - flit ```

Learning objectives

By attending this bootcamp, you will:

After attending the bootcamp and completing all hands-on exercises, you will be well equipped to contribute to programming tasks in your projects at RISE.

Course leaders

Schedule

Day 1 - Unix and Python introduction

Day 2 - Python intermediate

Day 3 - Python intermediate

Day 4 - Python intermediate, more Unix, and HPC

Day 5 - HPC and Cloud

Day 6 - Introduction to Git

Day 7 - Introductory and intermediate Git

Day 8 - Intermediate Git, Jupyter, Reproducibility

Day 9 - Reproducibility and Documentation

Day 10 - Testing and Modular code development