--- /dev/null
+<p>
+ <a href="{{site.dc_site}}">Data Carpentry</a>
+ aims to help researchers get their work done
+ in less time and with less pain
+ by teaching them basic research computing skills.
+ This hands-on workshop will cover basic concepts and tools,
+ including program design, version control, data management,
+ and task automation.
+ Participants will be encouraged to help one another
+ and to apply what they have learned to their own research problems.
+</p>
+<p align="center">
+ <em>
+ For more information on what we teach and why,
+ please see our paper
+ "<a href="http://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745">Best Practices for Scientific Computing</a>".
+ </em>
+</p>
--- /dev/null
+<div class="row">
+ <div class="col-md-6">
+ <h3>Day 1</h3>
+ <table class="table table-striped">
+ <tr> <td>09:00</td> <td>Automating tasks with the Unix shell</td> </tr>
+ <tr> <td>10:30</td> <td>Coffee</td> </tr>
+ <tr> <td>12:00</td> <td>Lunch break</td> </tr>
+ <tr> <td>13:00</td> <td>Building programs with Python</td> </tr>
+ <tr> <td>14:30</td> <td>Coffee</td> </tr>
+ <tr> <td>16:00</td> <td>Wrap-up</td> </tr>
+ </table>
+ </div>
+ <div class="col-md-6">
+ <h3>Day 2</h3>
+ <table class="table table-striped">
+ <tr> <td>09:00</td> <td>Version control with Git</td> </tr>
+ <tr> <td>10:30</td> <td>Coffee</td> </tr>
+ <tr> <td>12:00</td> <td>Lunch break</td> </tr>
+ <tr> <td>13:00</td> <td>Managing data with SQL</td> </tr>
+ <tr> <td>14:30</td> <td>Coffee</td> </tr>
+ <tr> <td>16:00</td> <td>Wrap-up</td> </tr>
+ </table>
+ </div>
+</div>
--- /dev/null
+<div class="row">
+ <div class="col-md-6">
+ <h3 id="syllabus-shell">The Unix Shell</h3>
+ <ul>
+ <li>Files and directories</li>
+ <li>History and tab completion</li>
+ <li>Pipes and redirection</li>
+ <li>Looping over files</li>
+ <li>Creating and running shell scripts</li>
+ <li>Finding things</li>
+ <li><a href="{{site.swc_pages}}/shell-novice/reference/">Reference...</a></li>
+ </ul>
+ </div>
+ <div class="col-md-6">
+ <h3 id="syllabus-python">Programming in Python</h3>
+ <ul>
+ <li>Using libraries</li>
+ <li>Working with arrays</li>
+ <li>Reading and plotting data</li>
+ <li>Creating and using functions</li>
+ <li>Loops and conditionals</li>
+ <li>Defensive programming</li>
+ <li>Using Python from the command line</li>
+ <li><a href="{{site.swc_pages}}/python-novice-inflammation/reference/">Reference...</a></li>
+ </ul>
+ </div>
+ <!--
+ <div class="col-md-6">
+ <h3 id="syllabus-r">Programming in R</h3>
+ <ul>
+ <li>Working with vectors and data frames</li>
+ <li>Reading and plotting data</li>
+ <li>Creating and using functions</li>
+ <li>Loops and conditionals</li>
+ <li>Using R from the command line</li>
+ <li><a href="{{site.swc_pages}}/r-novice-inflammation/reference/">Reference...</a></li>
+ </ul>
+ </div>
+ -->
+ <!--
+ <div class="col-md-6">
+ <h3 id="syllabus-matlab">Programming in MATLAB</h3>
+ <ul>
+ <li>Working with arrays</li>
+ <li>Reading and plotting data</li>
+ <li>Creating and using functions</li>
+ <li>Loops and conditionals</li>
+ <li>Defensive programming</li>
+ <li><a href="{{site.swc_pages}}/matlab-novice-inflammation/reference/">Reference...</a></li>
+ </ul>
+ </div>
+ -->
+</div>
+
+<div class="row">
+ <div class="col-md-6">
+ <h3 id="syllabus-git">Version Control with Git</h3>
+ <ul>
+ <li>Creating a repository</li>
+ <li>Recording changes to files: <code>add</code>, <code>commit</code>, ...</li>
+ <li>Viewing changes: <code>status</code>, <code>diff</code>, ...</li>
+ <li>Ignoring files</li>
+ <li>Working on the web: <code>clone</code>, <code>pull</code>, <code>push</code>, ...</li>
+ <li>Resolving conflicts</li>
+ <li>Open licenses</li>
+ <li>Where to host work, and why</li>
+ <li><a href="{{site.swc_pages}}/git-novice/reference/">Reference...</a></li>
+ </ul>
+ </div>
+ <!--
+ <div class="col-md-6">
+ <h3 id="syllabus-sql">Managing Data with SQL</h3>
+ <ul>
+ <li>Reading and sorting data</li>
+ <li>Filtering with <code>where</code></li>
+ <li>Calculating new values on the fly</li>
+ <li>Handling missing values</li>
+ <li>Combining values using aggregation</li>
+ <li>Combining information from multiple tables using <code>join</code></li>
+ <li>Creating, modifying, and deleting data</li>
+ <li>Programming with databases</li>
+ <li><a href="{{site.swc_pages}}/sql-novice-survey/reference/">Reference...</a></li>
+ </ul>
+ </div>
+ -->
+ <div class="col-md-6">
+ <h3 id="syllabus-r">Open Refine</h3>
+ <ul>
+ <li>Introduction to OpenRefine</li>
+ <li>Importing data</li>
+ <li>Basic functions</li>
+ <li>Advanced Functions</li>
+ <li><a href="{{site.lc_pages}}library-openrefine/reference">Reference...</a></li>
+ </ul>
+ </div>
+</div>
--- /dev/null
+<p id="who">
+ <strong>Who:</strong>
+ The course is aimed at graduate students and other researchers.
+ <strong>
+ You don't need to have any previous knowledge of the tools
+ that will be presented at the workshop.
+ </strong>
+</p>
--- /dev/null
+<p>
+ <a href="{{site.lc_site}}">Library Carpentry</a>
+ is made by librarians, for librarians to help you:
+</p>
+<ul>
+ <li>automate repetitive, boring, error-prone tasks</li>
+ <li>create, maintain and analyse sustainable and reusable data</li>
+ <li>work effectively with IT and systems colleagues</li>
+ <li>better understand the use of software in research</li>
+ <li>and much more...</li>
+</ul>
+<p align="center">
+ <em>
+ Library Carpentry introduces you to the fundamentals of computing
+ and provides you with a platform for further self-directed learning.
+ For more information on what we teach and why, please see our paper
+ "<a href="http://doi.org/10.18352/lq.10176">Library Carpentry: software skills training for library professionals</a>".
+ </em>
+</p>
--- /dev/null
+<div class="row">
+ <div class="col-md-6">
+ <h3>Day 1</h3>
+ <table class="table table-striped">
+ <tr> <td>09:00</td> <td>Data Intro for Librarians</td> </tr>
+ <tr> <td>10:30</td> <td>Coffee</td> </tr>
+ <tr> <td>12:00</td> <td>Lunch break</td> </tr>
+ <tr> <td>13:00</td> <td>Shell Lessons for Libraries</td> </tr>
+ <tr> <td>14:30</td> <td>Coffee</td> </tr>
+ <tr> <td>16:00</td> <td>Wrap-up</td> </tr>
+ </table>
+ </div>
+ <div class="col-md-6">
+ <h3>Day 2</h3>
+ <table class="table table-striped">
+ <tr> <td>09:00</td> <td>Git Intro for Librarians</td> </tr>
+ <tr> <td>10:30</td> <td>Coffee</td> </tr>
+ <tr> <td>12:00</td> <td>Lunch break</td> </tr>
+ <tr> <td>13:00</td> <td>OpenRefine for Librarians</td> </tr>
+ <tr> <td>14:30</td> <td>Coffee</td> </tr>
+ <tr> <td>16:00</td> <td>Wrap-up</td> </tr>
+ </table>
+ </div>
+</div>
--- /dev/null
+<div class="row">
+ <div class="col-md-6">
+ <h3 id="syllabus-python">Data Intro</h3>
+ <ul>
+ <li>Intro to data</li>
+ <li>Jargon busting</li>
+ <li>Keyboard shortcuts</li>
+ <li>Plain text formats</li>
+ <li>Naming files</li>
+ <li>Regular expressions</li>
+ <li><a href="http://data-lessons.github.io/library-data-intro/reference/">Reference...</a></li>
+ </ul>
+ </div>
+ <div class="col-md-6">
+ <h3 id="syllabus-shell">The Unix Shell</h3>
+ <ul>
+ <li>Files and directories</li>
+ <li>History and tab completion</li>
+ <li>Counting and sorting contents in files</li>
+ <li>Pipes and redirection</li>
+ <li>Mining or searching in files</li>
+ <li><a href="http://data-lessons.github.io/library-shell/reference/">Reference...</a></li>
+ </ul>
+ </div>
+
+</div>
+
+<div class="row">
+ <div class="col-md-6">
+ <h3 id="syllabus-git">Version Control with Git</h3>
+ <ul>
+ <li>Creating a repository</li>
+ <li>Configuring git</li>
+ <li>Recording changes to files: <code>add</code>, <code>commit</code>, ...</li>
+ <li>Viewing state changes with <code>status</code></li>
+ <li>Working on the web: <code>clone</code>, <code>pull</code>, <code>push</code>, ...</li>
+ <li>Where to host work, and why</li>
+ <li><a href="http://data-lessons.github.io/library-git/reference">Reference...</a></li>
+ </ul>
+ </div>
+ <div class="col-md-6">
+ <div class="col-md-6">
+ <h3 id="syllabus-r">Open Refine</h3>
+ <ul>
+ <li>Introduction to OpenRefine</li>
+ <li>Importing data</li>
+ <li>Basic functions</li>
+ <li>Advanced Functions</li>
+ <li><a href="http://data-lessons.github.io/library-openrefine/reference">Reference...</a></li>
+ </ul>
+ </div>
+ </div>
+</div>
+<!--div class="row">
+ <div class="col-md-6">
+ <h3 id="syllabus-sql">SQL Intro</h3>
+ <ul>
+ <li>What is SQL?</li>
+ <li>Intro to SQLite Manager</li>
+ <li>Importing a database</li>
+ <li>Reading and sorting data</li>
+ <li>Filtering with <code>where</code></li>
+ <li>Combining values using aggregation</li>
+ <li>Combining information from multiple tables using <code>join</code></li>
+ <li><a href="http://data-lessons.github.io//library-sql/reference/">Reference...</a></li>
+ </ul>
+ </div>
+</div>
+-->
--- /dev/null
+<p id="who">
+ <strong>Who:</strong>
+ The course is for librarians, archivists, and other information workers.
+ <strong>
+ You don't need to have any previous knowledge of the tools that
+ will be presented at the workshop.
+ </strong>
+</p>
</a>
{% elsif page.carpentry == "lc" %}
<a href="{{ site.lc_site }}" class="pull-left">
- <img class="navbar-logo" src="{{ page.root }}/assets/img/lc-icon-black.svg" alt="Library Carpentry logo" />
- </a>
- {% elsif site.carpentry == "swc" %}
- <a href="{{ site.swc_site }}" class="pull-left">
- <img class="navbar-logo" src="{{ page.root }}/assets/img/swc-icon-blue.svg" alt="Software Carpentry logo" />
- </a>
- {% elsif site.carpentry == "dc" %}
- <a href="{{ site.dc_site }}" class="pull-left">
- <img class="navbar-logo" src="{{ page.root }}/assets/img/dc-icon-black.svg" alt="Data Carpentry logo" />
- </a>
- {% elsif site.carpentry == "lc" %}
- <a href="{{ site.lc_site }}" class="pull-left">
- <img class="navbar-logo" src="{{ page.root }}/assets/img/lc-icon-black.svg" alt="Library Carpentry logo" />
+ <img class="navbar-logo" src="{{ page.root }}/assets/img/lc-icon-black.png" alt="Library Carpentry logo" />
</a>
{% endif %}
--- /dev/null
+<p>
+ <a href="{{site.swc_site}}">Software Carpentry</a>
+ aims to help researchers get their work done
+ in less time and with less pain
+ by teaching them basic research computing skills.
+ This hands-on workshop will cover basic concepts and tools,
+ including program design, version control, data management,
+ and task automation.
+ Participants will be encouraged to help one another
+ and to apply what they have learned to their own research problems.
+</p>
+<p align="center">
+ <em>
+ For more information on what we teach and why,
+ please see our paper
+ "<a href="http://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745">Best Practices for Scientific Computing</a>".
+ </em>
+</p>
--- /dev/null
+<div class="row">
+ <div class="col-md-6">
+ <h3>Day 1</h3>
+ <table class="table table-striped">
+ <tr> <td>09:00</td> <td>Automating tasks with the Unix shell</td> </tr>
+ <tr> <td>10:30</td> <td>Coffee</td> </tr>
+ <tr> <td>12:00</td> <td>Lunch break</td> </tr>
+ <tr> <td>13:00</td> <td>Building programs with Python</td> </tr>
+ <tr> <td>14:30</td> <td>Coffee</td> </tr>
+ <tr> <td>16:00</td> <td>Wrap-up</td> </tr>
+ </table>
+ </div>
+ <div class="col-md-6">
+ <h3>Day 2</h3>
+ <table class="table table-striped">
+ <tr> <td>09:00</td> <td>Version control with Git</td> </tr>
+ <tr> <td>10:30</td> <td>Coffee</td> </tr>
+ <tr> <td>12:00</td> <td>Lunch break</td> </tr>
+ <tr> <td>13:00</td> <td>Managing data with SQL</td> </tr>
+ <tr> <td>14:30</td> <td>Coffee</td> </tr>
+ <tr> <td>16:00</td> <td>Wrap-up</td> </tr>
+ </table>
+ </div>
+</div>
--- /dev/null
+<div class="row">
+ <div class="col-md-6">
+ <h3 id="syllabus-shell">The Unix Shell</h3>
+ <ul>
+ <li>Files and directories</li>
+ <li>History and tab completion</li>
+ <li>Pipes and redirection</li>
+ <li>Looping over files</li>
+ <li>Creating and running shell scripts</li>
+ <li>Finding things</li>
+ <li><a href="{{site.swc_pages}}/shell-novice/reference/">Reference...</a></li>
+ </ul>
+ </div>
+ <div class="col-md-6">
+ <h3 id="syllabus-python">Programming in Python</h3>
+ <ul>
+ <li>Using libraries</li>
+ <li>Working with arrays</li>
+ <li>Reading and plotting data</li>
+ <li>Creating and using functions</li>
+ <li>Loops and conditionals</li>
+ <li>Defensive programming</li>
+ <li>Using Python from the command line</li>
+ <li><a href="{{site.swc_pages}}/python-novice-inflammation/reference/">Reference...</a></li>
+ </ul>
+ </div>
+ <!--
+ <div class="col-md-6">
+ <h3 id="syllabus-r">Programming in R</h3>
+ <ul>
+ <li>Working with vectors and data frames</li>
+ <li>Reading and plotting data</li>
+ <li>Creating and using functions</li>
+ <li>Loops and conditionals</li>
+ <li>Using R from the command line</li>
+ <li><a href="{{site.swc_pages}}/r-novice-inflammation/reference/">Reference...</a></li>
+ </ul>
+ </div>
+ -->
+ <!--
+ <div class="col-md-6">
+ <h3 id="syllabus-matlab">Programming in MATLAB</h3>
+ <ul>
+ <li>Working with arrays</li>
+ <li>Reading and plotting data</li>
+ <li>Creating and using functions</li>
+ <li>Loops and conditionals</li>
+ <li>Defensive programming</li>
+ <li><a href="{{site.swc_pages}}/matlab-novice-inflammation/reference/">Reference...</a></li>
+ </ul>
+ </div>
+ -->
+</div>
+
+<div class="row">
+ <div class="col-md-6">
+ <h3 id="syllabus-git">Version Control with Git</h3>
+ <ul>
+ <li>Creating a repository</li>
+ <li>Recording changes to files: <code>add</code>, <code>commit</code>, ...</li>
+ <li>Viewing changes: <code>status</code>, <code>diff</code>, ...</li>
+ <li>Ignoring files</li>
+ <li>Working on the web: <code>clone</code>, <code>pull</code>, <code>push</code>, ...</li>
+ <li>Resolving conflicts</li>
+ <li>Open licenses</li>
+ <li>Where to host work, and why</li>
+ <li><a href="{{site.swc_pages}}/git-novice/reference/">Reference...</a></li>
+ </ul>
+ </div>
+ <!--
+ <div class="col-md-6">
+ <h3 id="syllabus-sql">Managing Data with SQL</h3>
+ <ul>
+ <li>Reading and sorting data</li>
+ <li>Filtering with <code>where</code></li>
+ <li>Calculating new values on the fly</li>
+ <li>Handling missing values</li>
+ <li>Combining values using aggregation</li>
+ <li>Combining information from multiple tables using <code>join</code></li>
+ <li>Creating, modifying, and deleting data</li>
+ <li>Programming with databases</li>
+ <li><a href="{{site.swc_pages}}/sql-novice-survey/reference/">Reference...</a></li>
+ </ul>
+ </div>
+ -->
+ <div class="col-md-6">
+ <h3 id="syllabus-r">Open Refine</h3>
+ <ul>
+ <li>Introduction to OpenRefine</li>
+ <li>Importing data</li>
+ <li>Basic functions</li>
+ <li>Advanced Functions</li>
+ <li><a href="{{site.lc_pages}}library-openrefine/reference">Reference...</a></li>
+ </ul>
+ </div>
+</div>
--- /dev/null
+<p id="who">
+ <strong>Who:</strong>
+ The course is aimed at graduate students and other researchers.
+ <strong>
+ You don't need to have any previous knowledge of the tools
+ that will be presented at the workshop.
+ </strong>
+</p>
{% endcomment %}
<footer>
<div class="row">
- <div class="col-md-4" align="left">
- <h4><a href="{{ site.swc_site }}">Software Carpentry</a></h4>
+ <div class="col-md-6" align="left">
+ <h4>
+ Copyright © 2016
+ {% if site.carpentry == "swc" %}
+ <a href="{{ site.swc_site }}">Software Carpentry Foundation</a>
+ {% elsif site.carpentry == "dc" %}
+ <a href="{{ site.dc_site }}">Data Carpentry</a>
+ {% elsif site.carpentry == "lc" %}
+ <a href="{{ site.lc_site }}">Library Carpentry</a>
+ {% endif %}
+ </h4>
</div>
- <div class="col-md-4" align="right">
- <h4><a href="{{ site.dc_site }}">Data Carpentry</a></h4>
+ <div class="col-md-6" align="right">
+ <h4>
+ <a href="mailto:{{ site.email }}">Contact</a>
+ </h4>
</div>
<div class="col-md-4" align="right">
<h4><a href="{{ site.lc_site }}">Library Carpentry</a></h4>
if (!require("stringr"))
stop("The package stringr is required for generating the lessons.")
- if (require("checkpoint")) {
+ if (require("checkpoint") && packageVersion("checkpoint") >= '0.4.0') {
required_pkgs <-
- checkpoint:::projectScanPackages(project = "_episodes_rmd",
- verbose=FALSE, use.knitr = TRUE)$pkgs
+ checkpoint:::scanForPackages(project = "_episodes_rmd",
+ verbose=FALSE, use.knitr = TRUE)$pkgs
} else {
- stop("The checkpoint package is required to build the lessons.")
+ stop("The checkpoint package (>= 0.4.0) is required to build the lessons.")
}
missing_pkgs <- required_pkgs[!(required_pkgs %in% rownames(installed.packages()))]
install.packages(missing_pkgs)
}
- ## find all the Rmd files, and generates the paths for their respective outputs
+ ## find all the Rmd files, and generate the paths for their respective outputs
src_rmd <- list.files(pattern = "??-*.Rmd$", path = "_episodes_rmd", full.names = TRUE)
dest_md <- file.path("_episodes", gsub("Rmd$", "md", basename(src_rmd)))