Introduction to R

This course will teach you how to use the computer programming language R.

Many natural and social scientists use R to explore, analyze, and present their data.

This course is designed to help you learn and understand a new language, as well as provide guidance on best practice.

Much like learning any new language, it will often be frustrating as you grapple with new words, meanings, and the nuts and bolts of specific grammar and syntax. However, the end result is beautiful. A whole new world will be open before you, and you will be equiped with a powerful tool and principles to guide you through it.

The course assumes no prior knowledge of R, programming, or how we will interact with your computer via the command line interface.

By the end of the course you will be able to:

Programming, writing code, command line interface, and collection, storage, analysis and display of data are all transferable skills that will be useful whatever software you end up using or work you end up doing.

Please note, this is not a statistics course. Links to background material will be provided, but we will not attempt to teach you statistics.

Deliberate Practice and R Proficiency

The literature on learning suggests that three elements are helpful to learning a new skill quickly: repetition, assessment, and rapid feedback.

R is the perfect environment to learn the R language. We will engage in repeating tasks and new parts of the language every week. These commands are assessed immediately by R when they are entered in the program, but R does not in itself provide helpful assessment or feedback. We will use a program called SWIRL to provide immediate assessment and helpful feedback in R as you work through the lessons.

The labs will repeat much of the material of the lesson, but with new data and without the feedback from SWIRL. Submitted labs will be assessed regularly throughout the week, and multiple submissions are encouraged.

Learning Goals & Outcomes

Successful students will be able to:

  1. Foundational knowledge (information and ideas)
  1. Application (skills, thinking and project management)
  1. Integration (connecting ideas)
  1. Human dimension (learning about oneself and others)
  1. Values (developing new feelings, interests and values)
  1. Learning how to learn (becoming a better student and self-directed learner)

Course Outline

The course is modular and built around stand-alone units.

Each unit has:

SWIRL Lessons

Lessons are short (20–30 minute) scripts that run in the R console that each student works through independently.

These lessons will walk through R commands and ideas, providing direct real-time feedback as the student writes code in the R console.


Each SWIRL lesson will have an associated lab that reinforces the material and develops understanding and coding skills.

Best Practice

Each unit includes a task that reflects best practice.

These tasks will include revising a figure, cleaning some code, cleaning a data set, writing up a statistical test result.


Go to the Overview page to get started!

Updated 2018-08-29