About this Course

100% online

Start instantly and learn at your own schedule.

Flexible deadlines

Reset deadlines in accordance to your schedule.

Intermediate Level

Approx. 12 hours to complete

Suggested: 4 hours/week...


Subtitles: English, Chinese (Simplified)

Skills you will gain

Logic ProgrammingR ProgrammingObject-Oriented Programming (OOP)Functional Programming

100% online

Start instantly and learn at your own schedule.

Flexible deadlines

Reset deadlines in accordance to your schedule.

Intermediate Level

Approx. 12 hours to complete

Suggested: 4 hours/week...


Subtitles: English, Chinese (Simplified)

Syllabus - What you will learn from this course

8 minutes to complete

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....
1 video (Total 1 min), 3 readings
3 readings
Course Textbook: Mastering Software Development in R1m
swirl Assignments5m
2 hours to complete


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....
17 readings
17 readings
Control Structures Overview2m
for Loops10m
Nested for loops10m
next, break10m
Functions Overview2m
Function interface10m
Default values10m
Re-factoring code10m
Dependency Checking10m
Argument Checking10m
R package10m
When Should I Write a Function?10m
2 hours to complete

Functions: Lesson Choices

2 quizzes
1 practice exercise
Swirl Lessons
3 hours to complete

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....
19 readings
19 readings
What is Functional Programming?10m
Core Functional Programming Functions10m
Partial Application10m
Side Effects10m
Execution Environments10m
What is an error?10m
Generating Errors10m
When to generate errors or warnings10m
How should errors be handled?10m
3 hours to complete

Functional Programming: Lesson Choices

2 quizzes
1 practice exercise
Swirl Lesson30m
2 hours to complete

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....
15 readings, 1 quiz
15 readings
Debugging Overview2m
Browsing a Function Environment10m
Tracing Functions10m
Using debug() and debugonce()10m
Final Thoughts on Debugging10m
Profiling Overview2m
Find out more10m
Non-standard evaluation10m
1 practice exercise
Debugging and Profiling30m
5 hours to complete

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....
11 readings, 1 quiz
11 readings
OOP Overview2m
Object Oriented Principles10m
Reference Classes10m
Reuse existing data structures10m
Compose simple functions with the pipe10m
Embrace functional programming10m
Design for humans10m
91 ReviewsChevron Right


started a new career after completing these courses


got a tangible career benefit from this course

Top Reviews

By FZJun 7th 2017

Very useful, I considered myself quite an advanced R user, but this class raised the level, especially with the R as OOB part. Good investment if you are not a beginner.

By JYMay 8th 2017

It is a good course that forced me to understand the s3 and s4 object of R and have gained an appreciation of "methods belonging to functions not belonging to objects".



Roger D. Peng, PhD

Associate Professor, Biostatistics
Bloomberg School of Public Health

Brooke Anderson

Assistant Professor, Environmental & Radiological Health Sciences
Colorado State University

About 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....

About the Mastering Software Development in R Specialization

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 useful data science results and products. You will obtain rigorous training in the R language, including the skills for handling complex data, building R packages and developing custom data visualizations. You will learn modern software development practices to build tools that are highly reusable, modular, and suitable for use in a team-based environment or a community of developers....
Mastering Software Development in R

Frequently Asked Questions

  • Once you enroll for a Certificate, you’ll have access to all videos, quizzes, and programming assignments (if applicable). Peer review assignments can only be submitted and reviewed once your session has begun. If you choose to explore the course without purchasing, you may not be able to access certain assignments.

  • When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

More questions? Visit the Learner Help Center.