ETC4500/5450 Advanced R Programming
R is widely used as a tool for data analysis and one of the most popular programming languages. This unit delves into R from the programming aspect instead of using it as a data analysis tool. You will learn a variety of programming paradigms and delve into the foundations of R as a programming language.
Learning outcomes
- be familiar with the foundations of R programming
- understand a variety of programming paradigms, including functional programming and object-oriented programming
- utilise R’s functional and object-oriented programming systems
- integrate the concept of metaprogramming to evaluate and construct new functions
Teachers
- Rob J Hyndman. Chief Examiner. Email: Rob.Hyndman@monash.edu
- Mitchell O’Hara-Wild. Email: Mitch.OHara-Wild@monash.edu
- Hadley Wickham, Week 2
- Tomasz Wozniak, Week 11
References
- Advanced R, 2e by Hadley Wickham.
- Advanced R Solutions by Malte Grosser, Henning Bumann & Hadley Wickham.
- The {targets} R package user manual by Will Landau.
- R packages, 2e by Hadley Wickham & Jenny Bryan.
Weekly schedule
- 3 hour workshop, Thursdays 6pm-9pm each week, in Woodside G16.
Date | Topic | Assessments |
---|---|---|
06 Mar | Foundations of R programming | |
13 Mar | TBD | |
20 Mar | R package development | Assignment 1 |
27 Mar | Debugging and profiling | |
03 Apr | Functional programming | |
10 Apr | Literate programming with Quarto | Assignment 2 |
17 Apr | Reactive programming with targets and renv | |
24 Apr | Mid-semester break | |
01 May | Object-oriented programming with S3 | Assignment 3 |
08 May | Object-oriented programming with vctrs | |
15 May | Metaprogramming | Game package 1 |
22 May | Rewriting R code in C++ | |
29 May | Package hackathon | |
05 Jun | Game package 2 |
Assessments
- Assignment 1: 10%
- Assignment 2: 25%
- Assignment 3: 25%
- Game package 1: 10%
- Game package 2: 30%