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

start HATCH-ifying lesson site #133

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all 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: 3 additions & 5 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@ title: "Contributor Code of Conduct"
---

As contributors and maintainers of this project,
we pledge to follow the [The Carpentries Code of Conduct][coc].
we pledge to follow the [Watertown Free Public Library's Code of Conduct][coc].

Instances of abusive, harassing, or otherwise unacceptable behavior
may be reported by following our [reporting guidelines][coc-reporting].
may be reported to library staff on duty.


[coc-reporting]: https://docs.carpentries.org/topic_folders/policies/incident-reporting.html
[coc]: https://docs.carpentries.org/topic_folders/policies/code-of-conduct.html
[coc]: https://www.watertownlib.org/192/Code-of-Conduct
61 changes: 20 additions & 41 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
## Contributing

[The Carpentries][cp-site] ([Software Carpentry][swc-site], [Data
Carpentry][dc-site], and [Library Carpentry][lc-site]) are open source
projects, and we welcome contributions of all kinds: new lessons, fixes to
existing material, bug reports, and reviews of proposed changes are all
welcome.
This lesson is derived from Carpentries (Software Carpentry, Data Carpentry,
and Library Carpentry) instructional material. [The Carpentries][cp-site] ([Software Carpentry][swc-site], [Data Carpentry][dc-site], and [Library Carpentry][lc-site]) are open source projects.

In developing the Computing Basics series we welcome bug reports, reviews of proposed changes and fixes to existing material.

### Contributor Agreement

By contributing, you agree that we may redistribute your work under [our
license](LICENSE.md). In exchange, we will address your issues and/or assess
your change proposal as promptly as we can, and help you become a member of our
community. Everyone involved in [The Carpentries][cp-site] agrees to abide by
community. Everyone involved in the Computing Basics series agrees to abide by
our [code of conduct](CODE_OF_CONDUCT.md).

### How to Contribute
Expand All @@ -31,27 +30,22 @@ introduce yourself and to meet some of our community members.

3. If you are comfortable with Git, and would like to add or change material,
you can submit a pull request (PR). Instructions for doing this are
[included below](#using-github). For inspiration about changes that need to
be made, check out the [list of open issues][issues] across the Carpentries.
[included below](#using-github).

Note: if you want to build the website locally, please refer to [The Workbench
documentation][template-doc].

### Where to Contribute

1. If you wish to change this lesson, add issues and pull requests here.
2. If you wish to change the template used for workshop websites, please refer
to [The Workbench documentation][template-doc].

If you wish to change this lesson, add issues and pull requests in this [repo].

### What to Contribute

There are many ways to contribute, from writing new exercises and improving
existing ones to updating or filling in the documentation and submitting [bug
reports][issues] about things that do not work, are not clear, or are missing.
If you are looking for ideas, please see [the list of issues for this
repository][repo-issues], or the issues for [Data Carpentry][dc-issues],
[Library Carpentry][lc-issues], and [Software Carpentry][swc-issues] projects.
repository][repo-issues].

Comments on issues and reviews of pull requests are just as welcome: we are
smarter together than we are on our own. **Reviews from novices and newcomers
Expand All @@ -61,16 +55,12 @@ fresh eyes are always welcome.

### What *Not* to Contribute

Our lessons already contain more material than we can cover in a typical
workshop, so we are usually *not* looking for more concepts or tools to add to
them. As a rule, if you want to introduce a new idea, you must (a) estimate how
long it will take to teach and (b) explain what you would take out to make room
for it. The first encourages contributors to be honest about requirements; the
second, to think hard about priorities.
Carpentries lessons already contain more material than we can cover in a typical
Computing Basics workshop, so we are usually *not* looking for more concepts or tools to add to them.

We are also not looking for exercises or other material that only run on one
platform. Our workshops typically contain a mixture of Windows, macOS, and
Linux users; in order to be usable, our lessons must run equally well on all
platform. Workshops may contain a mixture of Windows, macOS, and
Linux users; in order to be usable, lessons should run equally well on all
three.

### Using GitHub
Expand All @@ -89,35 +79,24 @@ use [GitHub flow][github-flow] to manage changes:

NB: The published copy of the lesson is usually in the `main` branch.

Each lesson has a team of maintainers who review issues and pull requests or
encourage others to do so. The maintainers are community volunteers, and have
final say over what gets merged into the lesson.
The Computing Basics series is run by a small group of volunteers. `cb-admins` can be [reached by email][contact] and have final say over what gets merged into the lesson.

### Acknowledgements

### Other Resources
The Computing Basics series is grateful to the Carpentries for their generosity in sharing lesson materials and infrastructure. Materials created for the Computing Basics series has borrowed heavily from Carpentries sources and the series would be vastly different without the resources freely offered by the Carpentries.

The Carpentries is a global organisation with volunteers and learners all over
the world. We share values of inclusivity and a passion for sharing knowledge,
teaching and learning. There are several ways to connect with The Carpentries
community listed at <https://carpentries.org/connect/> including via social
media, slack, newsletters, and email lists. You can also [reach us by
email][contact].
By keeping material adaptation in GitHub, we offer the history of this repo to indicate changes made to the original Carpentries source material.

[repo]: https://github.com/LibraryCarpentry/lc-python-intro/
[repo-issues]: https://github.com/LibraryCarpentry/lc-python-intro/issues
[contact]: mailto:team@carpentries.org
[repo]: https://github.com/jlchang/2024-05-09-Unix_Shell_pilot
[repo-issues]: https://github.com/jlchang/2024-05-09-Unix_Shell_pilotissues
[contact]: mailto:cb-admin@broadinstitute.org
[cp-site]: https://carpentries.org/
[dc-issues]: https://github.com/issues?q=user%3Adatacarpentry
[dc-lessons]: https://datacarpentry.org/lessons/
[dc-site]: https://datacarpentry.org/
[discuss-list]: https://lists.software-carpentry.org/listinfo/discuss
[github]: https://github.com
[github-flow]: https://guides.github.com/introduction/flow/
[github-join]: https://github.com/join
[how-contribute]: https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github
[issues]: https://carpentries.org/help-wanted-issues/
[lc-issues]: https://github.com/issues?q=user%3ALibraryCarpentry
[swc-issues]: https://github.com/issues?q=user%3Aswcarpentry
[swc-lessons]: https://software-carpentry.org/lessons/
[swc-site]: https://software-carpentry.org/
[lc-site]: https://librarycarpentry.org/
[template-doc]: https://carpentries.github.io/workbench/
16 changes: 7 additions & 9 deletions LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@ title: "Licenses"

## Instructional Material

All Carpentries (Software Carpentry, Data Carpentry, and Library Carpentry)
instructional material is made available under the [Creative Commons
Attribution license][cc-by-human]. The following is a human-readable summary of
(and not a substitute for) the [full legal text of the CC BY 4.0
license][cc-by-legal].
This lesson is derived from Carpentries (Software Carpentry, Data Carpentry,
and Library Carpentry) instructional material which is made available under
the [Creative Commons Attribution license][cc-by-human]. Any materials put forth
for by the Computing Basics series is also provided under `CC BY 4.0` license. The following is a human-readable summary of (and not a substitute for) the [full legal text of the CC BY 4.0 license][cc-by-legal].

You are free:

Expand All @@ -23,8 +22,7 @@ terms.
Under the following terms:

- **Attribution**---You must give appropriate credit (mentioning that your work
is derived from work that is Copyright (c) The Carpentries and, where
practical, linking to <https://carpentries.org/>), provide a [link to the
is derived from work that is Copyright (c) The Carpentries and , where practical, linking to <https://carpentries.org/>), provide a [link to the
license][cc-by-human], and indicate if changes were made. You may do so in
any reasonable manner, but not in any way that suggests the licensor endorses
you or your use.
Expand All @@ -35,10 +33,10 @@ Under the following terms:

Notices:

* You do not have to comply with the license for elements of the material in
- You do not have to comply with the license for elements of the material in
the public domain or where your use is permitted by an applicable exception
or limitation.
* No warranties are given. The license may not give you all of the permissions
- No warranties are given. The license may not give you all of the permissions
necessary for your intended use. For example, other rights such as publicity,
privacy, or moral rights may limit how you use the material.

Expand Down
93 changes: 64 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,81 @@
# Library Carpentry: Python Intro for Libraries
# Programming with Python

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.12582386.svg)](https://doi.org/10.5281/zenodo.12582386)
This lesson is based on [Library Carpentry][lc-site]'s [Python Intro for Libraries][lc-python].

## Maintainers for Library Carpentry: Python Intro for Libraries
- [Cody Hennesy](https://github.com/chennesy) (lead)
- [Tim Dennis](https://github.com/jt14den)
An introduction to Python for non-programmers using inflammation data.

The updated version of this lesson (June 2024) was developed with the assistance of [David Palmquist](https://github.com/quist00) and [Scott Peterson](https://github.com/scottcpeterson).
## About the Lesson

Lesson Maintainers communication is via the [team site](https://github.com/orgs/LibraryCarpentry/teams/lc-python-intro-maintainers).
This lesson teaches novice programmers to write modular code to perform data analysis
using Python. The emphasis, however, is on teaching language-agnostic principles of
programming such as automation with loops and encapsulation with functions,
see [Best Practices for Scientific Computing][best-practices] and
[Good enough practices in scientific computing][good-practices] to learn more.

## Past Maintainers for Library Carpentry: Python Intro for Libraries
- [Konrad Foerstner](https://github.com/konrad)
- [Drew Heles](https://github.com/dheles)
- [Elizabeth Wickes](https://github.com/elliewix)
- [Laura Wrubel](https://github.com/lwrubel)
- [Carlos Martinez](https://github.com/c-martinez)
- [Richard Vankoningsveld](https://github.com/richyvk)
The example used in this lesson analyses a set of 12 files with simulated inflammation
data collected from a trial for a new treatment for arthritis. Learners are shown
how it is better to automate analysis using functions instead of repeating analysis
steps manually.

## Library Carpentry
The rendered version of the lesson is available at:
[Programming with Python](https://broadinstitute.github.io/2024-06-24-python-novice-lesson/).

[Library Carpentry](https://librarycarpentry.org) is a software and data skills training programme for people working in library- and information-related roles. It builds on the work of [Software Carpentry](https://software-carpentry.org/) and [Data Carpentry](https://www.datacarpentry.org/). Library Carpentry is an official Lesson Program of [The Carpentries](https://carpentries.org/).
The Carpentries also offers versions of this lesson in [R] and [MATLAB].

## License
## Episodes

All Software, Data, and Library Carpentry instructional material is made available under the [Creative Commons Attribution
license](LICENSE.md).
| \# | Episode | Question(s) |
| --: | :------ | :--------------------------------------------------------------------------- |
| 1 | [Python Fundamentals][episode01] | What basic data types can I work with in Python?<br>How can I create a new variable in Python?<br>Can I change the value associated with a variable after I create it? |
| 2 | [Analyzing Patient Data][episode02] | How can I process tabular data files in Python? |
| 3 | [Visualizing Tabular Data][episode03] | How can I visualize tabular data in Python?<br>How can I group several plots together? |
| 4 | [Storing Multiple Values in Lists][episode04] | How can I store many values together? |
| 5 | [Repeating Actions with Loops][episode05] | How can I do the same operations on many different values? |
| 6 | [Analyzing Data from Multiple Files][episode06] | How can I do the same operations on many different files? |
| 7 | [Making Choices][episode07] | How can my programs do different things based on data values? |
| 8 | [Creating Functions][episode08] | How can I define new functions?<br>What's the difference between defining and calling a function?<br>What happens when I call a function? |
| 9 | [Errors and Exceptions][episode09] | How does Python report errors?<br>How can I handle errors in Python programs? |
| 10 | [Defensive Programming][episode10] | How can I make my programs more reliable? |
| 11 | [Debugging][episode11] | How can I debug my program? |
| 12 | [Command-Line Programs][episode12] | How can I write Python programs that will work like Unix command-line tools? |

## Contributing

There are many ways to discuss and contribute to Library Carpentry lessons. The easiest way to get started is to [file an issue](https://github.com/LibraryCarpentry/lc-python-intro/issues) to tell us about a spelling mistake, some awkward wording, or a factual error. This is a good way to introduce yourself and to meet some of our community members. See [Contributing](CONTRIBUTING.md) for more information about contributing Pull Requests and connecting with others in the Carpentries.

## Code of Conduct

All participants should agree to abide by The Carpentries [Code of Conduct](https://docs.carpentries.org/topic_folders/policies/code-of-conduct.html).
We welcome all contributions to improve the lesson!
Maintainers will do their best to help you if you have any questions, concerns,
or experience any difficulties along the way.

## Authors
We'd like to ask you to familiarize yourself with our [Contribution Guide](CONTRIBUTING.md).

Library Carpentry is authored and maintained through issues, commits, and pull requests from the community.
## Maintainers

## Citation

James Allen, Markus J. Ankenbrand, James Baker, Sean Barberie, Christian Calogero Barra, Trevor Bekolay, John Blischak, K. Azalee Bostroem, Andrew P Boughton, Geoffrey Boushey, Hugo Bowne-Anderson, Petrina Collingwood, Logan Cox, Matt Critchlow, Tim Dennis, Jonah Duckles, Shyam Dwaraknath, Jason Ellis, Rémi Emonet, … yremmits. (2024). LibraryCarpentry/lc-python-intro: Python Intro for Libraries 2024-06 Update (2024.06). Zenodo. https://doi.org/10.5281/zenodo.12582386
Lesson maintainers are Jean Chang and Annie Moriondo.

## License

Instructional material from this lesson is made available under the
[Creative Commons Attribution][cc-by-human] ([CC BY 4.0][cc-by-legal]) license. Except where
otherwise noted, example programs and software included as part of this lesson are made available
under the [MIT license][mit-license]. For more information, see [LICENSE.md](LICENSE.md).

[sw-python]: https://swcarpentry.github.io/python-novice-inflammation/
[sw-site]: https://software-carpentry.org/
[best-practices]: https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745
[good-practices]: https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005510
[R]: https://github.com/swcarpentry/r-novice-inflammation
[MATLAB]: https://github.com/swcarpentry/matlab-novice-inflammation
[episode01]: https://broadinstitute.github.io/2024-06-24-python-novice-lesson//01-intro/index.html
[episode02]: https://broadinstitute.github.io/2024-06-24-python-novice-lesson//02-numpy/index.html
[episode03]: https://broadinstitute.github.io/2024-06-24-python-novice-lesson//03-matplotlib/index.html
[episode04]: https://broadinstitute.github.io/2024-06-24-python-novice-lesson//04-lists/index.html
[episode05]: https://broadinstitute.github.io/2024-06-24-python-novice-lesson//05-loop/index.html
[episode06]: https://broadinstitute.github.io/2024-06-24-python-novice-lesson//06-files/index.html
[episode07]: https://broadinstitute.github.io/2024-06-24-python-novice-lesson//07-cond/index.html
[episode08]: https://broadinstitute.github.io/2024-06-24-python-novice-lesson//08-func/index.html
[episode09]: https://broadinstitute.github.io/2024-06-24-python-novice-lesson//09-errors/index.html
[episode10]: https://broadinstitute.github.io/2024-06-24-python-novice-lesson//10-defensive/index.html
[episode11]: https://broadinstitute.github.io/2024-06-24-python-novice-lesson//11-debugging/index.html
[episode12]: https://broadinstitute.github.io/2024-06-24-python-novice-lesson//12-cmdline/index.html
[cc-by-human]: https://creativecommons.org/licenses/by/4.0/
[cc-by-legal]: https://creativecommons.org/licenses/by/4.0/legalcode
[mit-license]: https://opensource.org/licenses/mit-license.html
Loading