├── code
└── .gitkeep
├── data
└── .gitkeep
├── fig
├── .gitkeep
├── completed-page.png
├── using-github-import.png
├── edit-index-file-menu-bar.png
├── select-gh-pages-branch.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
├── workshop_calendar.html
├── aio-script.md
├── workshop_footer.html
├── all_keypoints.html
├── dc
│ ├── intro.html
│ ├── who.html
│ ├── schedule.html
│ └── setup.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
├── carpentries.html
├── life_cycle.html
├── javascript.html
└── manual_episode_order.html
├── _layouts
├── page.html
├── reference.html
├── lesson.html
├── break.html
├── episode.html
├── base.html
└── workshop.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-144x144.png
│ │ ├── mstile-150x150.png
│ │ ├── mstile-310x150.png
│ │ ├── mstile-310x310.png
│ │ ├── mstile-70x70.png
│ │ ├── favicon-196x196.png
│ │ ├── apple-touch-icon-114x114.png
│ │ ├── apple-touch-icon-120x120.png
│ │ ├── apple-touch-icon-144x144.png
│ │ ├── apple-touch-icon-152x152.png
│ │ ├── apple-touch-icon-57x57.png
│ │ ├── apple-touch-icon-60x60.png
│ │ ├── apple-touch-icon-72x72.png
│ │ └── apple-touch-icon-76x76.png
│ ├── dc
│ │ ├── favicon.ico
│ │ ├── favicon-128.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon-96x96.png
│ │ ├── mstile-144x144.png
│ │ ├── mstile-150x150.png
│ │ ├── mstile-310x150.png
│ │ ├── mstile-310x310.png
│ │ ├── mstile-70x70.png
│ │ ├── favicon-196x196.png
│ │ ├── apple-touch-icon-114x114.png
│ │ ├── apple-touch-icon-120x120.png
│ │ ├── apple-touch-icon-144x144.png
│ │ ├── apple-touch-icon-152x152.png
│ │ ├── apple-touch-icon-57x57.png
│ │ ├── apple-touch-icon-60x60.png
│ │ ├── apple-touch-icon-72x72.png
│ │ └── apple-touch-icon-76x76.png
│ ├── lc
│ │ ├── favicon.ico
│ │ ├── favicon-128.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon-96x96.png
│ │ ├── mstile-144x144.png
│ │ ├── mstile-150x150.png
│ │ ├── mstile-310x150.png
│ │ ├── mstile-310x310.png
│ │ ├── mstile-70x70.png
│ │ ├── favicon-196x196.png
│ │ ├── apple-touch-icon-114x114.png
│ │ ├── apple-touch-icon-120x120.png
│ │ ├── apple-touch-icon-144x144.png
│ │ ├── apple-touch-icon-152x152.png
│ │ ├── apple-touch-icon-57x57.png
│ │ ├── apple-touch-icon-60x60.png
│ │ ├── apple-touch-icon-72x72.png
│ │ └── apple-touch-icon-76x76.png
│ └── swc
│ │ ├── 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
├── 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
├── 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 |
--------------------------------------------------------------------------------
/bin/boilerplate/_extras/discuss.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Discussion
3 | ---
4 | FIXME
5 |
6 | {% include links.md %}
7 |
--------------------------------------------------------------------------------
/fig/completed-page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/2024-02-12-edinburgh-online/gh-pages/fig/completed-page.png
--------------------------------------------------------------------------------
/_includes/github-ribbon.html:
--------------------------------------------------------------------------------
1 | Find us on GitHub
2 |
--------------------------------------------------------------------------------
/bin/boilerplate/_extras/guide.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Instructor Notes"
3 | ---
4 | FIXME
5 |
6 | {% include links.md %}
7 |
--------------------------------------------------------------------------------
/_extras/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | title: About
4 | permalink: /about/
5 | ---
6 | {% include carpentries.html %}
7 |
--------------------------------------------------------------------------------
/bin/boilerplate/_extras/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: About
3 | ---
4 | {% include carpentries.html %}
5 | {% include links.md %}
6 |
--------------------------------------------------------------------------------
/fig/using-github-import.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EPCCed/2024-02-12-edinburgh-online/gh-pages/fig/using-github-import.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 | -------------------------------------------------------------------------------- /.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 | max_line_length = 100 # Please keep this in sync with bin/lesson_check.py! 12 | trim_trailing_whitespace = false # 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 | 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 |
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 |17 | This workshop is provided by EPCC and organised in collaboration with ARCHER2. ARCHER2, the UK's national supercomputing service, offers training in software development and high-performance computing to scientists and researchers across the UK. As part of our training service, we are running a Data Carpentry workshop. 18 |
-------------------------------------------------------------------------------- /bin/lesson_initialize.py: -------------------------------------------------------------------------------- 1 | """Initialize a newly-created repository.""" 2 | 3 | 4 | import sys 5 | import os 6 | import shutil 7 | 8 | 9 | BOILERPLATE = ( 10 | 'AUTHORS', 11 | 'CITATION', 12 | 'CONTRIBUTING.md', 13 | 'README.md', 14 | '_config.yml', 15 | os.path.join('_episodes', '01-introduction.md'), 16 | os.path.join('_extras', 'about.md'), 17 | os.path.join('_extras', 'discuss.md'), 18 | os.path.join('_extras', 'figures.md'), 19 | os.path.join('_extras', 'guide.md'), 20 | 'index.md', 21 | 'reference.md', 22 | 'setup.md', 23 | ) 24 | 25 | 26 | def main(): 27 | """Check for collisions, then create.""" 28 | 29 | # Check. 30 | errors = False 31 | for path in BOILERPLATE: 32 | if os.path.exists(path): 33 | print('Warning: {0} already exists.'.format(path), file=sys.stderr) 34 | errors = True 35 | if errors: 36 | print('**Exiting without creating files.**', file=sys.stderr) 37 | sys.exit(1) 38 | 39 | # Create. 40 | for path in BOILERPLATE: 41 | shutil.copyfile( 42 | os.path.join('bin', 'boilerplate', path), 43 | path 44 | ) 45 | 46 | 47 | if __name__ == '__main__': 48 | main() 49 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | Aron Ahmadia 2 | Phillip Alderman 3 | James Allen 4 | Piotr Banaszkiewicz 5 | Pauline Barmby 6 | Radovan Bast 7 | John Blischak 8 | Olga Botvinnik 9 | Andy Boughton 10 | Erik M. Bray 11 | Amy Brown 12 | C. Titus Brown 13 | Greg Caporaso 14 | Sarah Clayton 15 | Matt Davis 16 | Neal Davis 17 | Jonah Duckles 18 | Marianna Foos 19 | Yashasvi Girdhar 20 | Ivan Gonzalez 21 | John Gosset 22 | Alistair Grant 23 | Thomas Guignard 24 | Konrad Hinsen 25 | Xavier Ho 26 | Damien Irving 27 | Mike Jackson 28 | Ben Jolly 29 | Jan T. Kim 30 | W. Trevor King 31 | David LeBauer 32 | Joona Lehtomäki 33 | Kunal Marwaha 34 | Sheldon McKay 35 | Lauren Michael 36 | François Michonneau 37 | Lex Nederbragt 38 | Aleksandra Nenadic 39 | Jeramia Ory 40 | Fernando Perez 41 | Leighton Pritchard 42 | Andrey Prokopenko 43 | Scott Ritchie 44 | Maneesha Sane 45 | Raniere Silva 46 | Arfon Smith 47 | Ashwin Srinath 48 | Sarah Stevens 49 | Julia Stewart Lowndes 50 | Tracy Teal 51 | Stefan Topfstedt 52 | Olav Vahtras 53 | Philipp Von Bieberstein 54 | Andrew Walker 55 | Ben Waugh 56 | Lukas Weber 57 | Ethan White 58 | Jason Williams 59 | Carol Willing 60 | Greg Wilson 61 | Tom Wright 62 | Andrea Zonca 63 | Alex Thompson 64 | Jonathan Cooper 65 | Marcel Stimberg 66 | Mark A. Matienzo 67 | Steve Moss 68 | -------------------------------------------------------------------------------- /bin/generate_md_episodes.R: -------------------------------------------------------------------------------- 1 | generate_md_episodes <- function() { 2 | 3 | # avoid ansi color characters from being printed in the output 4 | op <- options() 5 | on.exit(options(op), add = TRUE) 6 | options(crayon.enabled = FALSE) 7 | ## get the Rmd file to process from the command line, and generate the path 8 | ## for their respective outputs 9 | args <- commandArgs(trailingOnly = TRUE) 10 | if (!identical(length(args), 2L)) { 11 | stop("input and output file must be passed to the script") 12 | } 13 | 14 | src_rmd <- args[1] 15 | dest_md <- args[2] 16 | 17 | ## knit the Rmd into markdown 18 | knitr::knit(src_rmd, output = dest_md) 19 | 20 | # Read the generated md files and add comments advising not to edit them 21 | add_no_edit_comment <- function(y) { 22 | con <- file(y) 23 | mdfile <- readLines(con) 24 | if (mdfile[1] != "---") 25 | stop("Input file does not have a valid header") 26 | mdfile <- append( 27 | mdfile, 28 | "# Please do not edit this file directly; it is auto generated.", 29 | after = 1 30 | ) 31 | mdfile <- append( 32 | mdfile, 33 | paste("# Instead, please edit", basename(y), "in _episodes_rmd/"), 34 | after = 2 35 | ) 36 | writeLines(mdfile, con) 37 | close(con) 38 | return(paste("Warning added to YAML header of", y)) 39 | } 40 | 41 | vapply(dest_md, add_no_edit_comment, character(1)) 42 | } 43 | 44 | generate_md_episodes() 45 | -------------------------------------------------------------------------------- /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 respect all people who contribute through reporting issues, 7 | posting feature requests, 8 | updating documentation, 9 | submitting pull requests or patches, 10 | and other activities. 11 | 12 | We are committed to making participation in this project a harassment-free experience for everyone, 13 | regardless of level of experience, 14 | gender, 15 | gender identity and expression, 16 | sexual orientation, 17 | disability, 18 | personal appearance, 19 | body size, 20 | race, 21 | ethnicity, 22 | age, 23 | or religion. 24 | 25 | Examples of unacceptable behavior by participants include the use of sexual language or imagery, 26 | derogatory comments or personal attacks, 27 | trolling, 28 | public or private harassment, 29 | insults, 30 | or other unprofessional conduct. 31 | 32 | Project maintainers have the right and responsibility to remove, edit, or reject 33 | comments, commits, code, wiki edits, issues, and other contributions 34 | that are not aligned to our [Code of Conduct][coc]. 35 | Project maintainers who do not follow the Code of Conduct may be removed from the project team. 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior 38 | may be reported by following our [reporting guidelines][coc-reporting]. 39 | 40 | 41 | - [Software and Data Carpentry Code of Conduct][coc] 42 | - [Code of Conduct Reporting Guide][coc-reporting] 43 | 44 | {% include links.md %} 45 | -------------------------------------------------------------------------------- /_includes/workshop_ad.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | Advertising box at the top of a workshop website home page. 3 | {% endcomment %} 4 | 5 | {% assign begin_address = page.address | slice: 0, 4 | downcase %} 6 | {% if page.address == "online" %} 7 | {% assign online = "true_private" %} 8 | {% elsif begin_address contains "http" %} 9 | {% assign online = "true_public" %} 10 | {% else %} 11 | {% assign online = "false" %} 12 | {% endif %} 13 | 14 |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 Starting | Pre-workshop survey |
| 09:00 | Jargon Busting, A Computational Approach, Introduction to Working with Data (Regular Expressions) |
| 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 |
| 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 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 |
4 | Bash is a commonly-used shell that gives you the power to do simple tasks 5 | more quickly. Please find setup instructions in 6 | the lesson. 7 |
8 |13 | OpenRefine is a tool to clean up and organize messy data. Please find instructions to 14 | install it and the data used in the lesson in the 15 | lesson. 16 |
17 |23 | Git is a version control system that lets you track who made changes 24 | to what when and has options for easily updating a shared or public 25 | version of your code 26 | on https://github.com. 27 |
28 |29 | Follow the instructions on 30 | the lesson to 31 | install Git on your system. 32 |
33 |34 | You will need an account at github.com 35 | for parts of the Git lesson. Basic GitHub accounts are free. We encourage 36 | you to create a GitHub account if you don't have one already. 37 | Please consider what personal information you'd like to reveal. For 38 | example, you may want to review these 39 | instructions 40 | for keeping your email address private provided at GitHub. You will 41 | need a 42 | supported 43 | web browser. 44 |
45 |9 | We will use Blackboard Collaborate. An up-to-date web browser is needed. 10 | Further help can be found on the 11 | 12 | Collaborate Ultra Help for Participants page. 13 |
14 | 15 | 16 |19 | Like other Carpentries workshops, 20 | you will be learning by "coding along" with the Instructors. 21 | To do this, you will need to have both the window for the tool 22 | you will be learning about (a terminal, RStudio, your web browser, etc..) 23 | and the window for the Zoom video conference client open. 24 | In order to see both at once, 25 | we recommend using one of the following set up options: 26 |
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/dc/schedule.html: -------------------------------------------------------------------------------- 1 || 09:30 | Pre-workshop Survey and Setup |
| 10:00 | Data Organization in Spreadsheets |
| 11:00 | Morning break |
| 11:30 | OpenRefine for Data Cleaning |
| 13:00 | END |
| 09:30 | Introduction to R |
| 11:00 | Morning break |
| 11:30 | Introduction to R (Continued) |
| 13:00 | END |
| 09:30 | Continuation of R: Data analysis and Visualization |
| 11:00 | Morning break |
| 11:30 | Continuation of R: Data analysis and Visualization (Continued) |
| 13:00 | END |
| 09:30 | Data Management with SQL |
| 11:00 | Morning break |
| 11:30 | ARCHER2 course feedback and Post-workshop Survey |
| 11:45 | Data Management with SQL (Continued) |
| 13:00 | END |
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 | For macOS, install Git for Mac
44 | by downloading and running the most recent "mavericks" installer from
45 | this list.
46 | Because this installer is not signed by the developer, you may have to
47 | right click (control click) on the .pkg file, click Open, and click
48 | Open on the pop up window.
49 | After installing Git, there will not be anything in your /Applications folder,
50 | as Git is a command line program.
51 | For older versions of OS X (10.5-10.8) use the
52 | most recent available installer labelled "snow-leopard"
53 | available here.
54 |
64 | If Git is not already available on your machine you can try to
65 | install it via your distro's package manager. For Debian/Ubuntu run
66 | sudo apt-get install git and for Fedora run
67 | sudo dnf install git.
68 |
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.