https://github.com/lgatto/2016-02-25-adv-programming-embl
More robust R programming, testing and debugging
https://github.com/lgatto/2016-02-25-adv-programming-embl
Last synced: 23 days ago
JSON representation
More robust R programming, testing and debugging
- Host: GitHub
- URL: https://github.com/lgatto/2016-02-25-adv-programming-embl
- Owner: lgatto
- Created: 2016-02-05T13:56:55.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2016-02-26T11:33:32.000Z (about 9 years ago)
- Last Synced: 2025-03-24T04:23:56.922Z (about 1 month ago)
- Language: R
- Size: 4.78 MB
- Stars: 16
- Watchers: 4
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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 outlineThe 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
#### [Part I:](https://github.com/lgatto/2016-02-25-adv-programming-EMBL/blob/master/01-intro.md)
- Coding style(s)
- Interactive use and programming
- Environments
- Tidy data
- Computing on the language#### [Part II: Functional programming](https://github.com/lgatto/2016-02-25-adv-programming-EMBL/blob/master/02-funprog.md)
- Functions
- Robust programming with functions
- Scoping
- Closures
- High-level functions
- Vectorisation#### [Part III: Debugging](https://github.com/lgatto/2016-02-25-adv-programming-EMBL/blob/master/03-debug.md)
- Defensive programming
- Debbugging: techniques and tools
- Condition handling: try/tryCatch
- [Unit testing](https://github.com/lgatto/2016-02-25-adv-programming-EMBL/blob/master/unittesting.md)#### [Part IV: Performance](https://github.com/lgatto/2016-02-25-adv-programming-EMBL/blob/master/04-perf.md)
- Benchmarking
- Profiling
- Optimisation
- Memory
- [Rcpp](https://github.com/lgatto/rccpp/blob/master/rc.md)#### 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](http://lgatto.github.io/TeachingMaterial/)
repository for content.## References
- [Previous courses](https://github.com/lgatto/teachingmaterial) and [here](https://github.com/DataProgrammers/2015-01-15-EMBLHeidelberg).
- [Advanced R](http://adv-r.had.co.nz/), Hadley Wickham.
- [The R Inferno](http://www.burns-stat.com/documents/books/the-r-inferno/), Patrick Burns.
- [An Introduction to the Interactive Debugging Tools in R](http://www.biostat.jhsph.edu/~rpeng/docs/R-debug-tools.pdf), Roger D. Peng.
- [R Programming for Bioinformatics](http://master.bioconductor.org/help/publications/books/r-programming-for-bioinformatics/), Robert Gentleman.## License
This work is licensed under a CC BY-SA 3.0 License.