About this Course
4.3
334 ratings
85 reviews
Specialization
100% online

100% online

Start instantly and learn at your own schedule.
Flexible deadlines

Flexible deadlines

Reset deadlines in accordance to your schedule.
Intermediate Level

Intermediate Level

Hours to complete

Approx. 11 hours to complete

Suggested: 4 hours/week...
Available languages

English

Subtitles: English, Chinese (Simplified)

Skills you will gain

Logic ProgrammingR ProgrammingObject-Oriented Programming (OOP)Functional Programming
Specialization
100% online

100% online

Start instantly and learn at your own schedule.
Flexible deadlines

Flexible deadlines

Reset deadlines in accordance to your schedule.
Intermediate Level

Intermediate Level

Hours to complete

Approx. 11 hours to complete

Suggested: 4 hours/week...
Available languages

English

Subtitles: English, Chinese (Simplified)

Syllabus - What you will learn from this course

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

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....
Reading
17 readings, 1 quiz
Reading17 readings
Control Structures Overview2m
if-else10m
for Loops10m
Nested for loops10m
next, break10m
Summary2m
Functions Overview2m
Code10m
Function interface10m
Default values10m
Re-factoring code10m
Dependency Checking10m
Vectorization10m
Argument Checking10m
R package10m
When Should I Write a Function?10m
Summary2m
Quiz1 practice exercise
Swirl Lessonm
Week
2
Hours to complete
4 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....
Reading
19 readings, 1 quiz
Reading19 readings
What is Functional Programming?10m
Core Functional Programming Functions10m
Map10m
Reduce10m
Search10m
Filter10m
Compose10m
Partial Application10m
Side Effects10m
Recursion10m
Summary2m
Expressions10m
Environments10m
Execution Environments10m
What is an error?10m
Generating Errors10m
When to generate errors or warnings10m
How should errors be handled?10m
Summary2m
Quiz1 practice exercise
Swirl Lesson30m
Week
3
Hours to complete
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....
Reading
15 readings, 1 quiz
Reading15 readings
Debugging Overview2m
traceback()10m
Browsing a Function Environment10m
Tracing Functions10m
Using debug() and debugonce()10m
recover()10m
Final Thoughts on Debugging10m
Summary2m
Profiling Overview2m
microbenchmark10m
profvis10m
Find out more10m
Summary2m
Non-standard evaluation10m
Summary2m
Quiz1 practice exercise
Debugging and Profiling30m
Week
4
Hours to complete
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....
Reading
11 readings, 1 quiz
Reading11 readings
OOP Overview2m
Object Oriented Principles10m
S310m
S410m
Reference Classes10m
Summary2m
Overview2m
Reuse existing data structures10m
Compose simple functions with the pipe10m
Embrace functional programming10m
Design for humans10m
4.3
85 ReviewsChevron Right

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

Instructors

Avatar

Roger D. Peng, PhD

Associate Professor, Biostatistics
Bloomberg School of Public Health
Avatar

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.