# Atelier Software Carpentry Workshop

24-25 octobre, 2016, Université de Montréal, Montréal (QC)

Informations: Eva Delmas, Mathilde Besson,Timothée Poisot,Zofia Taranu

Où/ where:

Salle C-3061 (salle multi-fonctionnelle), Pavillon Lionel Groulx, métro Université de Montréal, 3150, rue Jean-Brillant, Montréal

Salles C2081-2083 pour le lunch

Repas/ meals:

Le petit déjeuner (8h30-9h), pause café matinale (10h15), lunch (12h15) et pausé café dans l'après midi (vers 15h) seront fournis par le CSBQ durant les deux jours.

Breakfast (8:30-9:00am), morning coffee break (10:15am), lunch (12:15pm), and afternoon coffee break (3:00pm) will be provided by the QCBS over the 2 days.

Pour y participer/To participate:

Tous les participants doivent cependant débourser des frais pour l'inscription (15\$pour membres CSBQ et 50\$ pour les non-members).

However, all participants must pay a registration fee to cover for some of those costs (15\$for QCBS members, 50\$ for non-members).

Instructeurs - instructors : Timothée Poisot et Isabelle Laforest Lapointe

Aides- helpers : Eva Delmas, Mathilde Besson, Steve Vissault et Zofia Taranu

### Jour - Day 1: The Unix Shell + Automation and Make Lessons

 9:00 9:05 Introducing the Shell What is a command shell and why would I use one? Navigating Files and Directories How can I move around on my computer? How can I see what files and directories I have? How can I specify the location of a file or directory on my computer? Working With Files and Directories How can I create, copy, and delete files and directories? How can I edit files? Pipes and Filters How can I combine existing commands to do new things? Loops How can I perform the same actions on many different files? Shell Scripts How can I save and re-use commands? Finding Things How can I find files? How can I find things in files? Pause Café Introduction to Make How can I make my results easier to reproduce? Makefiles How do I write a simple Makefile? Automatic Variables How can I abbreviate the rules in my Makefiles? Lunch Dependencies on Data and Code How can I write a Makefile to update things when my scripts have changed rather than my input files? Pattern Rules How can I define rules to operate on similar files? Variables How else can I eliminate redundancy in my Makefiles? Functions How else can I eliminate redundancy in my Makefiles? Self-Documenting Makefiles How should I document a Makefile? Conclusion What are the advantages and disadvantages of using tools like Make? Finish

### Jour - Day 2: Version Control with Git + Databases and SQL

 9:00 9:05 Automated Version Control What is version control and why should I use it? Setting Up Git How do I get set up to use Git? Creating a Repository Where does Git store information? Tracking Changes How do I record changes in Git? How do I check the status of my version control repository? How do I record notes about what changes I made and why? Exploring History How can I identify old versions of files? How do I review my changes? How can I recover old versions of files? Ignoring Things How can I tell Git to ignore files I don’t want to track? Remotes in GitHub How do I share my changes with others on the web? Pause Café Collaborating How can I use version control to collaborate with other people? Conflicts What do I do when my changes conflict with someone else’s? Open Science How can version control help me make my work more open? Licensing What licensing information should I include with my work? Citation How can I make my work easier to cite? Hosting Where should I host my version control repositories? Using Git from RStudio How can I use Git with RStudio? Lunch Selecting Data How can I get data from a database? Sorting and Removing Duplicates How can I sort a query’s results? How can I remove duplicate values from a query’s results? Filtering How can I select subsets of data? Calculating New Values How can I calculate new values on the fly? Missing Data How do databases represent missing information? What special handling does missing information require? Aggregation How can I calculate sums, averages, and other summary values? Combining Data How can I combine data from multiple tables? Data Hygiene How should I format data in a database, and why? Creating and Modifying Data How can I create, modify, and delete tables and data? Programming with Databases - R How can I access databases from programs written in R? Finish