├── code
└── .gitkeep
├── data
└── .gitkeep
├── fig
├── .gitkeep
├── completed-page.png
├── using-github-import.png
├── select-gh-pages-branch.png
├── edit-index-file-menu-bar.png
└── select-github-use-template.png
├── _episodes
└── .gitkeep
├── _extras
├── .gitkeep
├── about.md
├── install_instructions.md
├── helpers.md
└── design.md
├── files
├── .gitkeep
└── etherpad.txt
├── _episodes_rmd
├── .gitkeep
└── data
│ └── .gitkeep
├── requirements.txt
├── bin
├── boilerplate
│ ├── CITATION
│ ├── AUTHORS
│ ├── setup.md
│ ├── _extras
│ │ ├── discuss.md
│ │ ├── guide.md
│ │ ├── about.md
│ │ └── figures.md
│ ├── reference.md
│ ├── _episodes
│ │ └── 01-introduction.md
│ ├── index.md
│ ├── README.md
│ └── _config.yml
├── install_r_deps.sh
├── run-make-docker-serve.sh
├── knit_lessons.sh
├── markdown_ast.rb
├── test_lesson_check.py
├── _test
│ └── bs4test.py
├── _travis.py
├── lesson_initialize.py
├── generate_md_episodes.R
├── chunk-options.R
├── reporter.py
├── util.py
└── dependencies.R
├── _includes
├── github-ribbon.html
├── episode_title.html
├── swc
│ ├── who.html
│ ├── intro.html
│ ├── setup.html
│ └── schedule.html
├── lc
│ ├── who.html
│ ├── intro.html
│ ├── schedule.html
│ └── setup.html
├── warning-flavor.html
├── warning-curriculum.html
├── episode_break.html
├── main_title.html
├── episode_keypoints.html
├── check_transition_variables.html
├── dc
│ ├── intro.html
│ ├── who.html
│ └── setup.html
├── workshop_calendar.html
├── aio-script.md
├── workshop_footer.html
├── all_keypoints.html
├── workshop_ad.html
├── base_path.html
├── episode_navbar.html
├── gh_variables.html
├── install_instructions
│ ├── videoconferencing.html
│ ├── editor.html
│ ├── sql.html
│ ├── r.html
│ ├── git.html
│ └── openrefine.html
├── episode_overview.html
├── lesson_footer.html
├── links.md
├── favicons.html
├── custom-schedule.html
├── javascript.html
├── carpentries.html
├── life_cycle.html
└── manual_episode_order.html
├── assets
├── img
│ ├── lc-icon-black.png
│ ├── lc-logo-black.png
│ ├── swc-logo-blue.png
│ ├── swc-logo-white.png
│ ├── cp-logo-blue.svg
│ ├── incubator-logo-blue.svg
│ ├── swc-icon-blue.svg
│ ├── dc-icon-black.svg
│ └── dc-logo-black.svg
├── favicons
│ ├── cp
│ │ ├── favicon.ico
│ │ ├── favicon-128.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon-96x96.png
│ │ ├── mstile-70x70.png
│ │ ├── favicon-196x196.png
│ │ ├── mstile-144x144.png
│ │ ├── mstile-150x150.png
│ │ ├── mstile-310x150.png
│ │ ├── mstile-310x310.png
│ │ ├── apple-touch-icon-57x57.png
│ │ ├── apple-touch-icon-60x60.png
│ │ ├── apple-touch-icon-72x72.png
│ │ ├── apple-touch-icon-76x76.png
│ │ ├── apple-touch-icon-114x114.png
│ │ ├── apple-touch-icon-120x120.png
│ │ ├── apple-touch-icon-144x144.png
│ │ └── apple-touch-icon-152x152.png
│ ├── dc
│ │ ├── favicon.ico
│ │ ├── favicon-128.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon-96x96.png
│ │ ├── mstile-70x70.png
│ │ ├── favicon-196x196.png
│ │ ├── mstile-144x144.png
│ │ ├── mstile-150x150.png
│ │ ├── mstile-310x150.png
│ │ ├── mstile-310x310.png
│ │ ├── apple-touch-icon-57x57.png
│ │ ├── apple-touch-icon-60x60.png
│ │ ├── apple-touch-icon-72x72.png
│ │ ├── apple-touch-icon-76x76.png
│ │ ├── apple-touch-icon-114x114.png
│ │ ├── apple-touch-icon-120x120.png
│ │ ├── apple-touch-icon-144x144.png
│ │ └── apple-touch-icon-152x152.png
│ ├── lc
│ │ ├── favicon.ico
│ │ ├── favicon-128.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon-96x96.png
│ │ ├── mstile-70x70.png
│ │ ├── favicon-196x196.png
│ │ ├── mstile-144x144.png
│ │ ├── mstile-150x150.png
│ │ ├── mstile-310x150.png
│ │ ├── mstile-310x310.png
│ │ ├── apple-touch-icon-57x57.png
│ │ ├── apple-touch-icon-60x60.png
│ │ ├── apple-touch-icon-72x72.png
│ │ ├── apple-touch-icon-76x76.png
│ │ ├── apple-touch-icon-114x114.png
│ │ ├── apple-touch-icon-120x120.png
│ │ ├── apple-touch-icon-144x144.png
│ │ └── apple-touch-icon-152x152.png
│ └── swc
│ │ ├── favicon.ico
│ │ ├── favicon-128.png
│ │ ├── mstile-70x70.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-196x196.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon-96x96.png
│ │ ├── mstile-144x144.png
│ │ ├── mstile-150x150.png
│ │ ├── mstile-310x150.png
│ │ ├── mstile-310x310.png
│ │ ├── apple-touch-icon-57x57.png
│ │ ├── apple-touch-icon-60x60.png
│ │ ├── apple-touch-icon-72x72.png
│ │ ├── apple-touch-icon-76x76.png
│ │ ├── apple-touch-icon-114x114.png
│ │ ├── apple-touch-icon-120x120.png
│ │ ├── apple-touch-icon-144x144.png
│ │ └── apple-touch-icon-152x152.png
├── fonts
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.ttf
│ ├── glyphicons-halflings-regular.woff
│ └── glyphicons-halflings-regular.woff2
├── js
│ ├── lesson.js
│ ├── katex-auto-render.min.js
│ └── anchor.min.js
└── css
│ └── syntax.css
├── _layouts
├── page.html
├── reference.html
├── lesson.html
├── break.html
├── episode.html
├── base.html
└── workshop.html
├── CITATION
├── .gitignore
├── aio.md
├── Gemfile
├── .travis.yml
├── CODE_OF_CONDUCT.md
├── .editorconfig
├── getsql.sh
├── 404.md
├── .github
├── PULL_REQUEST_TEMPLATE.md
├── ISSUE_TEMPLATE.md
└── workflows
│ └── website.yml
├── AUTHORS
├── CONDUCT.md
├── setup
├── swc-installation-test-1.py
└── index.md
├── .mailmap
└── LICENSE.md
/code/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/data/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/fig/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_episodes/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_extras/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/files/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_episodes_rmd/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_episodes_rmd/data/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | PyYAML
2 | beautifulsoup4
3 | git_root
--------------------------------------------------------------------------------
/bin/boilerplate/CITATION:
--------------------------------------------------------------------------------
1 | FIXME: describe how to cite this lesson.
--------------------------------------------------------------------------------
/bin/boilerplate/AUTHORS:
--------------------------------------------------------------------------------
1 | FIXME: list authors' names and email addresses.
--------------------------------------------------------------------------------
/bin/boilerplate/setup.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Setup
3 | ---
4 | FIXME
5 |
6 |
7 | {% include links.md %}
8 |
--------------------------------------------------------------------------------
/fig/completed-page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/2025-01-30-cardiff/gh-pages/fig/completed-page.png
--------------------------------------------------------------------------------
/bin/boilerplate/_extras/discuss.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Discussion
3 | ---
4 | FIXME
5 |
6 | {% include links.md %}
7 |
--------------------------------------------------------------------------------
/_includes/github-ribbon.html:
--------------------------------------------------------------------------------
1 | Find us on GitHub
2 |
--------------------------------------------------------------------------------
/assets/img/lc-icon-black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/2025-01-30-cardiff/gh-pages/assets/img/lc-icon-black.png
--------------------------------------------------------------------------------
/assets/img/lc-logo-black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/2025-01-30-cardiff/gh-pages/assets/img/lc-logo-black.png
--------------------------------------------------------------------------------
/assets/img/swc-logo-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/2025-01-30-cardiff/gh-pages/assets/img/swc-logo-blue.png
--------------------------------------------------------------------------------
/assets/img/swc-logo-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/2025-01-30-cardiff/gh-pages/assets/img/swc-logo-white.png
--------------------------------------------------------------------------------
/bin/boilerplate/_extras/guide.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Instructor Notes"
3 | ---
4 | FIXME
5 |
6 | {% include links.md %}
7 |
--------------------------------------------------------------------------------
/fig/using-github-import.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/2025-01-30-cardiff/gh-pages/fig/using-github-import.png
--------------------------------------------------------------------------------
/_extras/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | title: About
4 | permalink: /about/
5 | ---
6 | {% include carpentries.html %}
7 |
--------------------------------------------------------------------------------
/assets/favicons/cp/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/2025-01-30-cardiff/gh-pages/assets/favicons/cp/favicon.ico
--------------------------------------------------------------------------------
/assets/favicons/dc/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/2025-01-30-cardiff/gh-pages/assets/favicons/dc/favicon.ico
--------------------------------------------------------------------------------
/assets/favicons/lc/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/2025-01-30-cardiff/gh-pages/assets/favicons/lc/favicon.ico
--------------------------------------------------------------------------------
/assets/favicons/swc/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/2025-01-30-cardiff/gh-pages/assets/favicons/swc/favicon.ico
--------------------------------------------------------------------------------
/bin/boilerplate/_extras/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: About
3 | ---
4 | {% include carpentries.html %}
5 | {% include links.md %}
6 |
--------------------------------------------------------------------------------
/fig/select-gh-pages-branch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/2025-01-30-cardiff/gh-pages/fig/select-gh-pages-branch.png
--------------------------------------------------------------------------------
/_layouts/page.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: base
3 | ---
4 | {% include main_title.html %}
5 |
2 | Who: 3 | The course is aimed at graduate students and other researchers. 4 | 5 | You don't need to have any previous knowledge of the tools 6 | that will be presented at the workshop. 7 | 8 |
9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *~ 3 | .DS_Store 4 | .ipynb_checkpoints 5 | .sass-cache 6 | .jekyll-cache/ 7 | .jekyll-metadata 8 | __pycache__ 9 | _site 10 | .Rproj.user 11 | .Rhistory 12 | .RData 13 | .bundle/ 14 | .vendor/ 15 | vendor/ 16 | .docker-vendor/ 17 | Gemfile.lock 18 | .*history 19 | -------------------------------------------------------------------------------- /_includes/lc/who.html: -------------------------------------------------------------------------------- 1 |2 | Who: 3 | The course is for people working in library- and information-related roles. 4 | 5 | You don't need to have any previous knowledge of the tools that 6 | will be presented at the workshop. 7 | 8 |
9 | -------------------------------------------------------------------------------- /_layouts/break.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: base 3 | --- 4 | {% include episode_navbar.html episode_navbar_title=true %} 5 |
3 | Unrecognized value for variable flavor set in
4 | _config.yml. Valid values are "r" and
5 | "python", currently set to {{ site.flavor }}.
6 |
curriculum set in
4 | _config.yml. Currently the variable is set to:
5 | {{ site.curriculum }}. Check the values of
6 | carpentry and curriculum in the
7 | _config.yml file.
8 | 5 |16 | -------------------------------------------------------------------------------- /_includes/main_title.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | Main title for lesson pages. 3 | {% endcomment %} 4 | 5 | {% include base_path.html %} 6 | 7 | {% if site.kind == "lesson" %} 8 |Overview
6 | 7 |8 |14 | 15 |9 | Break: {{ page.break }} min 10 |11 |12 |13 |
12 |19 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | python: 3 | - "3.6" 4 | # Remember that the code is running on a 14.04 machine. 5 | # - "3.4" 6 | # command to install dependencies 7 | install: 8 | - pip install -r requirements.txt 9 | # as per https://docs.travis-ci.com/user/installing-dependencies/ 10 | # command to run tests 11 | before_script: 12 | - "python bin/_travis.py" 13 | script: 14 | - python bin/workshop_check.py . 15 | - python -m unittest bin/_test/bs4test.py 16 | branches: 17 | only: 18 | - gh-pages 19 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Contributor Code of Conduct" 4 | --- 5 | As contributors and maintainers of this project, 6 | we pledge to follow the [Carpentry Code of Conduct][coc]. 7 | 8 | Instances of abusive, harassing, or otherwise unacceptable behavior 9 | may be reported by following our [reporting guidelines][coc-reporting]. 10 | 11 | [coc]: https://docs.carpentries.org/topic_folders/policies/code-of-conduct.html 12 | [coc-reporting]: https://docs.carpentries.org/topic_folders/policies/incident-reporting.html 13 | -------------------------------------------------------------------------------- /bin/test_lesson_check.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | import lesson_check 4 | import reporter 5 | 6 | 7 | class TestFileList(unittest.TestCase): 8 | def setUp(self): 9 | self.reporter = reporter.Reporter() # TODO: refactor reporter class. 10 | 11 | def test_file_list_has_expected_entries(self): 12 | # For first pass, simply assume that all required files are present 13 | 14 | lesson_check.check_fileset('', self.reporter, lesson_check.REQUIRED_FILES) 15 | self.assertEqual(len(self.reporter.messages), 0) 16 | 17 | 18 | if __name__ == "__main__": 19 | unittest.main() 20 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | insert_final_newline = true 6 | trim_trailing_whitespace = true 7 | 8 | [*.md] 9 | indent_size = 2 10 | indent_style = space 11 | 12 | # Please keep this in sync with bin/lesson_check.py! 13 | max_line_length = 100 14 | 15 | # keep trailing spaces in markdown - 2+ spaces are translated to a hard break (Key Points
13 |14 | {% for keypoint in episode_keypoints %} 15 |
18 |- {{ keypoint|markdownify }}
16 | {% endfor %} 17 |
2 | Software Carpentry 3 | aims to help researchers get their work done 4 | in less time and with less pain 5 | by teaching them basic research computing skills. 6 | This hands-on workshop will cover basic concepts and tools, 7 | including program design, version control, data management, 8 | and task automation. 9 | Participants will be encouraged to help one another 10 | and to apply what they have learned to their own research problems. 11 |
12 |13 | 14 | For more information on what we teach and why, 15 | please see our paper 16 | "Best Practices for Scientific Computing". 17 | 18 |
19 | -------------------------------------------------------------------------------- /_includes/check_transition_variables.html: -------------------------------------------------------------------------------- 1 | {% assign date = include.need_transition_date %} 2 | 3 | {% if date == "true" %} 4 | {% unless site.transition_date_prebeta %} 5 |transition_date_prebeta
7 | in _config.yml.
8 | transition_date_beta
13 | in _config.yml.
14 | transition_date_prerelease
19 | in _config.yml.
20 | 2 | Data Carpentry develops and teaches workshops on the fundamental data skills needed to conduct 3 | research. Its target audience is researchers who have little to no prior computational experience, 4 | and its lessons are domain specific, building on learners' existing knowledge to enable them to quickly 5 | apply skills learned to their own research. 6 | Participants will be encouraged to help one another 7 | and to apply what they have learned to their own research problems. 8 |
9 |10 | 11 | For more information on what we teach and why, 12 | please see our paper 13 | "Good Enough Practices for Scientific Computing". 14 | 15 |
16 | -------------------------------------------------------------------------------- /_includes/workshop_calendar.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | For 2-day all-day events, the end date needs to be a day later. 3 | from here: https://stackoverflow.com/a/37659516/1113276 4 | {% endcomment %} 5 | 6 | {% assign final_day = page.enddate | date: '%s' | plus:86400 | date: '%F' | replace: "-", "" %} 7 | 8 | Add to your Google Calendar. 9 | -------------------------------------------------------------------------------- /404.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: base 3 | root: . 4 | permalink: 404.html 5 | title: "Page not found" 6 | --- 7 | 8 | # Oops! We cannot find that page. 9 | {: style="text-align: center;"} 10 | 11 | > ## Our apologies! 12 | > 13 | > We cannot seem to find the page you are looking for. 14 | > Try going back to the previous page or 15 | > navigate to any other page using the navigation bar above 16 | > {%- if site.kind == "lesson" -%} or the schedule below {%- endif -%}. 17 | > If you got here by clicking on a link in the 18 | > {%- if site.kind == "lesson" -%} lesson {%- else -%} workshop {%- endif -%}, 19 | > please report this link to the 20 | > {%- if site.kind == "lesson" -%} lesson developers {%- else -%} workshop organizers {%- endif -%}. 21 | {: .caution} 22 | 23 | {% if site.kind == "lesson" %} 24 | {% include syllabus.html %} 25 | {% endif%} 26 | -------------------------------------------------------------------------------- /_includes/aio-script.md: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | As a maintainer, you don't need to edit this file. 3 | If you notice that something doesn't work, please 4 | open an issue: https://github.com/carpentries/styles/issues/new 5 | {% endcomment %} 6 | 7 | {% include manual_episode_order.html %} 8 | 9 | {% for lesson_episode in lesson_episodes %} 10 | 11 | {% if site.episode_order %} 12 | {% assign e = site.episodes | where: "slug", lesson_episode | first %} 13 | {% else %} 14 | {% assign e = lesson_episode %} 15 | {% endif %} 16 | 17 |2 | Library Carpentry 3 | is made by people working in library- and information-related roles to help you: 4 |
5 |13 | 14 | Library Carpentry introduces you to the fundamentals of computing 15 | and provides you with a platform for further self-directed learning. 16 | For more information on what we teach and why, please see our paper 17 | "Library Carpentry: software skills training for library professionals". 18 | 19 |
20 | -------------------------------------------------------------------------------- /_includes/all_keypoints.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | Display key points of all episodes for reference. 3 | {% endcomment %} 4 | 5 | {% include base_path.html %} 6 | {% include manual_episode_order.html %} 7 | 8 || 19 | {{ episode.title }} 20 | | 21 |
22 |
|
28 |
| Before Starting | Pre-workshop survey |
| 09:00 | Tidy Data for Librarians |
| 10:30 | Morning break |
| 12:00 | Lunch break |
| 13:00 | The Unix Shell |
| 14:30 | Afternoon break |
| 16:00 | Wrap-up |
| 16:30 | END |
| 09:00 | Introduction to Git |
| 10:30 | Morning break |
| 12:00 | Lunch break |
| 13:00 | OpenRefine |
| 14:30 | Afternoon break |
| 16:00 | Wrap-up |
| 16:30 | Post-workshop survey |
Online (link)
25 | {% elsif online == "true_private" %} 26 |Online
27 | {% endif %} 28 |{{page.humandate}}
29 |{% if page.humantime %}{{page.humantime}}{% endif %}
30 |33 | Instructors: 34 | {% if page.instructor %} 35 | {{page.instructor | join: ', ' %}} 36 | {% else %} 37 | to be announced. 38 | {% endif %} 39 |
40 | {% if page.helper %} 41 |42 | Helpers: 43 | {{page.helper | join: ', ' %}} 44 |
45 | {% endif %} 46 || Before | Pre-workshop survey |
| 09:00 | Automating Tasks with the Unix Shell |
| 10:30 | Morning break |
| 11:00 | Automating Tasks with the Unix Shell (Continued) |
| 12:00 | Lunch break |
| 13:00 | Building Programs with R |
| 14:30 | Afternoon break |
| 15:00 | Building Programs with R (Continued) |
| 13:00 | Building Programs with Python |
| 14:30 | Afternoon break |
| 15:00 | Building Programs with Python (Continued) |
| 16:00 | Wrap-up |
| 16:30 | END |
| 09:00 | Version Control with Git |
| 10:30 | Morning break |
| 11:00 | Version Control with Git (Continued) |
| 12:00 | Lunch break |
| 13:00 | Managing Data with SQL |
| 14:30 | Afternoon break |
| 15:00 | Managing Data with SQL (Continued) |
| 16:00 | Wrap-up |
| 16:30 | Post-workshop Survey |
| 16:40 | END |
9 | If you haven't used Zoom before, go to the 10 | official website 11 | to download and install the Zoom client for your computer. 12 |
13 | 14 | 15 |18 | Like other Carpentries workshops, 19 | you will be learning by "coding along" with the Instructors. 20 | To do this, you will need to have both the window for the tool 21 | you will be learning about (a terminal, RStudio, your web browser, etc..) 22 | and the window for the Zoom video conference client open. 23 | In order to see both at once, 24 | we recommend using one of the following set up options: 25 |
45 |77 | -------------------------------------------------------------------------------- /_includes/dc/who.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | Astronomy workshops 3 | {% endcomment %} 4 | 5 | 6 | {% if site.curriculum == "dc-astronomy" %} 7 | 8 |Overview
46 | 47 |48 |62 | 63 |49 | Teaching: {{ teaching_time }} min 50 |53 |
51 | Exercises: {{ exercise_time }} min 52 |54 | Questions 55 |61 |56 | {% for question in episode_questions %} 57 |
60 |- {{ question|markdownify }}
58 | {% endfor %} 59 |64 |75 | 76 |65 |66 |67 | Objectives 68 |74 |69 | {% for objective in episode_objectives %} 70 |
73 |- {{ objective|markdownify }}
71 | {% endfor %} 72 |
9 | Who: 10 | This lesson assumes you have a working knowledge of Python and some previous exposure to the Bash shell. 11 | These requirements can be fulfilled by: 12 | a) completing a Software Carpentry Python workshop or 13 | b) completing a Data Carpentry Ecology workshop (with Python) and a Data Carpentry Genomics workshop or 14 | c) independent exposure to both Python and the Bash shell. 15 | 16 | If you’re unsure whether you have enough experience to participate in this workshop, please read over 17 | this detailed list, 18 | which gives all of the functions, operators, and other concepts you will need to be familiar with. 19 | 20 | In addition, this lesson assumes that learners have some familiarity with astronomical concepts, 21 | including reference frames, proper motion, color-magnitude diagrams, globular clusters, and isochrones. 22 | Participants should bring their own laptops and plan to participate actively. 23 |
24 | 25 | {% comment %} 26 | Image workshops 27 | {% endcomment %} 28 | 29 | {% elsif site.curriculum == "dc-image" %} 30 | 31 |32 | Who: 33 | This lesson assumes you have a working knowledge of Python and some previous exposure to the Bash shell. 34 | These requirements can be fulfilled by: 35 | a) completing a Software Carpentry Python workshop or 36 | b) completing a Data Carpentry Ecology workshop (with Python) and a Data Carpentry Genomics workshop or 37 | c) independent exposure to both Python and the Bash shell. 38 | 39 | If you’re unsure whether you have enough experience to participate in this workshop, please read over 40 | this detailed list, 41 | which gives all of the functions, operators, and other concepts you will need to be familiar with. 42 |
43 | 44 | {% comment %} 45 | All other workshops 46 | {% endcomment %} 47 | 48 | {% else %} 49 | 50 |51 | Who: 52 | The course is aimed at graduate students and other researchers. 53 | 54 | You don't need to have any previous knowledge of the tools 55 | that will be presented at the workshop. 56 | 57 |
58 | 59 | {% endif %} 60 | -------------------------------------------------------------------------------- /_includes/lesson_footer.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | Footer for lesson pages. 3 | {% endcomment %} 4 | 5 | {% include gh_variables.html %} 6 | 7 | 55 | -------------------------------------------------------------------------------- /_includes/links.md: -------------------------------------------------------------------------------- 1 | {% include base_path.html %} 2 | [cc-by-human]: https://creativecommons.org/licenses/by/4.0/ 3 | [cc-by-legal]: https://creativecommons.org/licenses/by/4.0/legalcode 4 | [ci]: http://communityin.org/ 5 | [coc-reporting]: https://docs.carpentries.org/topic_folders/policies/incident-reporting.html 6 | [coc]: https://docs.carpentries.org/topic_folders/policies/code-of-conduct.html 7 | [concept-maps]: https://carpentries.github.io/instructor-training/05-memory/ 8 | [contrib-covenant]: https://contributor-covenant.org/ 9 | [contributing]: {{ repo_url }}/blob/{{ source_branch }}/CONTRIBUTING.md 10 | [cran-checkpoint]: https://cran.r-project.org/package=checkpoint 11 | [cran-knitr]: https://cran.r-project.org/package=knitr 12 | [cran-stringr]: https://cran.r-project.org/package=stringr 13 | [dc-lessons]: http://www.datacarpentry.org/lessons/ 14 | [email]: mailto:team@carpentries.org 15 | [github-importer]: https://import2.github.com/ 16 | [importer]: https://github.com/new/import 17 | [jekyll-collection]: https://jekyllrb.com/docs/collections/ 18 | [jekyll-install]: https://jekyllrb.com/docs/installation/ 19 | [jekyll-windows]: http://jekyll-windows.juthilo.com/ 20 | [jekyll]: https://jekyllrb.com/ 21 | [jupyter]: https://jupyter.org/ 22 | [kramdown]: https://kramdown.gettalong.org/ 23 | [lc-lessons]: https://librarycarpentry.org/lessons/ 24 | [lesson-coc]: {{ relative_root_path }}{% link CODE_OF_CONDUCT.md %} 25 | [lesson-example]: https://carpentries.github.io/lesson-example/ 26 | [lesson-license]: {{ relative_root_path }}{% link LICENSE.md %} 27 | [lesson-mainpage]: {{ relative_root_path }}{% link index.md %} 28 | [mit-license]: https://opensource.org/licenses/mit-license.html 29 | [morea]: https://morea-framework.github.io/ 30 | [numfocus]: https://numfocus.org/ 31 | [osi]: https://opensource.org 32 | [pandoc]: https://pandoc.org/ 33 | [paper-now]: https://github.com/PeerJ/paper-now 34 | [python-gapminder]: https://swcarpentry.github.io/python-novice-gapminder/ 35 | [pyyaml]: https://pypi.org/project/PyYAML/ 36 | [r-markdown]: https://rmarkdown.rstudio.com/ 37 | [rstudio]: https://www.rstudio.com/ 38 | [ruby-install-guide]: https://www.ruby-lang.org/en/downloads/ 39 | [ruby-installer]: https://rubyinstaller.org/ 40 | [rubygems]: https://rubygems.org/pages/download/ 41 | [styles]: https://github.com/carpentries/styles/ 42 | [swc-lessons]: https://software-carpentry.org/lessons/ 43 | [swc-releases]: https://github.com/swcarpentry/swc-releases 44 | [training]: https://carpentries.github.io/instructor-training/ 45 | [workshop-repo]: {{ site.workshop_repo }} 46 | [yaml]: http://yaml.org/ 47 | -------------------------------------------------------------------------------- /_includes/favicons.html: -------------------------------------------------------------------------------- 1 | {% assign favicon_url = relative_root_path | append: '/assets/favicons/' | append: site.carpentry %} 2 | 3 | {% if site.carpentry == 'swc' %} 4 | {% assign carpentry = 'Software Carpentry' %} 5 | {% elsif site.carpentry == 'dc' %} 6 | {% assign carpentry = 'Data Carpentry' %} 7 | {% elsif site.carpentry == 'lc' %} 8 | {% assign carpentry = 'Library Carpentry' %} 9 | {% elsif site.carpentry == 'cp' %} 10 | {% assign carpentry = 'The Carpentries' %} 11 | {% endif %} 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /_includes/install_instructions/editor.html: -------------------------------------------------------------------------------- 1 |5 | When you're writing code, it's nice to have a text editor that is 6 | optimized for writing code, with features like automatic 7 | color-coding of key words. The default text editor on macOS and 8 | Linux is usually set to Vim, which is not famous for being 9 | intuitive. If you accidentally find yourself stuck in it, hit 10 | the Esc key, followed by :+Q+! 11 | (colon, lower-case 'q', exclamation mark), then hitting Return to 12 | return to the shell. 13 |
14 | 15 |25 | nano is a basic editor and the default that instructors use in the workshop. 26 | It is installed along with Git. 27 |
28 |31 | nano is a basic editor and the default that instructors use in the workshop. 32 | See the Git installation video tutorial 33 | for an example on how to open nano. 34 | It should be pre-installed. 35 |
36 |45 | nano is a basic editor and the default that instructors use in the workshop. 46 | It should be pre-installed. 47 |
48 || Before starting | 7 |Pre-workshop survey | 8 |
| 11 | | 12 | |
| 15 | | 16 | |
| 24 | | 25 | |
| 28 | | 29 | |
| 32 | | 33 | |
| 43 | | 44 | |
| 47 | | 48 | |
| 51 | | 52 | |
| 60 | | 61 | |
| 64 | | 65 | |
| End | 68 |Post-workshop survey | 69 |
9 | The setup instructions for the Data Carpentry Astronomy workshops 10 | can be found at 11 | the curriculum site. 12 |
13 | 14 | {% comment %} 15 | Ecology workshops 16 | {% endcomment %} 17 | 18 | 19 | {% elsif site.curriculum == "dc-ecology" %} 20 | 21 | {% if site.flavor == "r" %} 22 |23 | The setup instructions for the Data Carpentry Ecology workshops (with R) 24 | can be found at 25 | the workshop overview site. 26 |
27 | 28 | {% elsif site.flavor == "python" %} 29 |30 | The setup instructions for the Data Carpentry Ecology workshops (with Python) 31 | can be found at 32 | the workshop overview site. 33 |
34 | {% else %} 35 | {% include warning-flavor.html %} 36 | {% endif %} 37 | 38 | {% comment %} 39 | Genomics workshops 40 | {% endcomment %} 41 | 42 | {% elsif site.curriculum == "dc-genomics" %} 43 |The setup instructions for the Data Carpentry Genomics workshops can be found at the workshop overview site
. 44 | 45 | {% comment %} 46 | Geospatial workshops 47 | {% endcomment %} 48 | 49 | {% elsif site.curriculum == "dc-geospatial" %} 50 |The setup instructions for the Data Carpentry Geospatial workshop can be found at the workshop overview site.
51 | 52 | {% comment %} 53 | Image workshops 54 | {% endcomment %} 55 | 56 | {% elsif site.curriculum == "dc-image" %} 57 | 58 |The setup instructions for Data Carpentry Image Processing workshops can be found at the curriculum site.
59 | 60 | {% comment %} 61 | Social sciences workshops 62 | {% endcomment %} 63 | 64 | {% elsif site.curriculum == "dc-socsci" %} 65 | 66 | {% if site.flavor == "r" %} 67 |68 | The setup instructions for the Data Carpentry Social Sciences 69 | workshops (with R) can be found at 70 | the workshop overview site. 71 |
72 | 73 | {% elsif site.flavor == "python" %} 74 |75 | The setup instructions for the Data Carpentry Social Sciences workshops (with Python) 76 | can be found at 77 | the workshop overview site. 78 |
79 | {% else %} 80 | {% include warning-flavor.html %} 81 | {% endif %} 82 | 83 | {% else %} 84 | {% include warning-curriculum.html %} 85 | {% endif %} 86 | -------------------------------------------------------------------------------- /bin/boilerplate/_extras/figures.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Figures 3 | --- 4 | 5 | {% include base_path.html %} 6 | {% include manual_episode_order.html %} 7 | 8 | 67 | 68 | {% comment %} Create anchor for each one of the episodes. {% endcomment %} 69 | 70 | {% for lesson_episode in lesson_episodes %} 71 | {% if site.episode_order %} 72 | {% assign episode = site.episodes | where: "slug", lesson_episode | first %} 73 | {% else %} 74 | {% assign episode = lesson_episode %} 75 | {% endif %} 76 | 77 | {% endfor %} 78 | 79 | {% include links.md %} 80 | -------------------------------------------------------------------------------- /_includes/install_instructions/sql.html: -------------------------------------------------------------------------------- 1 |5 | SQL is a specialized programming language used with databases. We 6 | use a database manager called 7 | SQLite in our lessons. 8 |
9 | 10 |curl -fsSL {{site.url}}{{site.baseurl}}/getsql.sh | bash3.27.2 2019-02-25 16:06:06 ...If you want to do this manually, download sqlite3, make a bin directory in the user's home directory, unzip sqlite3, move it into the bin directory, and then add the bin directory to the path.
27 | 28 |31 | SQLite comes pre-installed on macOS. 32 |
33 |36 | SQLite comes pre-installed on Linux. 37 |
38 |bashIf you installed Anaconda, it also has a copy of SQLite
51 | without support to readline.
52 | Instructors will provide a workaround for it if needed.
5 | R is a programming language 6 | that is especially powerful for data exploration, visualization, and 7 | statistical analysis. To interact with R, we use 8 | RStudio. 9 |
10 | 11 |21 | Install R by downloading and running 22 | this .exe file 23 | from CRAN. 24 | Also, please install the 25 | RStudio IDE. 26 | Note that if you have separate user and admin accounts, you should run the 27 | installers as administrator (right-click on .exe file and select "Run as 28 | administrator" instead of double-clicking). Otherwise problems may occur later, 29 | for example when installing R packages. 30 |
31 |40 | Install R by downloading and running 41 | this .pkg file 42 | from CRAN. 43 | Also, please install the 44 | RStudio IDE. 45 |
46 |
55 | Instructions for R installation on various Linux platforms (debian,
56 | fedora, redhat, and ubuntu) can be found at
57 | sudo dnf install R and for Debian/Ubuntu, add a ppa
60 | repository and then run sudo apt-get install r-base).
61 | Also, please install the
62 | RStudio IDE.
63 |
The Carpentries comprises 13 | Software Carpentry, Data Carpentry, and Library Carpentry communities of Instructors, Trainers, 14 | Maintainers, helpers, and supporters who share a mission to teach 15 | foundational coding and data science skills to researchers and people 16 | working in library- and information-related roles. In January, 17 | 2018, The Carpentries was formed by the merger of Software Carpentry and 18 | Data Carpentry. Library Carpentry became an official Carpentries Lesson Program 19 | in November 2018.
20 | 21 | 22 |While individual lessons and workshops continue to be run under each 23 | lesson project, The Carpentries provide overall staffing and governance, as 24 | well as support for assessment, instructor training and mentoring. 25 | Memberships are joint, and the Carpentries project maintains a shared Code 26 | of Conduct. The Carpentries is a fiscally sponsored project of Community 27 | Initiatives, a registered 501(c)3 non-profit based in California, USA.
28 |Since 1998, Software Carpentry has 36 | been teaching researchers across all disciplines the foundational coding 37 | skills they need to get more done in less time and with less pain. Its 38 | volunteer instructors have run hundreds of events for thousands of learners 39 | around the world. Now that all research involves some degree of 40 | computational work, whether with big data, cloud computing, or simple task 41 | automation, these skills are needed more than ever.
42 |Data Carpentry develops and teaches 51 | workshops on the fundamental data skills needed to conduct research. Its 52 | target audience is researchers who have little to no prior computational 53 | experience, and its lessons are domain specific, building on learners' 54 | existing knowledge to enable them to quickly apply skills learned to their 55 | own research. Data Carpentry workshops take researchers through the entire 56 | data life cycle.
57 |Library Carpentry develops lessons and 66 | teaches workshops for and with people working in library- and 67 | information-related roles. Its goal is to create an on-ramp to empower this 68 | community to use software and data in their own work, as well as be 69 | advocates for and train others in efficient, effective and reproducible data 70 | and software practices.
71 |9 | Git is a version control system that lets you track who made changes 10 | to what when and has options for easily updating a shared or public 11 | version of your code 12 | on github.com. You will need a 13 | supported 14 | web browser. 15 |
16 |17 | You will need an account at github.com 18 | for parts of the Git lesson. Basic GitHub accounts are free. We encourage 19 | you to create a GitHub account if you don't have one already. 20 | Please consider what personal information you'd like to reveal. For 21 | example, you may want to review these 22 | instructions 23 | for keeping your email address private provided at GitHub. 24 |
25 | 26 |36 | Git should be installed on your computer as part of your Bash 37 | install (see the 38 | Shell installation instructions). 39 |
40 |
43 | Please open the Terminal app, type git --version and press
44 | Enter/Return. If it's not installed already,
45 | follow the instructions to Install the "command line
46 | developer tools". Do not click "Get Xcode", because that will
47 | take too long and is not necessary for our Git lesson.
48 | After installing these tools, there won't be anything in your /Applications
49 | folder, as they and Git are command line programs.
50 | For older versions of OS X (10.5-10.8) use the
51 | most recent available installer labelled "snow-leopard"
52 | available here.
53 | (Note: this project is no longer maintained.)
54 | Because this installer is not signed by the developer, you may have to
55 | right click (control click) on the .pkg file, click Open, and click
56 | Open in the pop-up dialog. You can watch
57 | a video tutorial about this case.
58 |
68 | If Git is not already available on your machine you can try to
69 | install it via your distro's package manager. For Debian/Ubuntu run
70 | sudo apt-get install git and for Fedora run
71 | sudo dnf install git.
72 |
4 | For this lesson you will need OpenRefine and a 5 | web browser. Note: this is a Java program that runs on your machine (not in the cloud). 6 | It runs inside a web browser, but no web connection is needed. 7 |
8 | 9 |openrefine.exe (this will launch a command prompt window, but you can ignore that - just wait for OpenRefine to open in the browser)../refine into the terminal within the OpenRefine directory.4 | To interact with spreadsheets, we can use LibreOffice, 5 | Microsoft Excel, 6 | Gnumeric, 7 | OpenOffice.org, 8 | or other programs. 9 | Commands may differ a bit between programs, but general ideas for thinking about spreadsheets is the same. 10 |
11 |12 | For this lesson, if you don't have a spreadsheet program already, 13 | you can use [LibreOffice](https://www.libreoffice.org). 14 | It is a free, open source spreadsheet program. 15 |
16 |18 |
32 |
LibreOffice\_X.X.X\_MacOS\_x86-64 (whichever version of LibreOffice you have selected) should have been downloaded.
42 | Double click on this file, and LibreOffice will be installed.47 |
64 | Bash is a commonly-used shell that gives you the power to do simple tasks 65 | more quickly. Please find setup instructions in 66 | the lesson. 67 |
68 |73 | OpenRefine is a tool to clean up and organize messy data. Please find instructions to 74 | install it and the data used in the lesson in the 75 | lesson. 76 |
77 |83 | Git is a version control system that lets you track who made changes 84 | to what when and has options for easily updating a shared or public 85 | version of your code 86 | on https://github.com. 87 |
88 |89 | Follow the instructions on 90 | the lesson to 91 | install Git on your system. 92 |
93 |94 | You will need an account at github.com 95 | for parts of the Git lesson. Basic GitHub accounts are free. We encourage 96 | you to create a GitHub account if you don't have one already. 97 | Please consider what personal information you'd like to reveal. For 98 | example, you may want to review these 99 | instructions 100 | for keeping your email address private provided at GitHub. You will 101 | need a 102 | supported 103 | web browser. 104 |
105 |