Introduction to Shell, R and Version Control: Agenda

[Home]

Highfield House Hotel, 119 Highfield Lane, SO17 1AQ.

The following agenda outlines what will be taught on the course. Additional notes on the teaching materials will be made available shortly after the course.

The software prerequisites for the lessons can be found here. The course training materials (which you can revisit and follow at your leisure) are linked to from the topics below.

Day 1: November 1


09:00 - 09:30 Arrival, Welcome and Setup
09:30 - 10:00 Introduction
10:00 - 10:45 Automating tasks with the Unix shell
The Unix shell is a power tool that allows you to do complex things with just few keystrokes by helping you in combining existing programs in new ways and automate repetitive tasks. This session guides you through the basics of file system and the shell and will start you on the path towards using powerful tools and computing resources. The following topics will be covered:

  • Introducing the shell
  • Files and Directories
  • Creating things
  • Pipes and Filters
  • Loops
  • Shell Scripts
  • Finding Things
10:45 - 11:15 Break
11:15 - 12:00 Shell: continued
12:00 - 13:00 Lunch break
13:00 - 14:15 Introduction to programming with R
In this session, you'll learn good programming practices with an introduction to the fundamentals of R. The following topics will be covered:

  • Working with data types, data structures like vectors, dataframes etc.
  • Analyzing data
  • Creating and using functions
  • Conditionals in R
  • Understanding Factors
  • Loops in R
14:15 - 14:45 Break
14:45 - 16:00 R Basics: continued
16:00 - 16:30 Wrap-up of Day 1

Day 2: November 2

09:30 - 10:30 More advanced coding with R
The following topics will be covered:

  • Using packages in R
  • Graphing in R
10:30 - 11:00 Break
11:00 - 12:00 Making your own R scripts
The following topics will be covered:

  • Command-Line Programs
  • Dynamic Reports with knitr
  • Making packages in R
12:00 - 13:00 Lunch break
13:00 - 14:00 Version control with Git
This session will teach you how to track and manage changes within your code, how to collaborate with other developers through a shared code repository, and generally improve the reproducibility of your research. The following topics will be covered:

  • Creating and cloning repositories
  • Committing changes to files: add, commit, ...
  • Viewing changes: status, diff, ...
  • Working with remote repositories, e.g. through GitHub: clone, pull, push, ...
  • Resolving conflicts
14:00 - 14:30 Break
14:30 - 15:30 Git: continued - Collaboration
15:30 - 16:00 Wrap-up and Feedback