This course covers advanced topics in R programming that are necessary for developing powerful, robust, and reusable data science tools. Topics covered include functional programming in R, robust error handling, object oriented programming, profiling and benchmarking, debugging, and proper design of functions. Upon completing this course you will be able to identify and abstract common data analysis tasks and to encapsulate them in user-facing functions. Because every data science environment encounters unique data challenges, there is always a need to develop custom software specific to your organization’s mission. You will also be able to define new data types in R and to develop a universe of functionality specific to those data types to enable cleaner execution of data science tasks and stronger reusability within a team.
This course is part of the Mastering Software Development in R Specialization
Offered By
About this Course
Skills you will gain
- Logic Programming
- R Programming
- Object-Oriented Programming (OOP)
- Functional Programming
Offered by

Johns Hopkins University
The mission of The Johns Hopkins University is to educate its students and cultivate their capacity for life-long learning, to foster independent and original research, and to bring the benefits of discovery to the world.
Syllabus - What you will learn from this course
Welcome to Advanced R Programming
This course covers advanced topics in R programming that are necessary for developing powerful, robust, and reusable data science tools. Topics covered include functional programming in R, robust error handling, object oriented programming, profiling and benchmarking, debugging, and proper design of functions. Upon completing this course you will be able to identify and abstract common data analysis tasks and to encapsulate them in user-facing functions. Because every data science environment encounters unique data challenges, there is always a need to develop custom software specific to your organization’s mission. You will also be able to define new data types in R and to develop a universe of functionality specific to those data types to enable cleaner execution of data science tasks and stronger reusability within a team.
Functions
This module begins with control structures in R for controlling the logical flow of an R program. We then move on to functions, their role in R programming, and some guidelines for writing good functions.
Functions: Lesson Choices
Functional Programming
Functional programming is a key aspect of R and is one of R's differentiating factors as a data analysis language. Understanding the concepts of functional programming will help you to become a better data science software developer. In addition, we cover error and exception handling in R for writing robust code.
Functional Programming: Lesson Choices
Debugging and Profiling
Debugging tools are useful for analyzing your code when it exhibits unexpected behavior. We go through the various debugging tools in R and how they can be used to identify problems in code. Profiling tools allow you to see where your code spends its time and to optimize your code for maximum efficiency.
Object-Oriented Programming
Object oriented programming allows you to define custom data types or classes and a set of functions for handling that data type in a way that you define. R has a three different methods for implementing object oriented programming and we will cover them in this section.
Reviews
- 5 stars58.96%
- 4 stars22.58%
- 3 stars10.39%
- 2 stars2.86%
- 1 star5.19%
TOP REVIEWS FROM ADVANCED R PROGRAMMING
This course helped me to figure out what additional skills I need to work on to improve my R coding skills.
The final homework assignment is tough if you are a newcomer to R. It is sink or swim time. Worth it if you can get through it.
For me the course provided a quick and easy introduction to the 'purr' package as well as clarity on the current state of R's object oriented programming system.
Good course, nothing much to say, definitely teaches the use of R, not quite sure it is "advanced" but I guess...
About the Mastering Software Development in R Specialization
R is a programming language and a free software environment for statistical computing and graphics, widely used by data analysts, data scientists and statisticians. This Specialization covers R software development for building data science tools. As the field of data science evolves, it has become clear that software development skills are essential for producing and scaling useful data science results and products.

Frequently Asked Questions
When will I have access to the lectures and assignments?
What will I get if I subscribe to this Specialization?
Is financial aid available?
More questions? Visit the Learner Help Center.