Keywords: BLAS, set-up, efficient, programming

## Short Instructor Biography

Colin Gillespie is Senior lecturer (Associate professor) at Newcastle University, UK. He is has been running R courses for over five years at a variety of levels, ranging from beginners to advanced programming. During his academic career, he has also been employed as an external consultant at Shell, Burberry, Yorkshire Bank, KPMG, and Tesco Bank. His research interests are high performance statistical computing and Bayesian statistics. He is author of the poweRlaw package and often helps other R users on stackoverflow. He is co-author of the recent book Efficient R programming, O’Reilly.

## Goals

By the end of the tutorial participants should:

1. Gain an understanding of the different R data types and good programming techniques;
2. Understand the benefit of upgrading their computer hardware;
3. Appreciate the impact of having an efficient set-up. In particular, the importance of using a good IDE, of leveraging their .Rprofile and the effect of switching BLAS libraries;
4. Understand the benefits of using Rcpp, the byte compiler and parallel computing to speed-up code.

## Detailed Outline

This tutorial will cover a variety of techniques that will increase the productivity of anyone using R. Topics include optimizing your set-up, tips for increasing code performance and ways to avoid memory issues. Ranging from guidance on the use of RStudio to ensure an efficient workflow to leveraging C++, this tutorial provides practical advice suitable for people from a wide range backgrounds.

An overview of the topics covered are:

• Efficient set-up: the .Rprofile and .Renviron files, the importance of a good IDE, and switching BLAS libraries.
• Efficient hardware: assessing your computer hardware with the benchmarkme package.
• Efficient collaboration: coding guidelines and the importance of version control.
• Efficient programming: common R data types, good programming techniques, parallel computing and the byte compiler.
• Efficient learning: practical suggestions for improving your general R knowledge.
• Efficient C++ programming: A brief introduction to Rcpp.

## Pre-requisites

Participants should be familiar with for loops, if statements and writing simple functions.

## Justification

R is now used in many disparate settings. However, the majority of R programmers have no formal computer training, and instead have “learned on the job”. This tutorial aims to fill in some of these gaps.

# Potential attendees

This tutorial will be of interest to most conference attendees and so I would expect it to be reasonably popular - around 80 participants.