Research Software Curriculum

These materials represent a curated curriculum designed to help you develop and maintain your repository and code base. All of the resources listed below are free to access and use, and supplementary material like video lessons has been added where possible and relevant.

Bash

  • What is Bash? - of all the shells available, Bash is one of the most popular, the most powerful, and the most friendly
  • Bash Essentials – Bash commands commonly used to navigate file directories in your Terminal/GitBash
  • The Unix Shell lesson from Software Carpentries - use of the shell is fundamental to using a wide range of other powerful tools and computing resources. These lessons will start you on a path towards using these resources effectively
  • Installation Instructions - particularly important for Windows users, as Bash comes pre-installed on Mac. Windows users will need to install GitBash following the instructions at this link
  • Using the Terminal in Mac - The Terminal app allows you to control your Mac using a command prompt

Git

GitHub/GitLab (remote repositories)

Jupyter Notebooks and JupyterLab

Anaconda Navigator and managing conda environments

  • Anaconda Installation Guide from Software Carpentries - Although one can install a plain-vanilla Python and all required libraries by hand, we recommend installing Anaconda, a Python distribution that comes with the latest version of Python and Jupyter Notebooks by default
  • Intro to Anaconda Navigator - Anaconda Navigator is a graphical user interface to the conda package and environment manager. This 10-minute guide to Navigator will have you navigating the powerful conda program in a web-like interface without having to learn command line commands
  • Introduction to Conda for (Data) Scientists - Conda is an open source package and environment management system that easily creates, saves, loads, and switches between environments on your local computer
  • Managing Conda environments - documentation on performing a range of common tasks with Conda using the command line

Python

Pandas

  • Getting started with Pandas - documentation and quick start guide for Pandas, an essential Python library used for working with data sets. It has functions for analyzing, cleaning, exploring, and manipulating data
  • Pandas Tutorial - 14-part tutorial series featuring live code examples and tests of your knowledge
  • Pandas Data Wrangling Cheat Sheet - to excel data analysis/data science/machine learning in Python, Pandas is a library you need to master. Here is a cheat sheet of some of the most used syntax that you probably don’t want to miss
  • Pandas Cheat Sheet - Visual - visual, printable 2-page reference guide on commonly performed operations using Pandas
  • Ultimate Pandas Guide — Inspecting Data Like a Pro - Whether you’re working on a simple analysis or a complex machine learning model, there’s a lot of value in being able to answer quick, exploratory questions about the nature of your data. This is a walk through of several DataFrame attributes and methods that make data inspection painless and productive
  • 10 Efficient Ways for Inspecting a Pandas DataFrame Object - A guide to using pandas effectively and efficiently

Plotly

  • Getting Started with Plotly - The plotly Python library is an interactive, open-source plotting library that supports over 40 unique chart types covering a wide range of statistical, financial, geographic, scientific, and 3-dimensional use-cases
  • Plotly Python Open Source Graphing Library - Examples of how to make line plots, scatter plots, area charts, bar charts, error bars, box plots, histograms, heatmaps, subplots, multiple-axes, polar charts, and bubble charts
  • Heatmaps with Plotly - How to make Heatmaps in Python with Plotly

Ipywidgets

R

MATLAB

Modular Code and testing

Docker

VSCode

Continuous Integration

Reproducible Research