Free

Software Development for Research (Software Carpentry) [CQ - U. McGill]

Event Information

Share this event

Date and Time

Location

Location

McGill University

Bell Room (Room 103), Rutherford Physics Building

3600 Rue University

Montréal, QC H3A 2T8

Canada

View Map

Event description

Description

This 2-day long workshop will be presented in English by Simon Nderitu, Pier-Luc St-Onge, Bart Oldeman and Daniel Stubbs, who are Advanced Research Computing (ARC) analysts at Calcul Québec. Pier-Luc and Daniel are accredited by Software Carpentry.

Main objectives are:

  • Learning how to program with the Python language
  • Become familiar with the Unix command line, which is used on most ARC systems
  • Become familiar with version control tools for managing source code (Git)
  • Become familiar with Calcul Québec supercomputers

Prerequisites

The first lesson will guide you through the basics of a file system and a command line interface. If you have already stored files on a computer, and you know the words “file” and “directory”, you have the prerequisites. The following lessons are built on this first lesson.

Pre-workshop survey : link here

Configuration instructions for your laptop, the pre-workshop survey and the post-workshop survey are on the official Software Carpentry event page: computecanada.github.io/2018-11-14-mcgill

Schedule

Wednesday November 14 - Bell Room (#103)

  • 8:00 AM to 8:30 AM - Technical support for laptop configuration
  • 8:30 AM to 11:50 AM – The Unix Shell
  • 1:20 PM to 5:00 PM – Plotting and Programming in Python (Part 1)

Wednesday November 21 - Bell Room (#103)

  • 8:00 AM to 8:30 AM - Technical support for laptop configuration
  • 8:30 AM to 11:20 AM - Version Control with Git
  • 11:20 AM to 11:50 AM - Plotting and Programming in Python (Part 2)
  • 1:20 PM to 2:00 PM – Plotting and Programming in Python (Part 3)
  • 2:00 PM to 5:00 PM – First steps on compute servers


Details

The Unix Shell (3.5 hours)

  • Wednesday November 14, 8:30 AM to 11:50 AM (lunch 11:50 AM - 1:20 PM)

Summary

The Unix shell has been around longer than most of its users have been alive. It has survived so long because it’s a power tool that allows people to do complex things with just a few keystrokes. More importantly, it helps them combine existing programs in new ways and automate repetitive tasks so they aren’t typing the same things over and over again. Use of the shell is fundamental to using a wide range of other powerful tools and computing resources (including “high-performance computing” supercomputers).

Lesson plan

  1. Introducing the Shell
  2. Navigating Files and Directories
  3. Working With Files and Directories
  4. Pipes and Filters
  5. Loops
  6. Shell Scripts
  7. Finding Things


Plotting and Programming in Python (4.5 hours, split on two days)

  • Wednesday November 14, 1:20 PM to 5:00 PM (Part 1)
  • Wednesday November 21, 11:20 AM to 11:50 AM (Part 2)
  • Wednesday November 21, 1:20 PM to 2:00 PM (Part 3)

Summary

This lesson is an introduction to programming in Python for people with little or no previous programming experience.

Lesson plan

  1. Running and Quitting
  2. Variables and Assignment
  3. Data Types and Type Conversion
  4. Built-in Functions and Help
  5. Libraries
  6. Reading Tabular Data into DataFrames
  7. Pandas DataFrames
  8. Plotting
  9. Lists
  10. For Loops
  11. Looping Over Data Sets
  12. Writing Functions
  13. Variable Scope
  14. Conditionals
  15. Programming Style


Version Control with Git (3 hours)

  • Wednesday November 21, 8:30 AM to 11:20 AM

Summary

Version control is the lab notebook of the digital world: it’s what professionals use to keep track of what they’ve done and to collaborate with other people. Every large software development project relies on it, and most programmers use it for their small jobs as well. And it isn’t just for software: books, papers, small data sets, and anything that changes over time or needs to be shared can and should be stored in a version control system.

Lesson plan

  1. Automated Version Control
  2. Setting Up Git
  3. Creating a Repository
  4. Tracking Changes
  5. Exploring History
  6. Ignoring Things
  7. Remotes in GitHub
  8. Collaborating
  9. Conflicts
  10. Open Science
  11. Licensing
  12. Citation
  13. Hosting


First steps on compute servers (2.5 to 3 hours)

  • Wednesday November 21, 2:00 PM to 5:00 PM

Summary

The goal of this lesson is to let participants run their first serial and parallel jobs on our compute nodes.

Lesson plan

  1. Introduction to Advanced Research Computing
  2. Transferring files to/from the cluster
  3. Using modules
  4. Using the scheduler and job submission
  5. Common errors, good practices and recommendations


FAQ

In what language will you present these lessons?

The material and the presentation will be both in English. Questions in class could be both in English or French.

How can I contact the organizer if I have any question?

You may write to support@calculquebec.ca

Share with friends

Date and Time

Location

McGill University

Bell Room (Room 103), Rutherford Physics Building

3600 Rue University

Montréal, QC H3A 2T8

Canada

View Map

Save This Event

Event Saved