This brief mini-course focuses on explaining the computational model that underlies R. I believe that if you understand this, you can reason about the R code and the language and can more rapidly solve (and avoid) problems with your code. This approach is different from learning by examples close to your needs and adapting existing code. Both approaches are valuable, but the fundamentals provide the foundation to grow.

This mini-course does not attempt to teach you lots of functions and packages that you use on a daily basis. Instead, it is focused on R's language and computational model.

This mini-course will not explore the tidyverse. This is because these packages use non-standard evaluation and insulate the user from the the core language for basic data manipulation. We are not saying you shouldn't use these packages. Rather we are saying that is important to learn the fundamentals and then leverage these when they improve your programming and productivity. With a strong foundation in the language, you can learn anything related to it. If you know only a particular set of packages or particular functions and idioms, you are limited to those.

I expect lots of questions. So speak up if anything is not clear or you want to know more about a particular topic..

Also, tell me what topics you want to cover in the remaining sessions?

  • What do you find the hardest thing to understand about R?
  • Try to keep it about the language and how it works than a function in a particular package.