# Overview

Here you'll set up the tools you'll use for the rest of the course: the cloud-based JupyterHub where you'll do most of your work, the Unix shell for navigating files and running commands, and Git/GitHub for version control and assignment submission.

## Learning objectives

By the end of this module, you should be able to:

1. **Use the course's working environment** — JupyterLab on the LEAP hub (primary) or Google Colab as a fallback — to create and edit notebooks.
2. **Navigate the file system** using shell commands — `pwd`, `ls`, `cd`, and paths (relative, absolute, `~`, `.`, `..`).
3. **Create, modify, and remove files and directories** using `mkdir`, `touch`, `mv`, `cp`, and `rm` — and understand why "deleted is forever" on the shell.
4. **Explain why version control exists** and what problem it solves.
5. **Track changes with git** — `init`, `add`, `commit`, and inspect history with `status` and `log`.
6. **Push code to GitHub** from your environment.
7. **Set up your assignments repository** and submit work using the course's week-folder pattern.

Use this list to check your understanding before moving on. If any item feels uncertain, the page that covers it is linked below.

## Pages in this section

- [JupyterLab and Colab](./jupyterlab_and_colab.md) — environments for running Python in your browser
- [Intro to Unix](./intro_to_unix.md) — navigating the file system and basic file operations
- [Intro to Git](./intro_to_git.md) — version control, GitHub workflow, and authentication for both environments
- [Assignment 1](./assignment1.md) — set up your assignments repository and submit your first week-folder
