From 5216aa0a6d9ce5f5454a6fc58920b27ca3362232 Mon Sep 17 00:00:00 2001 From: aaarendt Date: Fri, 7 Jul 2023 13:25:42 -0700 Subject: [PATCH 1/8] modifying description of hackweek expectations --- book/preliminary/index.md | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/book/preliminary/index.md b/book/preliminary/index.md index 3f3a8ec..9b2eb78 100644 --- a/book/preliminary/index.md +++ b/book/preliminary/index.md @@ -1,27 +1,22 @@ # 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 +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. We are different from a more traditional summer school in that we do not provide a 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. -## {{hackweek}} Software Carpentry Session +## 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. -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. +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. + +## {{hackweek}} Software Carpentry Session -You can view our [Software Carpentry Schedule](swc) for more information. +We strongly suggest that participants who are just beginning to learn Python and collaborative data science tools to complete our recorded ([Software Carpentry Trailing](swc)) in advance of the hackweek. You may choose whichever topics you'd like to brush up on or learn. ## Required setup From 07b7db7add616230e26b3bb55ab82f061644c1da Mon Sep 17 00:00:00 2001 From: Joachim Meyer Date: Mon, 10 Jul 2023 12:00:45 -0600 Subject: [PATCH 2/8] Book - Restructure preliminary Split the preliminary section into a checklist and an optional skills refresher section. --- book/_toc.yml | 22 +++-- book/preliminary/{ => checklist}/earthdata.md | 2 +- book/preliminary/{ => checklist}/git.md | 4 +- book/preliminary/{ => checklist}/github.md | 8 +- .../preliminary/{ => checklist}/jupyterhub.md | 8 +- book/preliminary/checklist_index.md | 62 +++++++++++++ book/preliminary/index.md | 92 ------------------- .../preliminary/{ => skills-refresher}/swc.md | 2 +- book/preliminary/skills_refresher_index.md | 41 +++++++++ book/preliminary/supplemental_index.md | 4 - .../supplemental/conda.md | 0 .../supplemental/python.md | 0 book/reference/supplemental_index.md | 11 +++ .../tutorials/git_and_jupyterlab/basic-git.md | 2 +- book/tutorials/git_and_jupyterlab/index.md | 2 +- 15 files changed, 140 insertions(+), 120 deletions(-) rename book/preliminary/{ => checklist}/earthdata.md (96%) rename book/preliminary/{ => checklist}/git.md (98%) rename book/preliminary/{ => checklist}/github.md (94%) rename book/preliminary/{ => checklist}/jupyterhub.md (90%) create mode 100644 book/preliminary/checklist_index.md delete mode 100644 book/preliminary/index.md rename book/preliminary/{ => skills-refresher}/swc.md (96%) create mode 100644 book/preliminary/skills_refresher_index.md delete mode 100644 book/preliminary/supplemental_index.md rename book/{preliminary => reference}/supplemental/conda.md (100%) rename book/{preliminary => reference}/supplemental/python.md (100%) create mode 100644 book/reference/supplemental_index.md diff --git a/book/_toc.yml b/book/_toc.yml index 99d708c..bbfcf63 100644 --- a/book/_toc.yml +++ b/book/_toc.yml @@ -15,17 +15,15 @@ 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 @@ -52,3 +50,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 diff --git a/book/preliminary/earthdata.md b/book/preliminary/checklist/earthdata.md similarity index 96% rename from book/preliminary/earthdata.md rename to book/preliminary/checklist/earthdata.md index f04f7a6..973e3ad 100644 --- a/book/preliminary/earthdata.md +++ b/book/preliminary/checklist/earthdata.md @@ -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 diff --git a/book/preliminary/git.md b/book/preliminary/checklist/git.md similarity index 98% rename from book/preliminary/git.md rename to book/preliminary/checklist/git.md index 8c20211..0c1d5f9 100644 --- a/book/preliminary/git.md +++ b/book/preliminary/checklist/git.md @@ -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 @@ -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 diff --git a/book/preliminary/github.md b/book/preliminary/checklist/github.md similarity index 94% rename from book/preliminary/github.md rename to book/preliminary/checklist/github.md index 3013d9e..7225a80 100644 --- a/book/preliminary/github.md +++ b/book/preliminary/checklist/github.md @@ -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. @@ -53,11 +53,11 @@ 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. @@ -65,6 +65,6 @@ The steps for doing this are also well documented on [this](https://help.github. 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. diff --git a/book/preliminary/jupyterhub.md b/book/preliminary/checklist/jupyterhub.md similarity index 90% rename from book/preliminary/jupyterhub.md rename to book/preliminary/checklist/jupyterhub.md index 1048632..c6c5fc0 100644 --- a/book/preliminary/jupyterhub.md +++ b/book/preliminary/checklist/jupyterhub.md @@ -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. @@ -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 @@ -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 @@ -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 diff --git a/book/preliminary/checklist_index.md b/book/preliminary/checklist_index.md new file mode 100644 index 0000000..1f458ec --- /dev/null +++ b/book/preliminary/checklist_index.md @@ -0,0 +1,62 @@ +# Checklist +## Required setup + +```{attention} +Please make sure to find some time to go through the below material before +the hackweek. + +__Upon completion you__: +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+``` + +### GitHub Account + +Everyone attending {{ hackweek }} will require obtaining a GitHub account. +Visit our [GitHub instruction page](checklist/github.md) to learn how! + +### Slack Account + +All of our communication throughout the hackweek will be done using the +{{ '[`{hackweek}` Slack workspace]({url})'.format(hackweek=hackweek, url=slack_workspace_url)}}. +With your invite to the hackweek, you should also have received a separate +email to join the Slack workspace. Upon accepting the invite, please take a moment to +[complete your Slack profile](https://slack.com/help/articles/204092246-Edit-your-profile). +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. + +### JupyterHub + +We will offer all tutorials within the Jupyter Hub computing environment. +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](checklist/git.md) 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](checklist/earthdata.md) page to learn how to access and Earthdata +login account if you don't already have one! diff --git a/book/preliminary/index.md b/book/preliminary/index.md deleted file mode 100644 index 9b2eb78..0000000 --- a/book/preliminary/index.md +++ /dev/null @@ -1,92 +0,0 @@ -# Preliminary Work - -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. We are different from a more traditional summer school in that we do not provide a 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. - -## {{hackweek}} 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 Trailing](swc)) in advance of the hackweek. You may choose whichever topics you'd like to brush up on or learn. - -## Required setup - -```{attention} -Please make sure to find some time to go through the below material before -the hackweek. - -__Upon completion you__: -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-``` - -### 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 -{{ '[`{hackweek}` Slack workspace]({url})'.format(hackweek=hackweek, url=slack_workspace_url)}}. -With your invite to the hackweek, you should also have received a separate -email to join the Slack workspace. Upon accepting the invite, please take a moment to -[complete your Slack profile](https://slack.com/help/articles/204092246-Edit-your-profile). -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. - -### JupyterHub - -We will offer all tutorials within the Jupyter Hub computing environment. -Visit our [Introduction to Jupyter Hub](jupyterhub) 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. - -### Conda -A basic intro to manage Python environments using the -[conda package manager](supplemental/conda) diff --git a/book/preliminary/swc.md b/book/preliminary/skills-refresher/swc.md similarity index 96% rename from book/preliminary/swc.md rename to book/preliminary/skills-refresher/swc.md index 8a1b4e1..ff0f0b2 100644 --- a/book/preliminary/swc.md +++ b/book/preliminary/skills-refresher/swc.md @@ -16,7 +16,7 @@ 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. diff --git a/book/preliminary/skills_refresher_index.md b/book/preliminary/skills_refresher_index.md new file mode 100644 index 0000000..87a92c8 --- /dev/null +++ b/book/preliminary/skills_refresher_index.md @@ -0,0 +1,41 @@ +# 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. We +are different from a more traditional summer school in that we do not provide a +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 Trailing](./skills-refresher/swc)) in advance of the hackweek. You +may choose whichever topics you'd like to brush up on or learn. diff --git a/book/preliminary/supplemental_index.md b/book/preliminary/supplemental_index.md deleted file mode 100644 index 3144ed4..0000000 --- a/book/preliminary/supplemental_index.md +++ /dev/null @@ -1,4 +0,0 @@ -# Supplemental Material - -```{tableofcontents} -``` diff --git a/book/preliminary/supplemental/conda.md b/book/reference/supplemental/conda.md similarity index 100% rename from book/preliminary/supplemental/conda.md rename to book/reference/supplemental/conda.md diff --git a/book/preliminary/supplemental/python.md b/book/reference/supplemental/python.md similarity index 100% rename from book/preliminary/supplemental/python.md rename to book/reference/supplemental/python.md diff --git a/book/reference/supplemental_index.md b/book/reference/supplemental_index.md new file mode 100644 index 0000000..f7c7ae9 --- /dev/null +++ b/book/reference/supplemental_index.md @@ -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) diff --git a/book/tutorials/git_and_jupyterlab/basic-git.md b/book/tutorials/git_and_jupyterlab/basic-git.md index d6e18f4..4938192 100644 --- a/book/tutorials/git_and_jupyterlab/basic-git.md +++ b/book/tutorials/git_and_jupyterlab/basic-git.md @@ -48,7 +48,7 @@ We'll do this Before we can work with Git in JupyterLab, we need to do some set up. -[First time `git` setup](../../preliminary/git) +[First time `git` setup](../../preliminary/checklist/git.md) 1. Tell Git who you are and to store your credentials (GitHub login info) diff --git a/book/tutorials/git_and_jupyterlab/index.md b/book/tutorials/git_and_jupyterlab/index.md index 7871a08..f2692d8 100644 --- a/book/tutorials/git_and_jupyterlab/index.md +++ b/book/tutorials/git_and_jupyterlab/index.md @@ -22,4 +22,4 @@ these preparation materials: Additional information around the `git` command, [GitHub](https://github.com), and our [JupyterHub](https://jupyter.org/hub) environment that provides the [JupyterLab](https://jupyter.org/) can be found under the -[preliminary content](../../preliminary/index). +[event checklist](../../preliminary/checklist_index). From 782712d3157e76cb0fe16a08e487175c1f58a625 Mon Sep 17 00:00:00 2001 From: aaarendt Date: Sun, 9 Jul 2023 20:13:33 -0700 Subject: [PATCH 3/8] reorder so both lists match --- book/preliminary/checklist_index.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/book/preliminary/checklist_index.md b/book/preliminary/checklist_index.md index 1f458ec..36dfa17 100644 --- a/book/preliminary/checklist_index.md +++ b/book/preliminary/checklist_index.md @@ -28,11 +28,6 @@ __Upon completion you__: ``` -### GitHub Account - -Everyone attending {{ hackweek }} will require obtaining a GitHub account. -Visit our [GitHub instruction page](checklist/github.md) to learn how! - ### Slack Account All of our communication throughout the hackweek will be done using the @@ -44,6 +39,17 @@ 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. @@ -55,8 +61,3 @@ 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](checklist/git.md) 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](checklist/earthdata.md) page to learn how to access and Earthdata -login account if you don't already have one! From 61ba40b6110ec7e92fe266e5c514684484635fb7 Mon Sep 17 00:00:00 2001 From: aaarendt Date: Sun, 9 Jul 2023 20:22:32 -0700 Subject: [PATCH 4/8] punctuation --- book/preliminary/skills_refresher_index.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/book/preliminary/skills_refresher_index.md b/book/preliminary/skills_refresher_index.md index 87a92c8..c68b847 100644 --- a/book/preliminary/skills_refresher_index.md +++ b/book/preliminary/skills_refresher_index.md @@ -1,13 +1,6 @@ # 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. We -are different from a more traditional summer school in that we do not provide a -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. +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 @@ -37,5 +30,9 @@ we support through facilitated group activities. We strongly suggest that participants who are just beginning to learn Python and collaborative data science tools to complete our -recorded ([Software Carpentry Trailing](./skills-refresher/swc)) in advance of the hackweek. You +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. \ No newline at end of file From 2a4843ee2c8f2adcca1508e45a27af061d4fb152 Mon Sep 17 00:00:00 2001 From: aaarendt Date: Sun, 9 Jul 2023 20:22:54 -0700 Subject: [PATCH 5/8] modify opening and add project Pythia --- book/preliminary/skills-refresher/swc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/preliminary/skills-refresher/swc.md b/book/preliminary/skills-refresher/swc.md index ff0f0b2..79acd60 100644 --- a/book/preliminary/skills-refresher/swc.md +++ b/book/preliminary/skills-refresher/swc.md @@ -11,7 +11,7 @@ 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 From 7b36ef1fddca3368e59a132a933b48d145b025ca Mon Sep 17 00:00:00 2001 From: Joachim Meyer Date: Mon, 10 Jul 2023 12:25:50 -0600 Subject: [PATCH 6/8] Tutorial - index; update wording; remove YouTube link --- book/tutorials/index.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/book/tutorials/index.md b/book/tutorials/index.md index b8141fc..91402a6 100644 --- a/book/tutorials/index.md +++ b/book/tutorials/index.md @@ -1,16 +1,13 @@ # Tutorials These tutorials consist of Jupyter Notebooks that can be run in our -{{ '[preconfigured software environment]({url})'.format(url=github_org_url) }} +{{ '[preconfigured software environment]({url})'.format(url=jupyterhub_url) }} If you are attending the hackweek, you have access to a JupyterHub environment with all the necessary Python software packages installed that are needed to run through these tutorials interactively. On JupyterHub, your home directory persists so any changes you make to the tutorials will be saved and be there for you next time you log in. -All live tutorial recordings available via UW eScience [YouTube Playlist](https://www.youtube.com/playlist?list=PLA6PlfxWZPLSTUaS0uR8FMcNC2wqztwjJ). Or see the table below for links to specific tutorial notebooks and recordings: - - | Tutorial | Topics | Datasets | Recording Link | | - | - | - | - | | [Example Notebook](./example/tutorial-notebook.ipynb) | Jupyter Book formatting, ipyleaflet | n/a | Not recorded | From f08f5800aeb6d08c1e1d27c07f4b73c8130901ef Mon Sep 17 00:00:00 2001 From: Joachim Meyer Date: Mon, 10 Jul 2023 12:25:21 -0600 Subject: [PATCH 7/8] Tutorials - Remove git/Jupyter The tutorials will not be part of this year's event. --- book/_toc.yml | 5 - .../tutorials/git_and_jupyterlab/basic-git.md | 201 ------------ book/tutorials/git_and_jupyterlab/index.md | 25 -- book/tutorials/git_and_jupyterlab/jupyter.md | 297 ------------------ 4 files changed, 528 deletions(-) delete mode 100644 book/tutorials/git_and_jupyterlab/basic-git.md delete mode 100644 book/tutorials/git_and_jupyterlab/index.md delete mode 100644 book/tutorials/git_and_jupyterlab/jupyter.md diff --git a/book/_toc.yml b/book/_toc.yml index bbfcf63..b62b7b3 100644 --- a/book/_toc.yml +++ b/book/_toc.yml @@ -29,11 +29,6 @@ parts: - 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 diff --git a/book/tutorials/git_and_jupyterlab/basic-git.md b/book/tutorials/git_and_jupyterlab/basic-git.md deleted file mode 100644 index 4938192..0000000 --- a/book/tutorials/git_and_jupyterlab/basic-git.md +++ /dev/null @@ -1,201 +0,0 @@ -# Basic Git/GitHub Skills Using `jupyterlab-git` - -```{admonition} Learning Objectives -- Set up Git in the JupyterHub using [First time `git` setup](../../preliminary/git) -- Learn how to use the `jupyterlab-git` GUI in JupyterLab -- Practice 4 basic Git/GitHub skills: cloning, committing, push/pull -``` - -```{important} -Before we go over this tutorial we expect that you have already gone through this preparation material: -- [JupyterHub login setup](../../preliminary/jupyterhub) -``` - -## What is Git and GitHub? - -**Git** A program to track your file changes and create a history of those changes. Creates a 'container' for a set of files called a repository. - -**GitHub** A website to host these repositories and allow you to sync local copies (on your computer) to the website. *Lots* of functionality built on top of this. - -![](../../img/git-repo-structure.png){width=200px} - -## Some basic Git jargon - -* **Repo** Repository. It is your code and the record of your changes. This record and also the status of your repo is a hidden folder called `.git` . You have a local repo and a remote repo. The remote repo is on GitHub (for in our case) is called `origin`. The local repo is on the JupyterHub. -* **Stage** Tell Git which changes you want to commit (write to the repo history). -* **Commit** Write a note about what change the staged files and "commit" that note to the repository record. You are also tagging this state of the repo and you could go back to this state if you wanted. -* **Push** Push local changes (commits) up to the remote repository on GitHub (`origin`). -* **Pull** Pull changes on GitHub into the local repository on the JupyterHub. -* **Git GUIs** A graphical interface for Git (which is command line). Today I will use `jupyterlab-git` which we have installed on JupyterHub. -* **Shell** A terminal window where we can issue `git` commands. - - -## Overview - -Today I will cover the four basic Git/GitHub skills. We will not work with branches today and I won't cover much about merge conflicts. The goal for today is to first get you comfortable with the basic skills and terminology---and also get you set up on the JupyterHub. We will use what is called a "trunk-based workflow". - -### Simple Trunk-based Workflow: - -* Make local (on your computer) changes to code. -* Record what those changes were about and commit to the code change record (history). -* Push those changes to your remote repository (aka origin) - -We'll do this - -![](../../img/git-linear-flow-2.png) - -## Setting up Git - -Before we can work with Git in JupyterLab, we need to do some set up. - -[First time `git` setup](../../preliminary/checklist/git.md) - -1. Tell Git who you are and to store your credentials (GitHub login info) - -[Show me](https://youtu.be/3CLuOCJMfK0) - -2. Get a Personal Access Token from GitHub - -Copy the token! You will need it in the next step. - -[Show me](https://youtu.be/tkioJhF_gO8) - -3. Trigger Git to ask for your password (that personal access token) - -You will do this by cloning a private repo. Open a shell and issue this command - -```shell -git clone https://github.com/snowex-hackweek/github_setup_check.git -``` - -It will ask for your GitHub username and password. At the password part, paste in the Personal Access Token. - - -## `jupyterlab-git` - -When the instructions say to use or open or click on `jupyterlag-git`, click the icon in the left navbar marked by the red arrow. - -![](../../img/jupyterlab-git.jpg) - -## The Key Skills - -* Skill 1: Create a blank repo on GitHub -* Skill 2: Clone your **GitHub** repo onto the JupyterHub -* Skill 0: Open your repository in the JupyterLab. -* Skill 3: Make some changes and commit those local changes -* Skill 4: Push the changes to GitHub - -* Skill 1b: Fork someone else's GitHub repository - -## Let's see it done! - -### Skill 1: Create a blank repo on GitHub - -1. Click the + in the upper left from YOUR GitHub page. -2. Give your repo the name `Test` and make sure it is public. -3. Click new and check checkbox to add the Readme file and `.gitignore` -4. Copy the URL of your new repo. It's in the browser where you normally see a URL. - -[Show me](https://youtu.be/1uV_7iGVu3o) - -### Skill 2: Clone your repo to the JupyterHub - -1. Copy the URL of your repo. `https://www.github.com/yourname/Test` -2. Click on the `jupyterlab-git` icon in the left navbar. -3. You'll see 3 boxes*, click on Clone Repository. -3. Paste the URL from in the box that pops up and paste in the URL from Step #1. -4. Your repo now appears in the list of folders. - -[Show me](https://youtu.be/7HDheHE05jc) -- [Show me with the shell](https://youtu.be/GpYycSpwYQk) -- [Show me with Visual Studio Code](https://youtu.be/aMPGKMRjl8A) - -* I don't see those boxes. You are in a repository. Click on the little folder icon at top to get out of the current folder. See video (at the end). - - -### Skill 3: Make some changes and commit your changes - -1. Make some changes to the README.md file in the Test repo. -2. Click the `jupyterlab-git` icon, and stage the change(s) by rolling over the modified file and clicking the +. -2. Open GitHub Desktop, click the little checkboxes next to the changes. -3. Add a commit comment, click commit. - -[Show me](https://youtu.be/2stgvvKer-k) -- [Show me from the shell](https://youtu.be/jXxWvjPYgDI) -- [Show me with Visual Studio Code](https://youtu.be/jMWvLk9iuFw) - -### Skill 4: Push changes to GitHub / Pull changes from GitHub - -To push changes you committed in Skill #3 - -1. From jupyterlab-git, click on the little cloud with up arrow at the top (it's kind of small). - -[Show me](https://youtu.be/-D_Kk3ia36c) -- [Show me in the shell](https://youtu.be/XFdvHn_Q-1o) - -To pull changes on GitHub that are not on your local computer: - -1. Make some changes directly on GitHub -1. From jupyterlab-git, click on the little cloud with down arrow at the top (it's kind of small). - -[Show me](https://youtu.be/XjsuaDHAAZg) - -* Note in the shell, the command is `git pull`. - -### Pair-activity 1 - -In JupyterLab, - -1. Make a copy of README.md -2. Rename it to .md -3. Add some text. -4. Stage and commit the added file. -5. Push to GitHub. - -Do this from `jupyterlab-git`. You can also try from the shell if you watched the shell videos too. - -Try before watching. [Show me](https://youtu.be/ejmkkjWJ_Es) -- [Show me in the shell](https://youtu.be/tvmX41b5pTU) - -### Pair-activity 2 - -All of this activity is in JupyterLab. - -1. Clone this repo: https://github.com/snowex-hackweek/git-basics -2. Navigate to the repo, copy `Copyme.md` and rename to `.md` -3. Stage and then commit that new file. -4. Push to GitHub. -5. Make some more changes and push to GitHub. -6. Pull in your partner's (and everyone elses) changes - -[Show me](https://youtu.be/w0ub1hBZh70) - -### Skill 1b: Fork a repo on GitHub - -You can copy other people's repos but maintain a connection to the original (upstream) repo. In the hackweek, you will use this to get the tutorials and update them each morning. - -1. In a browser, go to the GitHub repository you want to fork. -2. Click the little fork icon in the upper right corner. -3. Use Skill #1 to clone the forked repo to your computer. - -Fetch changes from the original (upstream) using `jupyterlab-git` - -1. From GitHub, click "Fetch upstream" -2. From JupyterLab, click on the `jupyterlab-git` icon and click the cloud with down arrow, to pull in the changes to JupyterLab. - -Fetch changes from the original (upstream) using the shell - -See instructions [here](jupyter) - - -### Skill 1c: Copy a repo on GitHub - -You can copy your own or other people's repos^[This is different from forking. There is no connection to the original repository.]. - -1. In a browser, go to the GitHub repository you want to copy. -2. Copy its url. -3. Navigate to your GitHub page: click your icon in the upper right and then 'your repositories' -4. Click the `+` in top right and click `import repository`. Paste in the url and give your repo a name. -5. Use Skill #1 to clone your new repo to your computer - -### Pair-activity 2 - -1. Fork https://github.com/snowex-hackweek/website2022 (GitHub) -2. Clone to JupyterHub (Skill #2) - - - diff --git a/book/tutorials/git_and_jupyterlab/index.md b/book/tutorials/git_and_jupyterlab/index.md deleted file mode 100644 index f2692d8..0000000 --- a/book/tutorials/git_and_jupyterlab/index.md +++ /dev/null @@ -1,25 +0,0 @@ -# Git and JupyterLab - -```{important} -Before we go over this tutorial we expect that you have already gone through -these preparation materials: -- [JupyterHub login setup](../../preliminary/jupyterhub) -``` - -```{admonition} Learning Objectives -- Set up Git in the JupyterHub using [First time `git` setup](../../preliminary/git) -- Learn how to use the `jupyterlab-git` GUI in JupyterLab -- Practice four basic Git/GitHub skills: `clone`, `commit`, `push`, and `pull` -- Use `git` to create copies of hackweek repositories on GitHub for modification -- Navigate the JupyterLab interface for writing and executing code -``` - -```{tableofcontents} -``` - -## Preliminary Work - -Additional information around the `git` command, [GitHub](https://github.com), -and our [JupyterHub](https://jupyter.org/hub) environment that provides the -[JupyterLab](https://jupyter.org/) can be found under the -[event checklist](../../preliminary/checklist_index). diff --git a/book/tutorials/git_and_jupyterlab/jupyter.md b/book/tutorials/git_and_jupyterlab/jupyter.md deleted file mode 100644 index db3819d..0000000 --- a/book/tutorials/git_and_jupyterlab/jupyter.md +++ /dev/null @@ -1,297 +0,0 @@ -# GitHub, Git, JupyterHub - -```{admonition} Learning Objectives -- Use `git` to create copies of hackweek repositories on GitHub for modification -- Navigate the JupyterLab interface for writing and executing code -``` - -```{important} -Before we go over this tutorial we expect that you have already gone through these preparation materials: -- [JupyterHub login setup](../../preliminary/jupyterhub) -- [First time `git` setup](../../preliminary/git) -``` - -## Git review - -Here we will do a quick refresher on the different commands you will be using -during this event. A good summary is -[this cheatsheet from GitHub](https://training.github.com/downloads/github-git-cheat-sheet.pdf). - -These are a few commands we will use throughout the week: -| Git command | What it does | -|---|---| -| `git add` | Adds a new, previously untracked file to version control and marks already tracked files to be committed with the next `commit' | -| `git commit` | Saves the current state of the repository and creates an entry in the log | -| `git log` | Shows the history for the repository | -| `git clone` | Copies a repository to your local environment, including all the history | -| `git pull` | Gets the latest changes of a previously cloned repository | -| `git push` | Pushes your local changes to the remote repository, sharing them with others | - -## How do I make notes in the tutorials? - -In order to make personal notes in the notebooks for each tutorial that you -can save and keep for later reference, you first need to make a -[fork](https://docs.github.com/en/get-started/quickstart/github-glossary#clone) -of the website. A fork is your personalized copy of the website that will be -stored under your GitHub user account instead of the {{hackweek}} organization account. -This also enables you to write to that repository, which in contrast you can not -do with the {{hackweek}} organization repository. A fork is also a first common step -to contribute to open-source projects and further described in the -[Pro Git book](http://git-scm.com/book/en/v2/GitHub-Contributing-to-a-Project). - -To make a fork of the website, go to -the [GitHub repository](https://github.com/snowex-hackweek/website2022) and hit -the 'Fork' button in the top right corner. In the follow-up dialog, choose your -user account as the destination - -![github-fork](../../img/github-fork.png) - -Next steps are the same as described in the follow section on how to get code -copied to the JupyterHub. - -```{note} -Remember that `JupyterHub` refers to the servers hosting our computing environment, and `JupyterLab` is the web-based user interface that we interact with. -``` - -## How do I get code from GitHub to the JupyterHub? - -After you successfully set up the {ref}`git command`, you can -copy code between the two using the [clone](https://docs.github.com/en/get-started/quickstart/github-glossary#clone) -command with `git`. A `clone` creates a copy of the repository with the current -state of the repository including the complete history. - -### Example: Clone the fork of the website with the tutorials - -1. Go to your user page on GitHub and select the 'website' repository. - - The URL to clone the repository can be found after clicking on the green 'Code' button. - - ![github-code](../../img/github-clone-url.png) -

- -2. On the JupyterHub, open a new Terminal using the 'Launcher' or via the menu - File -> New -> Terminal - - By default, a new Terminal will be in your home directory. Use the `pwd` - command to verify: - - ```shell - pwd - ``` - - Output: - ```shell - /home/jovyan - ``` - -3. In the Terminal, issue the `git clone` command and paste the URL you copied - in step 1. - - ```{admonition} A note about cutting and pasting - Pasting something from your clipboard into the JupyterLab terminal can require holding - down the "shift" key and right-clicking. This is different from the usual Linux - method that only requires a right click. - ``` - - ```{attention} - The below sample command has the `` as a placeholder. - This should be replaced with your GitHub username. -

- This step will also create a folder in the current location of your - terminal. The folder will be called `website2022`, which originates from the - name of the repository. - ``` - - Your command should look similar to this before hitting the Enter key to - execute it: - ```shell - git clone https://github.com//website2022 - ``` - - Sample output: - ```shell - Cloning into 'website2022'... - remote: Enumerating objects: 3295, done. - remote: Counting objects: 100% (310/310), done. - remote: Compressing objects: 100% (212/212), done. - remote: Total 3295 (delta 159), reused 201 (delta 80), pack-reused 2985 - Receiving objects: 100% (3295/3295), 84.81 MiB | 31.23 MiB/s, done. - Resolving deltas: 100% (1951/1951), done. - ``` - -4. You now have a local copy of the website. - - To verify, list the current working directory via the `ls` command: - - ```shell - (notebook) jovyan@jupyter:~$ ls -l - ``` - - Sample output: - ```shell - total 4 - drwxr-sr-x 6 jovyan users 4096 Jul 9 17:10 website2022 - ``` - - You will also see the folder on the left-hand side in the file explorer: - ![jupyterhub-website-folder](../../img/jupyterhub-website-folder.png) - -You are now set up to follow along with all tutorials, including making changes -and then saving those by -[recording changes with `git`](http://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository) -. - -To store your commits to GitHub, don't forget to issue a `git push` from your -repository. - -```{admonition} For advanced users: Using a branch for personal changes -While it is not required to create a [branch](https://docs.github.com/en/get-started/quickstart/github-glossary#branch) -for your personal annotations, it is a common practice to do so when making changes -to a repository. - -Think of the `main` branch as the tried and tested version of a repository and -a new branch from that is used to introduce a change that can slowly progress. -Once ready, it will be merged to the `main` branch. - -The chapter of [contributing to a project](http://git-scm.com/book/en/v2/GitHub-Contributing-to-a-Project) -describes more behind this principle. - -Commands for branches: -* To create a branch named _my_work_: -`git branch my_work` -* To change to the branch: -`git checkout my_work` -* To delete a branch: -`git branch -d my_work` -``` - -## How do I keep up with changes to the initial forked repository? - -By making a fork of the website, you are creating a copy of the website as -of the date you clicked the 'Fork' button. This also means that your version -will not get any updates automatically if the website repository is changed after -your fork was created. - -To update your forked version with changes from the {{hackweek}} version, you -need to do a one time setup. This process is also called -['working with a remote'](http://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes) -for a git repository. - -### Add the {{hackweek}} organization repository as a remote - -A remote is defined with a label and a URL. In our case and command below, -we are using Hackweek as the label and {{ '`{url}.git`'.format(url=website_url) }} -as the URL. - -```{Note} -The chosen label Hackweek is found in many projects as the `upstream`. Here we -just went with a more descriptive label instead of the default value. -``` - -```shell -# Change to the website folder, it was created with the `clone` -cd website -# Add the remote -git remote add Hackweek {{ '{url}.git'.format(url=website_url) }} -``` - -The command will not return any output. Instead, we verify by printing the -list of known remotes for this repository: - -```{attention} - The below sample output has the `` as a placeholder - and should show your GitHub username. -``` - -```shell - git remote -v - Hackweek {{ '{url}.git'.format(url=website_url) }} (fetch) - Hackweek {{ '{url}.git'.format(url=website_url) }} (push) - origin https://github.com//website.git (fetch) - origin https://github.com//website.git (push) -``` - -You are now set up and do not need to repeat this before every update you -fetch from the website. - -### Getting the changes from the originally forked repository - -To update your fork of the website, you first need to fetch and then pull -the changes. A fetch is a pre-step that reads all the changes that need to -be applied to your fork. The `{{hackweek}}` command options indicates from -which source the changes will be queried from. - -Reading changes from the remote '{{hackweek}}': - -```shell -git fetch Hackweek -``` - -To now also get and apply those changes, you need to issue a `pull` command. -In contrast to the above, you also need to specify which branch you want -to get the changes from. In most cases, this will be the 'main' or 'master' -branch of a repository. - -```{attention} -It is __highly__ recommend to have no uncommitted changes in your -repository before pulling changes from a remote. To verify this, a `git status` -command should return `nothing to commit, working tree clean` at the end of the -output. -``` - -Applying changes from the remote '{{hackweek}}': - -```shell -git pull Hackweek main -``` - -```{note} -For more information about branches, see the -[Pro Git book chapter](http://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell) -``` - -Last and to update your fork on GitHub, issue a: -```shell -git push -``` - -### Overview of a forked and then updated repository - -![git-fork-clone-update](../../img/git-fork-clone-update.png) - -## How can I upload a file to the JupyterHub? - -```{attention} -The below description works well for smaller files (<10 MB) or zipped archives. - -Your files are persisted across server shutdowns and startups and you don't have -to upload them again when you log out at the end of the day and restart anew the -next day. - -The user space has a total limit of 10 GB, which is a {{hackweek}} JupyterHub set limit. -You can use `/tmp` for temporary large files and they **are not** persistet after -logout. - -We also have an Amazon S3 bucket for larger files you need for your projects. -Ping us on Slack for details on how to get your files onto there. -``` - -Uploading a file to your userspace on the JupyterHub can be done using the -user interface in the browser. Below screenshot shows the location of the -upload button (purple highlighted box), which will open a dialog in your browser. - -![upload-file](../../img/jupyterhub-upload.png) - -## Summary - -Congratulations! That's the end of our "GitHub, Git, JupyterHub" tutorial. You -now are equipped with basic `git` commands and have familiarity with the -JupyterHub computing environment. - -## References - -If you want to learn more about these topics, check out the following -references: - -* [GitHub Official Documentation](https://docs.github.com) -* [JupyterLab Official Documentation](https://jupyterlab.readthedocs.io/en/stable/) From 8878ce9dbded3249f06e4b5dc1c1814c17eee597 Mon Sep 17 00:00:00 2001 From: Joachim Meyer Date: Thu, 20 Jul 2023 14:21:05 -0600 Subject: [PATCH 8/8] Preliminary - Update SWC instructions Remove JupyterHub and Schedule sections --- book/preliminary/skills-refresher/swc.md | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/book/preliminary/skills-refresher/swc.md b/book/preliminary/skills-refresher/swc.md index 79acd60..feaca3b 100644 --- a/book/preliminary/skills-refresher/swc.md +++ b/book/preliminary/skills-refresher/swc.md @@ -18,16 +18,9 @@ to go over these materials in advance. Please take a minute before the workshop to go over 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: @@ -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: