Giter Club home page Giter Club logo

studygrouplessons's Introduction

Mozilla Study Group Lessons

Let's build a collection of introductory lessons for short tutorials on scientific coding, writing, data management and anything else connected to open science, that people can deliver to a Study Group in their labs and departments.

What's a Mozilla Study Group and How do I Start One?

Mozilla Study Groups are a great casual way to get people from your field together to share their skills in computing and data management, in a relaxed, no-pressure environment with friends and colleagues, and to create a space where it's okay to ask any question you like. The goal should be to help everyone get some hands-on practice with a new idea or tool they can use in their every-day research, and support each other as we learn.

Want to start your own? Check out our how to guide, and our quick-start Mozilla Study Group website kit.

Where We Are

People are starting coding meetups for scientists and researchers around the world, both with us and on their own. Check out the map of Study Groups, see if there's one near you, or add your own by sending us a pull request (add yourself to whereWeAre.geojson), or open an issue and we'll add you.

For help getting your longitude and lattitude pre-formatted in geojson, find yourself on this awesome web app.

<script src="https://embed.github.com/view/geojson/mozillascience/studyGroupLessons/master/whereWeAre.geojson"></script>

What is a Study Group Lesson Like?

A good Study Group lesson should be a tutorial that's as hands on as possible - an hour-long lecture just doesn't have the same effect. To create a successful tutorial, keep the following in mind:

  • Give participants challenge questions to try out their new skills as often as possible; never lecture for more than five minutes at a stretch.
  • Go as slow as the participants need; never rush to get through all the material.
  • Encourage people to work together and chat about what they're learning and how they might use it.
  • Try to come up with examples that are relevant and interesting from your field of study.

Have a look in the template directory of this repository for some more details.

Contribution Guidelines

If you'd like to contribute a new lesson, write it up in a new repo following these guidelines:

  • put the lesson script in README.md, with your name, subject area and lesson topic at the top.
  • make sure to include an open source LICENSE file.
  • make sure all data / examples / figures / anything else you want are all included in your repo.
  • Here's an example of all that.

Then, add your repo to this one as a Submodule.

Using Submodules

Submodules are super handy for making a loose federation of resources like these, but are relatively rarely used; here's a primer.

Adding a new lesson

In this repo, do

git submodule add <url of your new lesson repo> <name to use for this lesson>

then commit, push and pull request as usual. That's it! Please prefix the name of the submodule with the relevant language or technology, like R-, python- etc.

Pulling down lessons locally

Clone this repo as usual:

git clone https://github.com/mozillascience/studyGroupLessons

You'll see directories for all the different lessons, but they'll be empty. Tell git you're going to be using submodules (only need to do this once for this project):

git submodule init

Then, you can pull down individual submodules like so (replace awk-lesson with the name of the submodule you want):

git submodule update awk-lesson

Finally, pull down new changes to lessons in future via:

git pull upstream master
git submodule update awk-lesson
Updating Submodule Pointers

(Note: maintainers of this repo will do this automatically regularly - contributors shouldn't need to do this)

git submodule update --remote

Need Help?

Not comfortable with Markdown or Git? That's ok! If Markdown isn't your thing, just cut and paste your notes into a plain text file, and we'll help you format them; if you're unsure of git, open a new issue and we'll help get you included.

Don't have a local Mozilla Study Group? That's also ok! We're collecting and sharing lessons from everyone who would like to write one, whether they are involved with a Mozilla Study Group or not. And if you'd like to start your own Mozilla Study Group, don't miss the how-to guide.

Check Out Our Friends!

There are groups that have been meeting & sharing their work for some time now - check out the list in the Mozilla Study Group Handbook, and send us your own if you'd like us to help share your work.

studygrouplessons's People

Contributors

abought avatar andreabedini avatar auremoser avatar betatim avatar bkatiemills avatar drj11 avatar isakiko avatar jules32 avatar nsoontie avatar tomkellygenetics avatar zee-moz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

studygrouplessons's Issues

Interest in other languages?

At the moment the study group resources cover R and Python. Is there any interest in having resources for other languages? I specifically have Ruby in mind.

Shorter format for matching

Why use

awk '{if (index($3, "earth") != 0) print $3}' volcano_observations.dat
earthquakes

when you can use

awk '$3 ~ /earth/ {print $3}' volcano_observations.dat

Same with this one: why use

awk '{if (NR > 1 && index($3, "e") != 0) print $0}' volcano_observations.dat

when this suffices:

awk 'NR >1 && $3 ~ /e/' volcano_observations.dat

Is it for educational purposes, because the long version is easier to understand than the short version?

Open Science Utility Belt

Open Science 101

This is a session series introducing practical skills needed to get started in open science. A Mozilla Science Study Group can use this series to introduce open science over an academic semester.

Help Us Develop This Curriculum

We're trying to answer these questions:

  • What skills are needed to practice open science?
  • What's missing / What's unnecessary? (aiming for < 12 sessions over a semester)
  • What's out there now? References! If you've seen related material, send it over.

Let us know your thoughts in the comments!

Sessions

  1. Introduction: what & why
    • What skills will be part of this series?
      • working openly through the entire process (not just warehousing things on the web afterwards) in order to leverage collaboration
      • emphasizing legibility of research outputs for the sake of reuse & reproducibility
    • Why do these things matter?
      • lit review on citation benefits, efficacy benefits, retraction scandals & efficiency.
    • Sources: Working Open guide, TBD
  2. Open Data I: Standards & Legibility
    • What is an ontology?
    • How to effectively use data standards and make data legible?
    • Sources: TBD
  3. Open Data II: Clean Data
    • What is 'clean' vs 'dirty' data, and why do they matter?
      • how to keep data organized and easy to reuse at a later date (including in-house reuse); consider metadata, storage and formats.
    • Best practices for making a reusable dataset when no standard exists.
    • Sources: TBD
  4. Collaboration I: Version Control
    • Basic git, with an emphasis on getting to GitHub as a platform for sharing & collaboration.
    • Source: TBD
  5. Collaboration II: Roadmapping
    • How to lay out a project for effective collaboration.
    • Source: Working Open guide.
  6. Collaboration III: Code Review
    • How to set expectations for good contributions that lead to easy-to-review code
    • How to make the code review process fast and efficient
    • Source: Working Open guide, Code Review Teaching Kit
  7. Code Wrangling I: Sustainable Coding
    • Effective use of documentation.
    • Producing end-to-end analysis automation scripts (R, Python, Shell, or make); understanding of how a well-made automation script serves as 'living documentation'.
    • Sources: TBD
  8. Code Wrangling II: Testing
    • Writing test suites to ensure code quality & build trust to support reuse.
    • Sources: this lesson in Python, TBD in R.
  9. Code Wrangling III: Code Packaging
    • Making & distributing packages to support reuse & collaboration.
      • discussion of useful formalisms for organizing data & code in packages / repos
    • Sources: this lesson in Python, and this lesson in R
  10. Publishing & Communication I: Citation & Discoverability
    • Software & data citation
      • DOIs
      • comments on how this addresses discoverability of code & data
    • Authoring for the Web
      • markdown / knittr
      • metadata
    • Sources: Working Open guide, TBD
  11. Publishing & Communication II: The Research Cycle
    • Strategies for opening the entire research process:
      • Grant process
      • Online lab notebooks
      • blogging, twitter & social media
      • protocol publishing
      • study pre-registration
  12. Publishing & Communication III: Licensing
    • open access publishing
      • comments on impact on science in the Global South / decoupling access from privilege
    • Why are licenses necessary?
    • What can they do? What can't they do?
    • Which ones are the most important and how do they work?
    • How to choose a license, and the intersection of licensing and copyright
    • The importance of agreeing on a license explicitly and early on a collaboration
    • sources: TBD
  13. Change Making

Best way to organize and promote lessons

@wking mentioned some great ideas for how best to organize and promote study group lessons over on swcarpentry/board#27 - to summarize their suggestions:

  • keep the lessons themselves out of the study-group repository, since maintaining a lesson on awk and keeping track of study groups around the world teaching scientists our tooling seem like two different tasks.
  • linking to lessons by title seems better than linking to groups. At least, there should be a way to answer β€œwhat are the most popular hour-long lessons talking about awk?” (or whatever).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.