Skip to content

Commit

Permalink
Merge pull request #134 from uwhackweek/prelim_restructure
Browse files Browse the repository at this point in the history
Preliminary restructure
  • Loading branch information
jomey authored Jul 20, 2023
2 parents fecd42a + 8878ce9 commit 8e7e35c
Show file tree
Hide file tree
Showing 16 changed files with 93 additions and 618 deletions.
27 changes: 12 additions & 15 deletions book/_toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,27 +15,20 @@ parts:
- file: CoC
- caption: Preparation
chapters:
- file: preliminary/index
- file: preliminary/checklist_index
sections:
- file: preliminary/github
- file: preliminary/jupyterhub
- file: preliminary/git
- file: preliminary/earthdata
- file: preliminary/swc
- file: preliminary/supplemental_index
sections:
- file: preliminary/supplemental/python
- file: preliminary/supplemental/conda
- file: preliminary/checklist/github
- file: preliminary/checklist/jupyterhub
- file: preliminary/checklist/git
- file: preliminary/checklist/earthdata
- file: preliminary/skills_refresher_index
sections:
- file: preliminary/skills-refresher/swc
- caption: Tutorials
chapters:
- file: tutorials/index
sections:
- file: tutorials/example/tutorial-notebook
- file: tutorials/git_and_jupyterlab/index
title: Git, GitHub, and JupyterLab
sections:
- file: tutorials/git_and_jupyterlab/basic-git
- file: tutorials/git_and_jupyterlab/jupyter
- caption: Projects
chapters:
- file: projects/list_of_projects
Expand All @@ -52,3 +45,7 @@ parts:
- file: reference/open_source_software
- file: reference/questions
- file: reference/social
- file: reference/supplemental_index
sections:
- file: reference/supplemental/python
- file: reference/supplemental/conda
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Each participant will need a login. We will be teaching you ways to programmatic

If you do not already have an Earthdata login, then navigate to the [Earthdata Login](https://urs.earthdata.nasa.gov/) page, a username and password, and then record this somewhere for use during the tutorials:

![earthdata-login](../img/earthdata-login.png)
![earthdata-login](../../img/earthdata-login.png)

## Configure programmatic access to NASA servers

Expand Down
4 changes: 2 additions & 2 deletions book/preliminary/git.md → book/preliminary/checklist/git.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Go to {{ jupyterhub_url }}. See also our JupyterHub documentation: {ref}`accessi
### 2. Open a Terminal
Choose the 'Terminal' from the 'Other' options in the 'Launcher' tab.

![jupyterlab](../img/jupyter-terminal.png)
![jupyterlab](../../img/jupyter-terminal.png)

### 3. Configure basic `git` information
Set your username and email address. The email address should be the same
Expand Down Expand Up @@ -76,7 +76,7 @@ account password.
Take a moment to work through the instructions on the [GitHub personal access tokens](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) page. For this hackweek, you need to check the **repo**, **admin:org**, and **workflow** scope.

Screenshot from github.com setting up the token:
![github-token](../img/github-token.png)
![github-token](../../img/github-token.png)

Once you have created your token, be sure to save it on your computer in case
you need to re-authenticate again. The token will give you access to your
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ There are three reasons you are required to have a GitHub account for the hackwe

Go to [GitHub](https://github.com/).

![github-signup](../img/github-signup.png)
![github-signup](../../img/github-signup.png)

Next, enter your email address and click on the green 'Sing up for GitHub' button.
You will need to answer a few required questions in the following dialogs.
Expand Down Expand Up @@ -53,18 +53,18 @@ public membership also helps so that others can recognize your participation in
First, navigate to the "People" tab on the {{ hackweek }} GitHub organization
({{ github_org_url }}) and find yourself:

![people-tab](../img/people-github.png)
![people-tab](../../img/people-github.png)

Now, if you see "Private" to the right of your account, you will need to switch this to "Public":

![private-setting](../img/public-github.png)
![private-setting](../../img/public-github.png)

The steps for doing this are also well documented on [this](https://help.github.com/en/articles/publicizing-or-hiding-organization-membership) GitHub help page.

## How will GitHub repositories be structured?

When you click on the "Repositories" tab in the {{ '[GitHub organization]({url})'.format(url=github_org_url) }} you will see a list of names, each of which links to a separate GitHub repository:

![repos-tab](../img/repos.png)
![repos-tab](../../img/repos.png)

Each repository is a container for a specific subset of material for this event. For example, there is a repository for the public-facing website you used to register for this event {{website_url}}. We'll also create new repositories for each project.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

We use {term}`JupyterHub` in an educational setting because it enables us to quickly begin working with code. Each participant connects to a computational environment hosted in the cloud. All that is required is a web browser, and a GitHub username for authentication:

![jupyterhub-connectivity](../img/jupyterhub-connectivity.png)
![jupyterhub-connectivity](../../img/jupyterhub-connectivity.png)

We encourage you to use these shared cloud environments for all the tutorials, and you can optionally use this for your projects as well.

Expand All @@ -29,7 +29,7 @@ The screenshots below will not exactly match what you see and you should see you
user information for instance.
```

![jupyterhub-authentication](../img/jupyterhub-authentication.png)
![jupyterhub-authentication](../../img/jupyterhub-authentication.png)

### After each login

Expand All @@ -38,7 +38,7 @@ It can take several minutes for new servers to launch on the cloud - be patient!
Once things are spun up you will see your very own instance of a {term}`JupyterLab` environment
```

![jupyterhub-overview](../img/jupyterhub-overview.png)
![jupyterhub-overview](../../img/jupyterhub-overview.png)

When you log into JupyterHub you have access to your own virtual drive space
under the `/home/jovyan` directory. No other users will be able to see or access
Expand All @@ -51,7 +51,7 @@ Stopping the server happens automatically when you navigate to "File -> Log Out"
and click "Log Out"! to end a session. You can also select "File -> Hub Control
Panel -> Stop my Server".

![hub-control-panel-button](../img/hub-logout-button.png)
![hub-control-panel-button](../../img/hub-logout-button.png)

```{attention}
When you are finished working for the day it is important to explicitly log
Expand Down
62 changes: 14 additions & 48 deletions book/preliminary/index.md → book/preliminary/checklist_index.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,4 @@
# Preliminary Work

We welcome all types of learners to our event, from professional software
developers to people just getting started. Based on previous experience,
participants gain more from our hackweeks when they arrive having a preliminary
understand of some of the foundational tools of data science workflows. These
skills include knowing how to:

* Navigate a [Jupyter Notebook](https://jupyter.org/) environment
* Conduct file management, text editing and other basic tasks from a command
line interface
* Add and commit changes in Git, and push and pull content from GitHub
* Create simple scientific workflows in Python

## {{hackweek}} Software Carpentry Session

We strongly encourage participants to review this two-day recorded fundamentals
of Python and open-source workflows crash course
([Software Carpentry Schedule](swc)) in advance of the hackweek. You may
choose whichever topics you'd like to brush up on or learn. Office hours in the
weeks leading up the hackweek will provide an opportunity for asking questions
and troubleshooting any issues you've encountered.

You can view our [Software Carpentry Schedule](swc) for more information.

# Checklist
## Required setup

```{attention}
Expand Down Expand Up @@ -52,11 +28,6 @@ __Upon completion you__:
</div>
```

### GitHub Account

Everyone attending {{ hackweek }} will require obtaining a GitHub account.
Visit our [GitHub instruction page](github) to learn how!

### Slack Account

All of our communication throughout the hackweek will be done using the
Expand All @@ -68,30 +39,25 @@ Having your name and picture with your Slack account helps us and your peers
to identify you on Slack and builds a more personal community throughout
the week.

### EarthData Login

We'll have you download some data from NSIDC for your tutorials and projects.
Visit our [Earthdata](checklist/earthdata.md) page to learn how to access and Earthdata
login account if you don't already have one!

### GitHub Account

Everyone attending {{ hackweek }} will require obtaining a GitHub account.
Visit our [GitHub instruction page](checklist/github.md) to learn how!

### JupyterHub

We will offer all tutorials within the Jupyter Hub computing environment.
Visit our [Introduction to Jupyter Hub](jupyterhub) page to learn more!
Visit our [Introduction to Jupyter Hub](checklist/jupyterhub.md) page to learn more!

### Git

All content of the hackweek will be shared via GitHub and interacting with the
website will be done via the `git` command.
Visit [Setting up the `git` command](git) to learn how to configure that!

### EarthData Login

We'll have you download some data from NSIDC for your tutorials and projects.
Visit our [Earthdata](earthdata) page to learn how to access and Earthdata
login account if you don't already have one!

## Supplemental Material

### Python

Dive deeper into how [Python is managed and installed](supplemental/python) on
the JupyterHub and how you can install that on your personal machine.
Visit [Setting up the `git` command](checklist/git.md) to learn how to configure that!

### Conda
A basic intro to manage Python environments using the
[conda package manager](supplemental/conda)
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,16 @@ topics.

Below you will find links to our training materials from the 2021 SnowEx
Hackweek. If you are new to Git, Linux, Python, please set aside a day or two
to go over these materials in advance:
to go over these materials in advance.

## Getting ready

Please take a minute before the workshop to go over
the [GitHub instructions](github), create an account.
the [GitHub instructions](../checklist/github.md), create an account.

```{attention}
We will be using the JupyterHub ({{ jupyterhub_url }}) throughout this workshop.
We encourage you to test your [connection to JupyterHub](jupyterhub) before the training.
```
## Jupyter, Git, and Unix Shell

## Schedule

### Jupyter, Git, and Unix Shell

#### [Link to video of Day 1 tutorial](https://www.youtube.com/watch?v=F8VhkKwCx0k)
### [Link to video of Day 1 tutorial](https://www.youtube.com/watch?v=F8VhkKwCx0k)

This lessons covers:

Expand All @@ -40,9 +33,9 @@ This lessons covers:
* Unix Shell ([Topics 1 to 3](http://swcarpentry.github.io/shell-novice/))
* Git/GitHub ([Topics 1 to 5](http://swcarpentry.github.io/git-novice/))

### Python Programming Language
## Python Programming Language

#### [Link to video of Day 2 tutorial](https://www.youtube.com/watch?v=OhzHoGe9ZeI)
### [Link to video of Day 2 tutorial](https://www.youtube.com/watch?v=OhzHoGe9ZeI)

This lessons covers:

Expand Down
38 changes: 38 additions & 0 deletions book/preliminary/skills_refresher_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Skills Refresher

Our hackweeks focus on applied, hands-on learning, with participants engaging in extended periods of small-group work. Our tutorials are designed to offer a broad snapshot of data science tools to support your applied investigations. Due to the relatively short duration of our events, we are not able to provide comprehensive, in-depth training in fundamental tools. Rather, our goal is to inform you about the types of tools we think are best suited to working with your datasets, leaving details of implementation to be supported through peer-learning and office hours.

## Typical Workflows and Tools

Here are a few specific scenarios of how hackweek participants typically engage
with data science tools during an event:

* Connecting to a [Jupyter Notebook](https://jupyter.org/) environment and using
the command line to pull lesson content for a morning of tutorial training.
* Modifying a text file, committing it to Git and pushing changes to GitHub, for
others on your team to view and edit.
* Opening CSV tabular data in Pandas and using filtering functions to remove
outliers.
* Accessing a cloud-hosted remote sensing image using Rasterio and plotting it
on an interactive map.
* Exploring multi-dimensional climate grids using xarray.

These are examples of the types of activities we do at a hackweek in a
collaborative setting. We invite you to reflect on your comfort level with tasks
such as these so that you can arrive at the hackweek with a clarity on where to
dedicate your energy. If wish to focus more energy on learning and implementing
new tools, we will support you with helpers and office hours, and you may have a
bit less time for applied group work. If you are already proficient in a lot of
tools you may find you can dedicate more energy to applied project work, which
we support through facilitated group activities.

## Software Carpentry Session

We strongly suggest that participants who are just beginning to learn Python and
collaborative data science tools to complete our
recorded ([Software Carpentry Training](./skills-refresher/swc)) in advance of the hackweek. You
may choose whichever topics you'd like to brush up on or learn.

## Project Pythia

Another excellent resource for training and skills development is the [Project Pythia](https://projectpythia.org/) organization. Their lessons and galleries are developed specifically for the geoscience community. For a good skills refesher, we encourage you to work through their [Pythia Foundations](https://foundations.projectpythia.org/landing-page.html) notebooks.
4 changes: 0 additions & 4 deletions book/preliminary/supplemental_index.md

This file was deleted.

File renamed without changes.
File renamed without changes.
11 changes: 11 additions & 0 deletions book/reference/supplemental_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Supplemental Material

## Python

Dive deeper into how [Python is managed and installed](../reference/supplemental/python) on
the JupyterHub and how you can install that on your personal machine.

## Conda

A basic intro to manage Python environments using the
[conda package manager](../reference/supplemental/conda)
Loading

0 comments on commit 8e7e35c

Please sign in to comment.