Looking for best ways in teaching R to absolute beginners


#1

Hi everyone,

I'm invited to teach R to students with no to little programming background, it's a one day workshop. So i'm here hoping to get some recommendations about the best way to do it and the best things to talk about. My goal is to make them fall in love with R and not getting bored.

Best Regards.


#2

@garrett any advices, please?


#3

@yacine, here is some advice that I wrote up for R Ladies Chicago this summer. I think it is the most concise summary that I have handy. Good luck with the workshop.

  1. Teach the tidyverse instead of base R.

This is controversial advice, and I think it is best explained in this blog post: http://varianceexplained.org/r/teach-tidyverse/.

  1. Teach in the RStudio IDE, not a terminal window.

In my experience, terminal windows frighten people who are not programmers. Students seem to relax when they use an IDE.

  1. Have students use an R Notebook instead of the console pane.

An R Notebook is just an R Markdown document that imitates a jupyter or ipython notebook: http://rmarkdown.rstudio.com/r_notebooks.html. Students can more easily focus on one piece of code at a time. They see the results right beneath the code. And they can write notes in between pieces of code.

Also, you can use R Notebooks like worksheets. Distribute them before class and have students work on them during class. You can pre-populate the notebooks with a variety of exercises. For example:

  • Fill in the blank
  • Complete the code
  • Correct the code
  • Use code to solve this problem described in english
  • etc.

Also, if you have 10 minutes to spare at the end of class, it is easy to show students how to turn the R Notebooks into reports that they can share with others.

  1. Use slides, and make sure they have more pictures than words

Everything is easier to understand when it is explained both orally AND visually. You'll be supplying the words, so use slides for the visuals. Try not to have your students listen to you talk and read words on a slide at the same time (the brain can only do one).

  1. If possible, use fascinating data sets or real world problems

This helps the students see the value of what they are learning. Its also more fun. Both improve retention.

  1. Intersperse each 5-10 minutes of demos/lecture with 1-10 minutes of exercises

Ingesting information is half of the learning process. Recalling it and using it is the other half. Keeping the passive sections to under 20 minutes helps you avoid exhausting your student's attention spans.

  1. Double check that your venue has table tops and power

You can't really teach the way I am suggesting without students bringing and using their laptops, which requires power. Surprisingly, many venues will not provide it unless you insist that they do.

  1. Get students talking to each other within the first 5 minutes of class

The first 5 minutes sets a tone for the class. If you spend them lecturing the students will assume that they can sit quietly all day and pretend that you cannot see them. I usually have them introduce themselves to the people around them in the spirit of networking or forming exercise groups. You can give them a few questions to ask each other to jump start the conversation (What do you do with data?). Let the discussion get lively for a few minutes and then call them back to attention (a clock timer can help here). Everyone becomes much more willing to participate after this.

  1. Try not to cold call on anyone

But feel free to have students discuss things in groups and then call on a group to share what they came up with.

  1. Have fun :slight_smile:

#4

Thanks @garrett, very comprehensive reply , I really appreciate it. I'll try my best to apply this.


#5

It all depends on the type of analysis you're trying to teach, but maybe try and find an interesting data-set that may grab the students' attention by itself.

I'm a bit biased, but I love Game of Thrones, and Kaggle has a cool data-set here (though maybe isn't great for spoilers!)