Skip to content

DataProgrammers/2016-02-25-adv-programming-EMBL

 
 

Repository files navigation

R debugging and robust programming

Short link to this page: http://bit.ly/advrEMBL2016

25-26 February 2016 (Thursday-Friday), EMBL Heidelberg
Instructors: Laurent Gatto, Robert Stojnic (University of Cambridge)
Organiser: Wolfgang Huber (EMBL)

This two-day course will teach participants debugging techniques and good practice in writing reliable, robust code. The material will provide the opportunity to gain experience and understanding of how to identify, resolve, and avoid bugs, in order to produce publication-quality code. The course will be taught using R and will be driven by many practical exercises. Course outline

The material will focus on:

  • debugging, to fix problems with code
  • defensive programming - writing effective tests to detect bugs
  • profiling and optimisation of code

Pre-requisites

The course is aimed at those with experience of scripting, who want to learn more about writing robust and efficient code and who may want to develop and release packages in the future.

Content

  • Coding style(s)
  • Interactive use and programming
  • Environments
  • Tidy data
  • Computing on the language
  • Functions
  • Robust programming with functions
  • Scoping
  • Closures
  • High-level functions
  • Vectorisation
  • Defensive programming
  • Debbugging: techniques and tools
  • Condition handling: try/tryCatch
  • Unit testing
  • Benchmarking
  • Profiling
  • Optimisation
  • Memory
  • Rcpp

Other topics

  • Packages and documentation
  • Reproducible research and vignettes (Rmarkdown)
  • Source code versioning with (for example) git and GitHub
  • Automation with (for example) Make

See the TeachingMaterial repository for content.

References

License

This work is licensed under a CC BY-SA 3.0 License.

About

More robust R programming, testing and debugging

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • R 98.0%
  • Makefile 2.0%