This course is designed for users who have experience with writing R scripts and who now want to advance a step further, into producing more durable and robust software projects and code that is usable by others.
The first part of the course will introduce object-oriented programming using R's S3 and S4 system and teach you how to define classes, generic functions and methods. It will also present how to create Bioconductor-compliant R packages and document them. The second part will focus on advanced topics in R programming including unit testing, debugging, profiling and calling C/C++ code. It will also describe how to write efficient and elegant code using vectorisation, parallelization, and the functional programming paradigm. Finally, creating web applications with shiny will be discussed.
These topics will be illustrated using a small real-life bioinformatic case study. Participants will produce, at the end of the course, a fully fledged Bioconductor compliant R package.
Pre-requisites: Good knowledge of R and active programming experience. Familiarity with object-oriented programming and LaTeX is helpful, but not essential.
The course will take place on Thursday and Friday 15-16. January 2015 at EMBL Heidelberg, Courtyard A+B room (travel information). Participants are expected to bring their own laptop with R version >=3.1.2 installed.