As Jenny noted, I've run several Carpentry-style R workshops for complete novices in low-bandwidth throughout in Southeast Asia (including the one in Yangon I wrote about). I have a few opinions about working with complete novices in offline conditions based on these experiences.
I've found the quickest and easiest way to get people doing things in RStudio is to pass around a dozen USB sticks with full R & RStudio installers and a folder of R package binaries (Win and OSX). The learners copy the whole USB folder to their desktop. We install R and RStudio first. Then we open the previously-prepared RStudio project file among the files from the USB, double-click on that to start RStudio, and then don't have to worry about paths when we run the code to install pkgs.
Prior to the workshop, I prepare the R package binaries using miniCRAN, which ensures that we get all the dependent packages also, which is fantastic. It works pretty good during the workshops, but is not 100% perfect, and for the odd cases where the miniCRAN install of packages didn't get them all, I can usually take library folders from my computer (grabbing them from the location indicated by .libPaths()
) and copy-pasted them onto the learner's computer.
This general approach has proven pretty robust to a wide range of old, slow hardware, and learners who rarely use computers, as well as being quick to prepare and implement (so we have more time to learn R), and very cheap. I've often thought about the router/server method suggested by @rensa, but I don't use that much myself and I'd worry that the time I'd spend preparing, setting up, giving instructions and troubleshooting would be another potential distraction from getting learners using R. But I'd love to read someone else's success story teaching R offline with a local server
I guess that we share the general goal when working with complete novices of getting people started using R such that they can continue using and learning by themselves in the future. To be effective at this we need to place R and RStudio as close as possible to the novice's familiar contexts. My opinion is that the quicker and easier we can make it for the learner to go from turning on their computer to doing things in RStudio (i.e. a desktop shortcut to a local install), the higher our chances of cultivating a productive, long-term R-user. So that's what motivates my approach.
If this is truly a workshop for complete novices, as you say, then my opinion is that including Ubuntu and Docker in the solution to the no-internet problem is not ideal. I can imagine it could cause confusion, wasted time, and distraction from the main goal of getting people started with using R & RStudio. From the point of view of a complete novice, Docker is a bunch of unfamiliar concepts and magical command line interactions, and Ubuntu is a strange new desktop environment that will slow people down as they try to navigate around it. The learners will ask questions about these things, and you can't just waive them off and say 'don't worry these things aren't important' because you'll lose their trust and attention ("why is he getting us to do things that aren't important?"). That adds up to a lot of time explaining things that are not R, and that, in my opinion, most complete novice R users will probably do better without. So I'd avoid those if time is limited.
Anyway, good luck, and please do report back on what worked for you! My experiences may not generalize very well, and I'd love to know of other solutions to this problem.