Essential Computing Tools for Scientists
Tools for reproducible computational research: VSCode and Jupyter for interactive coding, Conda and Pixi for environment management, and Git and GitHub for version control and collaboration.
Authors
This course introduces essential tools for reproducible research and collaborative coding. It covers environment management with Conda and Pixi, focusing on creating isolated environments, managing dependencies, and sharing configurations. Git is presented as a version control system for tracking changes and maintaining project history, while GitHub extends these capabilities to cloud-based collaboration. Learners will gain practical skills in creating environments, committing changes, pushing to remote repositories, and contributing to open-source projects through forks and pull requests.
Credits
Installation
To run the course materials on your own machine, it is recommended that you:
- Install VSCode as your editor
- Install pixi or alternatively conda to create virtual Python environments (see the lessons on environment and package management)
- Create a dedicated folder for this course and install the virtual environment:
Download the pixi.toml file and install the environment:
pixi install --manifest-path pixi.toml
pixi shellDownload the environment.yml file and install the environment:
conda env create -f environment.yml
conda activate essential_toolsTo run the materials for this course, it is recommended that you:
- Install VSCode as your editor
- Install Pixi or alternatively Conda to create virtual environments
- Install Git for version control
- Create a GitHub account
Course Contents
Environment Management
Environment Management with Pixi
Managing project workspaces with Pixi
Environment Management with Conda
Managing project workspaces with Conda
Interactive Data Analysis with Jupyter Data Science Notebooks
Version Control with Git and GitHub
Version Control with Git
Tracking changes
Remote Repositories with GitHub
Cloud storage and management for version controlled projects