The course will focus on two aspects of R programming and development. In the first part, we will introduce object-oriented programming using R's S3 and S4 system and describe how to define classes, generic functions and implement specific methods. We will also briefly present the S4 Reference Classes. The second part will focus on R package development, including documentation, debugging, code profiling and unit testing. These topics will be illustrated using a small real-life bioinformatical case study to produce, at the end of the course, a fully fledged Bioconductor compliant R package.