Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update technology training #62

Merged
merged 19 commits into from
Jun 18, 2024
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions docs/overview/training-modules.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

The modules in this website are designed to prepare organizers of the University of Washington eScience Institute's Hackweek program. We hope to share professional development tools for you to improve your capacity to teach, share ideas, lead project work and advocate for open and reproducible science. We hope the skills acquired here are applicable to other related training you participate in, including those in a Formal Higher Education setting.

Our first two modules focus on improving our capacity to train hackweek participants to learn new tools for their research. We'll begin by exploring how to choose appropriate *learning content*, which refers to the topics that we choose to present to learners and the depth and breadth of coverage of that content. We will also consider *pedagogy*, which refers to how we teach material, whether in a lecture, discussion- or project-based format, as well as the methods we employ to interact with learners. In our [Tutorial Design](tutorials/index.md) and [Project Design](projects/index.md) modules we will teach you about designing hackweek learning content, and our recommended pedagogical approaches for hackweek particiapants, within the existing framework of our tutorial and project sessions.
Our first two modules focus on improving our capacity to train hackweek participants to learn new tools for their research. We'll begin by exploring how to choose appropriate *learning content*, which refers to the topics that we choose to present to learners and the depth and breadth of coverage of that content. We will also consider *pedagogy*, which refers to how we teach material, whether in a lecture, discussion- or project-based format, as well as the methods we employ to interact with learners. In our [Tutorial Design](../training/tutorials/index.md) and [Project Design](../training/projects/index.md) modules we will teach you about designing hackweek learning content, and our recommended pedagogical approaches for hackweek particiapants, within the existing framework of our tutorial and project sessions.

Next we will focus on [Technology](technology/index.md) where we will teach you about the tools we use to create centralized, web-browser accessible learning materials. You will learn to use automated workflows in GitHub to generate consistent and quality controlled Jupyter Notebooks, and we will share resources for hosting sample datasets.
Next we will focus on [Technology](../training/technology/index.md) where we will teach you about the tools we use to create centralized, web-browser accessible learning materials. You will learn to use automated workflows in GitHub to generate consistent and quality controlled Jupyter Notebooks, and we will share resources for hosting sample datasets.

In our [Strategy and Planning](strategy/index.md) module, we will teach you about the tools we use to manage our time and set clear expectations for the various tasks of the organizing team. By structuring the way we work together we can better honor the limited time each of us has to contribute, and ensure that we still meet our broad goals for the event.
In our [Strategy and Planning](../training/strategy/index.md) module, we will teach you about the tools we use to manage our time and set clear expectations for the various tasks of the organizing team. By structuring the way we work together we can better honor the limited time each of us has to contribute, and ensure that we still meet our broad goals for the event.

Finally, in our module on [Learning Culture](culture/index.md), we will provide opportunities for all of us to practice ways to support a vibrant and healthy learning environment. We will practice skills in building empathy, listening and navigating complex group dynamics.
Finally, in our module on [Learning Culture](../training/culture/index.md), we will provide opportunities for all of us to practice ways to support a vibrant and healthy learning environment. We will practice skills in building empathy, listening and navigating complex group dynamics.
69 changes: 69 additions & 0 deletions docs/reference/glossary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Glossaries

## Tools and Technology (general)

```{glossary}
[Conda](https://docs.conda.io)
Package, dependency and environment management for any language—Python, R,
Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN, and more.

[Mamba](https://mamba.readthedocs.io)
Is an alternative package manager to conda that is fast, robust, and cross-platform.

[Conda-forge](https://conda-forge.org)
Is the main open-access repository for hosting packages that are installed via conda or mamba.

[Docker](https://www.docker.com)
Docker provides the ability to package and run an application in a loosely
isolated environment called a container. It is widely used for creating
reproducible software environments to run code on different computers.

[Git](https://git-scm.com)
A popular version control system that is used in many open source software
projects to manage their software code base.

[GitHub](https://github.com)
Provider of Internet hosting for software development and distributed version
scottyhq marked this conversation as resolved.
Show resolved Hide resolved
control using the "git" command line tool.

[GitHub Actions](https://docs.github.com/en/actions)
Continuous integration and continuous delivery (CI/CD) platform that allows you to automate computational workflows for a GitHub respository.

Check failure on line 30 in docs/reference/glossary.md

View workflow job for this annotation

GitHub Actions / build-and-test

respository ==> repository
scottyhq marked this conversation as resolved.
Show resolved Hide resolved

[Hackweek](https://uwhackweek.github.io/hackweeks-as-a-service)
Participant-driven events that strive to create welcoming spaces to learn new
things, build community and gain hands-on experience with collaboration and
team science.

[Project Jupyter](https://jupyter.org)
Project Jupyter (name derived from "JUlia PYThon and R") exists to develop
open-source software, open-standards, and services for interactive computing
across dozens of programming languages.

[Jupyter Book](https://jupyterbook.org/intro.html)
Jupyter Book is an open source project for building beautiful,
publication-quality books and documents from computational material.

[JupyterHub](https://jupyterhub.readthedocs.io)
A core open source tool from the Jupyter community, JupyterHub allows you to
deploy an application that provides remote data science environments to
multiple users. It can be deployed in the cloud, or on your own hardware.
scottyhq marked this conversation as resolved.
Show resolved Hide resolved

[JupyterLab](https://jupyterlab.readthedocs.io)
JupyterLab is the next-generation web-based user interface for Project Jupyter
intended to replace the JupyterNotebook interface.

[Jupyter Notebook](https://jupyterbook.org)
open-source web application that allows you to create and share documents that
contain live code, equations, visualizations and narrative text.

[MyST](https://mystmd.org/guide/quickstart-myst-markdown)
Markedly Structured Text (MyST) is a rich and extensible flavor of Markdown
meant for technical documentation and publishing. It is used by Jupyter Book and Myst tools.

[Slack](https://slack.com)
A communication platform that we use to share information. We use separate channels
for each project and also rely on the video features. If possible we recommend
[downloading the Slack app](https://slack.com/downloads). If your agency does not allow
you to use the app, you can still interface with Slack in a web browser.

```
5 changes: 5 additions & 0 deletions docs/training/technology/github.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# JupyterHub

We have found the participants of hackweeks benefit from a common pre-configured computing environment. This allows everyone to hit the ground running and not waste time sorting out local installation problems.

TODO: copy over general jupyterhub info from past events
12 changes: 8 additions & 4 deletions docs/training/technology/index.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
# Technology

*Paragraph providing brief overview of this module*
Hackweeks are highly technical in nature. We utilize multiple tools to facilitate full participation by all organizing team members and participants. You will learn to use automated workflows in GitHub to generate consistent and quality controlled Jupyter Notebooks that are converted to a public website. In addition, we aim to highlight the contributions of all organizers by highlighting their contributions on the event website. Finally we will discuss best practices for working collaboratively on projects during and after a hackweek.

## Learning Objectives

After completing this module, hackweek supporters will:
After completing this module, hackweek organizers and participants will:

* have a comprehensive understand of the suite of technology tools used to support hackweek learners
* understand how to use our technology tools within their specific supporting role (e.g. tutorial creation, project work)
* be familiar with the suite of technology used during a UW Hackweek (GitHub, Jupyter Hub, Jupyter Book)
* understand recommended tools for tutorial creation and project work
* know where to go for technology support before and during the hackweek

Specific walk-throughs are provided for:
* how to effectively share data and code during and after a hackweek
* adding yourself to the event website as a member of the organizing team
5 changes: 5 additions & 0 deletions docs/training/technology/jupyterhubs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# JupyterHub

We have found the participants of hackweeks benefit from a common pre-configured computing environment. This allows everyone to hit the ground running and not waste time sorting out local installation problems.

TODO: copy over general jupyterhub info from past events
14 changes: 9 additions & 5 deletions docs/training/technology/recognition.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ There are a variety of ways that we would like to recognize community contributi

## Website Presence

We invite all people who join us in organizing and hosting a hackweek to be included in our "Meet the team" section of each hackweek website.
We invite all people who join us in organizing and hosting a hackweek to be included in our "Meet the team" section of each hackweek website.

We use this YAML markdown template for each team member.

Expand Down Expand Up @@ -37,17 +37,21 @@ We use this YAML markdown template for each team member.

**Notes:**
```{warning}
You must precisely follow the indentation and spacing layout shown here, so that the website correctly interprets the YAML format. Copying and existing team member's text and editing is an easy way to guarantee this
So that the website correctly interprets the YAML format we recommend using our template and not changing indent or spacing.
```
- We encourage everyone to use their GitHub avatar as the source of their personal photograph.
- Provide your GitHub username, together with the full url, for the `link` key under `social`.
- Acceptable user groups (roles) can be found [here](https://uwhackweek.github.io/hackweeks-as-a-service/services/index.html).
- Acceptable user groups (roles) can be found [here](https://escience.washington.edu/using-data-science/hackweeks/planning/hackweek-roles).

### Uploading to the website

To include your content on the website, please make a pull request to the `team.yaml` file located in the website for the event you're involved with. For example, here is the [file for the ICESat-2 2022 hackweek](https://github.com/ICESAT-2HackWeek/website2022/blob/main/book/team.yaml).
To include your content on the website, follow [these instructions](https://github.com/uwhackweek/jupyterbook-template/blob/main/team/README.md). Because YAML is a simple human-readable text format, you can add your content directly in the GitHub interface. We provide screenshots below for a particular event in 2024:
scottyhq marked this conversation as resolved.
Show resolved Hide resolved

This is a link to the template file for a specific event page https://github.com/uwhackweek/event-page-2024/edit/main/team/template.yaml

Note that we change the name and add our personal info
scottyhq marked this conversation as resolved.
Show resolved Hide resolved


When you are just editing text, using GitHub's online text editor is very convenient:
<img width="1031" alt="Screen Shot 2022-06-07 at 3 07 21 PM" src="https://user-images.githubusercontent.com/3924836/172491535-8aa4d9ff-4d2d-492a-96ff-c8ba49c1b2e5.png">

It's best practice to create [pull requests](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) from 'feature' branches. So commit your changes on a branch other than the 'main' branch:
Expand Down
2 changes: 1 addition & 1 deletion docs/training/tutorials/tutorial-design.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ It's important to not ask comprehension or mastery questions, like "describe bac
For non-technical material, several techniques are described in this [active learning strategies guide](https://drive.google.com/file/d/1lJ2Eb773tOx0Oik_G51bcWcwub20Co-4/view) and summarized in this chart:

```{image} ../../images/tutorials-active-learning-strategies.png
:alt: A chart of active learning strategies on a spectrum from "Simple" to "Complex". Starting from the simplest to the most complex: Pause for reflection, Writing (Minute Paper), Self-assessment, Large Group Discussion, Think-Pair-Share, Informal Groups, Triad Groups, Group Evaluatoins, Peer Review, Brainstorming, Case Studies, Hands-on Technology, Interactive Lecture, Active Review Sessions (Games or Simulations), Role playing, Jigsaw Discussion, Inquiry Learning, Experiential Learning (site visits), Forum Theater
:alt: 'A chart of active learning strategies on a spectrum from "Simple" to "Complex". Starting from the simplest to the most complex: Pause for reflection, Writing (Minute Paper), Self-assessment, Large Group Discussion, Think-Pair-Share, Informal Groups, Triad Groups, Group Evaluatoins, Peer Review, Brainstorming, Case Studies, Hands-on Technology, Interactive Lecture, Active Review Sessions (Games or Simulations), Role playing, Jigsaw Discussion, Inquiry Learning, Experiential Learning (site visits), Forum Theater'
:width: 100%
:align: center
```
Expand Down