Skip to content

ENCCS/software-bootcamp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 

Repository files navigation

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

  • You should be prepared to install software on your own laptop and bring it to the bootcamp - see below.
  • Some previous experience with programming is advantageous but not mandatory - the first day is devoted to introductory topics.

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
  • A GitHub account - instructions
  • SSH connection to GitHub - instructions
  • A text editor - instructions
    • Sublime Text is also a good text-based code editor to use for Win, Linux, and Mac OS - instruction
  • Python via one of two ways:
    • through the Anaconda distribution - instructions
    • 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:
         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:

  • Gain confidence in developing software and using modern tools for collaborative software engineering.
  • Become comfortable with working in the Unix terminal.
  • Understand how Git enables transformative workflows for collaborative software development.
  • Understand the importance of good software development practices such as testing, documentation and dependency management.
  • Reflect on how FAIR principles can be applied to software.
  • Know which factors contribute to reproducible and reusable software.
  • Obtain hands-on experience in using modern software development tools and practices.
  • Know where to go next to further develop your skills.

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

  • Anastasiia Andriievska
  • Martin Simonsson
  • Yonglei Wang
  • Thor Wikfeldt

Schedule

Day 1 - Unix and Python introduction

Day 2 - Python intermediate

Day 3 - Python intermediate

Day 4 - Python intermediate, more Unix, and HPC

  • 10:00-11:00 Buffer time, Q&A session and discussions.
  • 11:00-12:00 Unix intermediate:
  • 13:00-15:00 Intermediate Unix

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

About

Material for RISE Software Bootcamp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published