When you enroll in this course, you'll also be enrolled in this Specialization.
Learn new concepts from industry experts
Gain a foundational understanding of a subject or tool
Develop job-relevant skills with hands-on projects
Earn a shareable career certificate
There are 7 modules in this course
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 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.
What's included
1 video3 readings
Show info about module content
1 video•Total 1 minute
Welcome to Advanced R Programming•1 minute
3 readings•Total 7 minutes
Syllabus•1 minute
Course Textbook: Mastering Software Development in R•1 minute
swirl Assignments•5 minutes
Functions
Module 2•2 hours to complete
Module details
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.
What's included
17 readings
Show info about module content
17 readings•Total 138 minutes
Control Structures Overview•2 minutes
if-else•10 minutes
for Loops•10 minutes
Nested for loops•10 minutes
next, break•10 minutes
Summary•2 minutes
Functions Overview•2 minutes
Code•10 minutes
Function interface•10 minutes
Default values•10 minutes
Re-factoring code•10 minutes
Dependency Checking•10 minutes
Vectorization•10 minutes
Argument Checking•10 minutes
R package•10 minutes
When Should I Write a Function?•10 minutes
Summary•2 minutes
Functions: Lesson Choices
Module 3•2 hours to complete
Module details
What's included
1 assignment1 programming assignment
Show info about module content
1 assignment•Total 60 minutes
Swirl Lesson•60 minutes
1 programming assignment•Total 60 minutes
Swirl Lesson•60 minutes
Functional Programming
Module 4•3 hours to complete
Module details
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.
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.
What's included
15 readings1 assignment
Show info about module content
15 readings•Total 110 minutes
Debugging Overview•2 minutes
traceback()•10 minutes
Browsing a Function Environment•10 minutes
Tracing Functions•10 minutes
Using debug() and debugonce()•10 minutes
recover()•10 minutes
Final Thoughts on Debugging•10 minutes
Summary•2 minutes
Profiling Overview•2 minutes
microbenchmark•10 minutes
profvis•10 minutes
Find out more•10 minutes
Summary•2 minutes
Non-standard evaluation•10 minutes
Summary•2 minutes
1 assignment•Total 30 minutes
Debugging and Profiling•30 minutes
Object-Oriented Programming
Module 7•5 hours to complete
Module details
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.
What's included
11 readings1 peer review
Show info about module content
11 readings•Total 86 minutes
OOP Overview•2 minutes
Object Oriented Principles•10 minutes
S3•10 minutes
S4•10 minutes
Reference Classes•10 minutes
Summary•2 minutes
Overview•2 minutes
Reuse existing data structures•10 minutes
Compose simple functions with the pipe•10 minutes
Embrace functional programming•10 minutes
Design for humans•10 minutes
1 peer review•Total 240 minutes
Functional and Object-Oriented Programming•240 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructors
Instructor ratings
Instructor ratings
We asked all learners to give feedback on our instructors based on the quality of their teaching style.
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.
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."
Learner reviews
4.2
576 reviews
5 stars
58.33%
4 stars
22.22%
3 stars
10.24%
2 stars
2.95%
1 star
6.25%
Showing 3 of 576
S
SB
4·
Reviewed on Jul 17, 2018
Excellent subject matter. 4 stars instead of 5 is only because there was no video. I love the videos in the other courses in this track, since I am an auditory learner.
U
UJ
4·
Reviewed on Jun 14, 2017
Great course! I gained a more in depth understanding of R and it's underlying structure. I did think there could more explanation given to object oriented programming R.
C
CC
5·
Reviewed on May 27, 2017
More advanced, challenging course. Still, enjoyable and enlightening. Mentoring on this course is really helpful too!
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
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.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.