
Teaching and learning with RStudio Cloud | RStudio
Learn about RStudio Cloud and most recent developments, particularly with respect to teaching with it. Slides are posted at https://rstd.io/tl-rscloud. ABOUT RSTUDIO CLOUD: RStudio Cloud is a lightweight, cloud-based solution that allows anyone to do, share, teach and learn data science online. Analyze your data using the RStudio IDE, directly from your browser. Share projects with your team, class, workshop or the world. Teach data science with R to your students or colleagues. Learn data science in an instructor-led environment or with interactive tutorials. There is nothing to configure and no dedicated hardware, installation or annual purchase contract required. Individual users, instructors and students only need a browser to do, share, teach and learn data science. We will always offer a free plan for casual, individual use, and we now offer paid premium plans for professionals, instructors, researchers, and organizations. RSTUDIO CLOUD RESOURCES: RStudio Cloud https://rstudio.cloud RStudio Cloud Pricing plans https://rstudio.cloud/plans/instructor RStudio Cloud guide https://rstudio.cloud/learn/guide {rscloud} https://github.com/rstudio/rscloud ### ABOUT RSTUDIO: RStudio’s mission is to create free and open-source software for data science, scientific research, and technical communication to enhance the production and consumption of knowledge by everyone, regardless of economic means, and to facilitate collaboration and reproducible research, both of which are critical to the integrity and efficacy of work across industries. RStudio also produces RStudio Team, a modular platform of commercial software products that give organizations the confidence to adopt R, Python and other open-source data science software at scale, along with online services to make it easier to learn and use them over the web. Together, RStudio’s open-source software and commercial software form a virtuous cycle: the adoption of open-source data science software at scale in organizations creates demand for RStudio’s commercial software; and the revenue from commercial software, in turn, enables deeper investment in the open-source software that benefits everyone. Check out www.rstudio.com Follow us on Twitter: https://twitter.com/rstudio Facebook: https://www.facebook.com/rstudiopbc/ And LinkedIn: https://www.linkedin.com/company/rstudio-pbc/
image: thumbnail.jpg
Transcript#
This transcript was generated automatically and may contain errors.
Hello and welcome to teaching and learning with RStudio Cloud. My name is Mina Chetinkar-Randell. I am a professional educator and a data scientist with RStudio as well as a professor of the practice at Duke University in the statistical science department. I've been teaching and learning in RStudio for many many years now and over the last few years I've really enjoyed being able to teach with RStudio Cloud. In this webinar I want to talk to you a little bit about what RStudio Cloud is, how you can teach and learn with it, and I want to particularly highlight some of the new developments in RStudio Cloud that I think would be of interest to educators.
The webinar will be streamed live on YouTube and I will be also answering questions during the live stream so if you think of any questions as we're going through things please put them in the chat and I will be there to answer them. And you can also see a link on the slides rstd.io slash TL dash RS Cloud and that's where you can find the PDF of the slides as well.
What is RStudio Cloud?
So let's start with what is RStudio Cloud. RStudio Cloud is a lightweight cloud-based solution that allows anyone to do, share, teach, and learn data science online in the browser. So all you need is a computer with an internet connection and a browser to be able to start computing with R. You do not actually need to install anything. So there's nothing to configure, no dedicated hardware, and no installation. That's what I think makes it really easy for students to get started with computing and that's what makes RStudio Cloud an attractive choice for teaching.
So let's talk a little bit about RStudio Cloud. This is what RStudio Cloud looks like when you've logged on. So over here you can see a little link that says new project and I'm going to click on that and I'm going to select new RStudio project. This takes a second to deploy a project which is basically the same as an RStudio project. I can give it a name in the web user interface and the rest of it is basically the RStudio IDE that you're accustomed to. You can see that I can start computing right away.
Why use RStudio in the cloud?
So let's start by asking the question, why might we want to use RStudio in the cloud? If we are actually teaching with a local installation, the students when they first come to class they would need to first install R and then install RStudio and then maybe install a bunch of packages that you're going to use, then load these packages. If you're teaching with version control they will also need to install git and that has a lot of potential friction points. Maybe some steps are easier than others but if we were to actually go try to go through each of these steps with the audience right now we probably wouldn't be able to get through it so quickly. On the other hand when you are teaching with RStudio Cloud what you can tell your students is go to RStudio Cloud, just log in and start coding. Much less friction to get started with.
So how might you access RStudio in the cloud? You have a couple options. Your first option is using RStudio Workbench which is basically a professional product offered by RStudio. This requires that you yourself as an educator either have some sysadmin experience or you have some IT support who can help you set this up. You also need either a hardware to run this piece of software, a local virtual machine, or some cloud computing credits because your students are going to be computing somewhere and that needs to happen either in the cloud where you're paying for it or you have credit for it or on a local hardware. Obviously you also need to have RStudio experience because you are teaching with RStudio.
If this actually defines you well, RStudio makes RStudio Workbench, licenses it for free as part of their academic pricing. So you can go to rstudio.com slash pricing slash academic dash pricing and you can read a little bit about it. I think they want something like a syllabus to show that you're going to be using this for teaching and you can get that. And if this is of interest to you we actually have a paper in the American Statistician called Infrastructure and Tools for Teaching Computing throughout the statistical curriculum where we go into the details of how you can set this up for your students.
But as you saw there's lots that's needed to be able to get started with this and if you neither have the sysadmin experience or you don't have the IT support available to you this may be a little bit out of reach. With RStudio Cloud really all you need to have is RStudio experience and nothing else. So I think that's one thing that makes it quite attractive as an educator especially if you're teaching statistics or data science.
With RStudio Cloud really all you need to have is RStudio experience and nothing else.
RStudio Cloud features for teaching
So next question is fine maybe I've convinced you that teaching your students how to use R and RStudio in the cloud is a good idea that they should be just going to their web browser and starting doing computing. Why RStudio Cloud then and maybe not some other option? Well let's talk about RStudio Cloud in a nutshell. We already said that it does not require IT experience to set up. It also has some features designed for teaching. For example you can organize your classes as a workspace. You can leverage roles so you can have different roles for your instructor, yourself, your teaching assistants, or your students. You can turn projects into assignments which is using vocabulary your students are familiar with. You can actually peek into student projects which is hugely helpful when you're trying to help them out especially remotely. And you can ensure the same setup for all the student projects using the concept of a base project that we'll touch on in a little bit.
Additionally certain system libraries work out of the box like you can you know get started with git without actually having to install it. And you can knit to PDF and Word out of the box as well as opposed to having your students you know having locally set up something like LaTeX or having access to Microsoft Word.
Types of projects in RStudio Cloud
Let's talk a little bit about projects in RStudio Cloud which is basically how we encapsulate our work and how we organize it. There are three types of projects. The first one is the RStudio project that we have already seen. We had created this project. I had named it my first RStudio project. I've also shown you that you know you can do plotting and whatnot. It's basically the IDE you're familiar with and we're typing our code here.
An alternative is a Jupyter project. This is a new feature and it's in beta so there may be changes to it. There will probably be updates to it. We can go to the same menu and choose a Jupyter project and you can see that you're basically finding yourself in a Jupyter notebook and you can launch it and you know you can start running some Python code there as well. Now you can also run Python code in the RStudio IDE via the reticulate package. So this is not the only way that you could be using RStudio Cloud for teaching Python but using Jupyter notebooks is beyond just teaching Python.
Additionally you can start a project from a Git repository. This is something I use very regularly because I teach using Git and GitHub. I teach Git as a version control system but we also use GitHub as kind of our learning management system. Every assignment is a repository for my students and so they go to GitHub first, grab their private repository that's named to them, and then they bring in the files that I have put in that repository to get started. That's basically doing a Git clone if you're familiar with that language. In order to do this in RStudio Cloud I can again click on new project, say new project from Git, and paste the URL of the project. I'm going to simply clone the praise package that basically generates some random praise that you can use in your work or in your other packages and you can see that basically we've cloned that project and I can continue working with this. The RStudio IDE already provides a Git tab for me anyway as soon as it recognizes that this is a Git version controlled project and I can start interacting with it that way and push and pull to GitHub.
Teaching with RStudio Cloud
Alright so we've talked about the three ways that you could be working in RStudio Cloud and creating projects so let's talk a little bit about teaching with RStudio Cloud. I tend to think of my teaching experiences in one of these two kind of types, either shorter engagement teaching or longer engagement teaching. What I mean by shorter engagement teaching is it's maybe a workshop like a couple hours, a short course at a conference for four hours, or maybe even a full day. But more importantly than time perhaps is the amount of content where content I think can be organized in one or just a few projects that I could share with my learners and additionally in this kind of engagement I'm generally not interested in keeping track of my learners.
If this is the case I would recommend that you use kind of the simpler approach of just share a single project with your learners. If we're thinking about a longer engagement for me that's usually a semester-long course, a multi-day workshop, or something like that and again from the content perspective where content can be best organized in multiple projects. Additionally I want to keep track of my learners. I want to know who my students are. I want to know if they're in my workspace. I want to know if they've started their work. I want to be able to provide guidance to them by sometimes peeking into their projects. If this defines your teaching engagement then the approach where you invite your students to a workspace where you have organized the content is I think a better approach.
Sharing a single project for shorter engagements
So let's start with a slightly simpler one where I said would be I believe better suited for a shorter engagement teaching. In this case we're sharing an RStudio Cloud project and we'll give the example of a single RStudio Cloud project but as I said you know if it's just two or three of them and you want to share them individually that's probably not too confusing for your learners.
So how does this go? We're going to be looking at the instructor view now. So I am in I have created on RStudio Cloud a single project and I have named it Introduction to Shiny. You can see that on the top left corner of my screen and you can see that I've created this project in what is called your workspace. So this is my personal workspace and there I've created a project called Introduction to Shiny which let's say is the short course that I'm going to teach at a conference. In the files tab you can see that I have created some folders where I've organized the content. So if we take a look at one of those folders let's start with the first module maybe I have some slides, I have an app in there that the students are going to work with, a few other app examples that I'm going to teach with. Since I'm teaching Shiny I definitely want to install the Shiny package, probably other packages too, but to keep things simple let's also install the Shiny package.
So in this project I have installed the Shiny package now and let's also just confirm that it's been installed. One thing I'd like to do is I just try to load the package. Does that work? Let's do library shiny. That seems to be working okay and I'm gonna say we're good to go and share this content with the students. So you can see all the structure for the workshop is there. I'm gonna click on that little gear icon, go to access and for who can view this project I'm gonna say everyone and then I am going to go up to the URL and simply copy that link. That's it. That's all I need to share this content with my students and you can see that by using a nice kind of folder structure I've been able to organize the material for them.
I've copied the URL after making the project available to everyone so soon as I turn that switch it is you know available to the whole world although who will be able to find that project ID it's very unlikely that someone can stumble upon it unless I share the link with them. On the student view now they receive that URL from their instructor and so they go to their URL bar and simply paste it and what they do is they need to now log in. So they're going to log in to RStudio Cloud. You can log in with Google for example and they can start computing. They see the same folder structure everything that I gave them is there. Remember we installed the shiny package they're able to load it so they don't have to reinstall it again that's already there for them. They can see the content I've prepared for them they could even right away go ahead and run the app for example.
So let's talk a little bit about this notion of sharing a single RStudio Cloud project to disseminate your teaching materials. On the plus side students land directly in a project upon login right they get the URL and they're in the RStudio IDE which I think is perfect. It's great for sharing code in general too so I tend to think about this approach not just in the context of teaching but also in the context of collaboration or you know sometimes you have this reproducible example that's not quite minimal that still perhaps takes a lot of code and you really want someone to be able to dive into your computing environment and see what you're doing that's what it's also great for just being able to share your entire environment with them.
You can't keep track which students started their assignment so this URL just goes out into the world and anyone who has access to that can use it but you don't have a way of monitoring who have made copies of your project and started their assignment. If a student wants help from you in a way where they would want you to peek into their project you need to be granted permission in order to be able to do that so that's an additional step for the students to have to do.
Now there are two other bullet points I want to discuss and these could be pluses for some of you and minuses for others. These permanent projects once the student makes a permanent project count towards the students free hours on RStudio Cloud. For some this might be okay because maybe you are in teaching in a situation where you are not going to be kind of responsible for the cost of the compute your learners are going to be so in that case this might be okay. Chances are if you're teaching in a university setting for example where students you know have already paid for the course and do not expect to incur additional charges they probably would not want to be put in a situation where they have a limited number of free hours to work on their assignment. We want students to be working there working on things as long as they want to and not have these kind of artificial limits on their learning. Additionally students control permissions is this a good thing or a bad thing it again depends if you're teaching in a graded course you may not want this because it's a too easy a way perhaps for them to share their work with their classmates which might constitute some sort of academic misconduct but you might be teaching in a little workshop where this is perfectly fine so again depending on your situation these could be pros or cons.
Inviting students to a workspace for longer engagements
Let's talk also about inviting to an RStudio Cloud workspace which is the second method of sharing your materials that I mentioned which is for longer engagement projects. So here what we're going to do on the instructor view is you can see this is my account I have a bunch of projects to myself in my workspace but I'm going to click on the little kind of hamburger menu there open the sidebar and create a new space. Let's say I'm teaching a longer workshop called shiny essentials this was a two-day workshop I taught this year so I figured I'd reuse that name and here I can see there's nothing in that workspace yet. I can create a new RStudio project and I can name it something maybe let's just name it oh one getting started again say that's going to be the first module in this particular longer workshop that I'm giving.
So here again we have an RStudio Cloud project and I can change the access level to everyone this time it's not everyone in the world it's everyone in this workspace and I'm going to turn it into an assignment so now when the students get invited to my workspace and land here they're going to see that they have some assignments they need to start working on. This is not to say it's like homework it's just something they can get started with and in fact on the student view they see the word start instead of the word assignment there.
In the members tab of workspace that you create like this you have some options about how you want to invite students to your workspace. I generally use the sharing link so it creates a single link and I can pick a role for people who come into the workspace using that link and we'll say more about the roles in a second and simply either email that out or if I'm teaching you know share that during the first few minutes of the teaching engagement. I've covered some names up here to in order not to show the real students names on the webinar but you can basically see that that would be how you can keep track of who is in your workspace.
So the four roles that are available are admin moderator contributor and viewer and they have different permission levels. So admin is probably you and you can do everything including managing users. A moderator is usually the level of access I give my teaching assistants they can view and edit and manage all projects so they can go in and help students but they don't end up managing the users the actual students who get admitted into the place. Contributors are basically students who can only see their work and then viewers I generally use that for like an auditor in a course or sometimes a guest like a colleague will say I'd like to see how you're doing things but I don't necessarily want them to see the list of students you know in my course in the members tab so I give them that lowest level of access.
We can also set permissions these boxes will be unchecked by default and I would be encourage you to be carefully thinking about checking them so do you want your contributors to see the members list you know if you're teaching a public course maybe not maybe if it's a small university course and you want everyone to know each other's names maybe you do. Whether or not contributors so that students can make their projects visible to all members again we discussed this notion of potential academic misconduct that could happen by students being able to too easily share their work perhaps you know not checking that box is not going to protect you from you know everything that could go wrong but we don't want to potentially be additionally making things easy for students if the way the course is set up is such that they shouldn't see each other's work or if it is that they should be able to then we could allow them to change that. And the third one is about whether they can change project resources and that's getting into things like the memory and the compute that they're going to use which gets tied into the pricing which will say a couple things about at the very end so think about these permission levels but it's good to know that these are there that you and you can toggle based on your own teaching situation.
We also mentioned this notion of a base project so here in the workspace I've clicked on the gear icon for the workspace itself where I could rename my course if I wanted to but underneath it you can see that I can set a base RStudio project. So these base projects include they're basically an any old RStudio Cloud project that you kind of delegate as the base project. This is where you can define the R version that will be used for all projects what packages will be installed and if there is any certain files that you want repeated across all of the projects in the course. That for me this is usually not data because I usually tend to change you know data files from assignment to assignment but it's usually things like a code of conduct maybe submission instructors things that will stay constant throughout the assignments. And you can update it as many times as you like which is really great because if you you know if there's a new package comes out or a package gets updated and you want to change things up in the middle of the semester you can go back and do that and your changes are not retroactive for a good reason you don't want to mess up students work that happened prior to that time point so any changes you make will only affect projects that are created after that change was made.
So inviting in RStudio inviting your students to an RStudio Cloud workspace lots of pluses in my opinion various permission levels this notion of base projects with desired packages installed the notion of assignments which remove the need to remind students to make a copy of the project before starting work and this ability to peek into student projects. Maybe on the minus side one thing I can think of is that when students land in the workspace they don't actually land in the RStudio IDE right they need to do an additional thing to figure out which project to go into next so they may need instructions like start the assignment titled getting started or something like that easy enough to handle but something you need to remember as the instructor. And again on could be a pro could be a con side students work now counts towards yours you know this could be you as an instructor or your institution that might be paying for the particular level of RStudio Cloud for the workspace hours and that could be a positive or it could be a negative depending on your situation and instructor controls the permissions and again depending on the teaching engagement type you have that may be a positive or a negative.
Tips for teaching with RStudio Cloud
Let's wrap things up with a few tips for teaching with RStudio Cloud. So one the first is that when you changes to an assignment student has started won't propagate to student copy so if you have set up an assignment for your students and then realize there was a typo or you forgot to add a data file you're not going to be able to just change things up and then let it propagate once the students start their assignment they're actually making a copy of that assignment at that snapshot of time point so you're gonna need to get that information to them in some other way. If you're teaching with git you could be updating the github repositories and they could simply pull the changes from there otherwise maybe you reach out to your students in some other way to let them know of the corrections.
Packages in the base project are installed but they're not loaded so don't forget those library commands in the assignments that you give to the students. The latest information is always on the RStudio Cloud guide and the what's new page and you can get to these from the hamburger menu on the left side of your RStudio Cloud window so if you're thinking how do I do X the guide is probably the first place to look at. And if you encounter any sort of slowness or glitches you know projects not starting up as quickly as they used to the first place to check is the system status so you can take a again you can from the left hand menu you can get under help to the current system status and if there is an outage that will be noted there if there isn't but you're still experiencing this or your students are experiencing it then you know reach out to support to let them know.
If you I would strongly recommend creating an additional account and log in as a student to see what they see because what you see is not always what they see and it's nice to be able to assure yourself that you've set things up the right way especially the first few times you're teaching with a new technology. Test assignments to set sufficient computational resources these are toggles that you can change so you can see those little toggles on the side here so make sure that you test to make sure that you know the data size size you have or the computation you're asking your students will actually work with the allocated kind of RAM and the CPUs and if not you will be able to toggle those up if you want.
Um the whole peeking at your students project feature is fantastic but you I believe you might want to use that sparingly or at least I try to use that sparingly because the first thing that I want to get my students to do is to learn to articulate the issues they're having without me going in and fixing it for them. That being said sometimes they may not have the right vocabulary if they're for especially if they're you know very new to computing to our to our studio so it's nice to be able to you know push them to articulate these but if that's not getting anywhere and you're getting frustrated or the students is getting frustrated it's really nice to be able to peek in and it's additionally helpful for remote teaching situations as you can imagine.
The whole peeking at your students project feature is fantastic but you I believe you might want to use that sparingly or at least I try to use that sparingly because the first thing that I want to get my students to do is to learn to articulate the issues they're having without me going in and fixing it for them.
Resources and pricing
A couple other useful resources there is now a nice playlist with 14 very short and informative videos about how to do much of what I talked about and more with RStudio Cloud and there's a short link for it on the top of the screen rstd.io slash cloud dash playlist so you can take a look at those and watch through them. And if you are going to be using RStudio Cloud for teaching or for other purposes where you think there will be heavy usage lots of students or maybe lots of projects take a look at the pricing options. There is always a free option although as soon as you're thinking about a classroom with a substantial number of students the free option may not be the right one for you may not be sufficient anymore so I would recommend especially taking a look at the cloud instructor pricing plan and also reaching out to the RStudio sales folks who work on this to just describe your situation of number of students and the type of course you're teaching to let them help you help guide you to figure out the best pricing option for you.
Thank you very much for tuning in and we'll hang out a little bit in the chat on YouTube as well to answer your questions. Once again you can find the slides at rstd.io slash TL dash RS cloud if you'd like to see a PDF version of those as well. Have a great day.
