
Mine Çetinkaya-Rundel | Teaching R online with RStudio Cloud | RStudio (2020)
RStudio Cloud is a lightweight and easy to set up / use solution to teaching R online, in the browser. In this webinar we will walk you through the steps of setting up your course on RStudio Cloud, highlighting the various functionalities for teachers and students. We will also discuss best practices and provide an opportunity for the audience to experience the setup first hand. Additionally, we highlight a suite of ready to use resources for teaching an introduction to data science and statistical thinking course using R. Webinar materials: https://rstudio.com/resources/webinars/teaching-r-online-with-rstudio-cloud/ About Mine: Mine Çetinkaya-Rundel is Professional Educator and Data Scientist at RStudio as well as Senior Lecturer in the School of Mathematics at University of Edinburgh (on leave from Department of Statistical Science at Duke University). Mine’s work focuses on innovation in statistics and data science pedagogy, with an emphasis on computing, reproducible research, student-centered learning, and open-source education as well as pedagogical approaches for enhancing retention of women and under-represented minorities in STEM. Mine works on integrating computation into the undergraduate statistics curriculum, using reproducible research methodologies and analysis of real and complex datasets. She also organizes ASA DataFest and works on the OpenIntro project. She is also the creator and maintainer of datasciencebox.org and she teaches the popular Statistics with R MOOC on Coursera
image: thumbnail.jpg
Transcript#
This transcript was generated automatically and may contain errors.
Thank you very much for having me. So today we're going to be talking about teaching R online with RStudio Cloud. And the link to the slides is here on the first slide, and you'll be able to see it on the footer of most of the slides that I'll be going through. That goes to the rendered slides. And I'm not going to be showing much code today or any at all, actually, we're going to be talking about how to set up RStudio Cloud for your teaching. But if you're interested in the source files, I'd be happy to provide a link to that as well.
Why use RStudio Cloud for teaching?
The first question I'd like to answer is, why might you be interested in using RStudio in the cloud? There are a few reasons. First one is how do your students get started when they're starting to learn R? So here is one recipe. You can get your students to install R, RStudio, install a bunch of packages that you're going to use for that lesson or for the entire duration of your course, load the packages. If you're using version control, they need to also make sure Git is installed. And this list could keep going if you're teaching anything beyond an introductory course.
This produces every single bullet point here produces a friction point, especially if you're working with an audience that is new to R. On the other hand, here's another alternative. Go to your browser, go to this link and log in, and the environment is already set up for you. So this is much less friction to begin with. Another reason though, is maybe you used to be teaching in a setup like this. And now your students are in their own bedrooms and signing on individually. So you no longer have, neither do you have control over what's on their computer necessarily, because it's not a computer lab that maybe you've worked with your university IT to set up.
RStudio Server Pro vs RStudio Cloud
So how do we get RStudio in the cloud? We have a couple options again. One option is an option that RStudio has been providing pretty much forever, I would say, is RStudio Server Pro. So what is RStudio Server Pro? This is a piece of software that if you have these following things, you can get running with. You either yourself as the instructor needs sysadmin experience or support from your IT. You also need either hardware to install the software on, or a local virtual machine setup, or some sort of cloud computing credit. And each one of these is basically cost points, as you can imagine, both the support and also the hardware or wherever you're going to be doing your compute.
In addition to that, you yourself probably have some RStudio experience. If you have all of these, this might be the right option for you. However, if you're having to shift your teaching mid-semester quickly without much notice, even if you have much of these happening, this may not necessarily be the right time to be undertaking something that takes multiple steps to set up. But I wanted to leave this here on the slide and also have a link to the RStudio Academic Pricing, which basically says that if you are using the software for teaching purposes, you can freely license it.
The whole package itself doesn't end up being free. Somebody's paying for the IT support time, somebody's paying for compute, but ultimately the software itself is free. And you can get your students onto this machine and the RStudio instances, and they're ready to keep going just like we said in the first slide.
Alternatively, if you're using RStudio Cloud, really the only thing you need is RStudio experience. So you don't need the sysadmin experience or IT support, and you don't actually need anything related to compute either.
So let's talk a little bit about RStudio Cloud. RStudio Cloud was created to make it easy for professionals, hobbyists, trainers, teachers, and students to do, share, teach, and learn data science using R. What does RStudio Cloud look like? If this is what the RStudio ID looks like on your local machine, this is what RStudio Cloud looks like. As you can see, it looks exactly the same. And that is important if you're using this to get your students started, because you don't want to be teaching them in an environment where that experience is not going to just carry over to the local instance experience. The only difference is they're running it in the browser, so it comes with a URL to go to.
Features designed for instructors
Why might you want to use RStudio Cloud over other ways of getting RStudio in your web browser like RStudio Server Pro? First of all, it does not require IT support, which means that you don't need to convince somebody else for their time to help you with it. Git works out of the box, which is, I think, a huge advantage if you're teaching with version control. Oftentimes, what I hear is that if folks are teaching with version control, they might be doing it not necessarily in an intro course, but in a more advanced course where they feel like students should be able to go through the installation step.
That might very well be true. Installing R and RStudio is not too cumbersome, to be perfectly honest, but getting Git to work on every single one of your students' machines in a local install is not necessarily trivial. You can also knit to PDF and knit to Word, which means that tech is installed and Word is installed. So if these are output options you use with R Markdown, you already have those readily set up for yourself as well.
But additional to this, it has a bunch of features that are designed specifically for instructors. For example, your classes can be organized in workspaces, which means that if you're running many classes, it becomes a lot easier to manage them. Members can be assigned different roles, so you can have different permission levels for instructors, TAs, and students. Your projects can be public or private, and you get to control that for your students. Your projects can be made into assignments, which makes it a lot easier for your students to get started.
Your students can make copies of projects, so you can basically set up projects up to a certain point and ask your students to pick things up from that point onwards. I think one of the most attractive features is that you, as the instructor, can peek into your students' projects. So we can actually recreate that experience of looking over your students' shoulder, even though you're not in the same room with them. And finally, a base project template can ensure that you have the same packages in each new project created in the workspace, so you no longer should have a situation where you write some code and your student says they run the exact same code, but they're getting something different from you or a classmate.
I think one of the most attractive features is that you, as the instructor, can peek into your students' projects. So we can actually recreate that experience of looking over your students' shoulder, even though you're not in the same room with them.
Getting started: workspaces and projects
When you get to RStudio Cloud, you can get started just like this, and on the login window, you can either create an account or sign up with something like Google or GitHub, or if you have a ShinyApps.io account, that will also work as well. And you'll land into a blank slate like this. So there are two things that you can see here. There's something called your workspace, and I usually like to think about your workspace in the center as the sandbox I play in. I rarely put teaching stuff there, but instead I use separate workspaces for each one of my classrooms.
We will go through each one of these options, but generally, as an instructor, I like keeping my individual workspace as my sandbox for trying things out or one-off sharing, and the individual workspaces for a classroom. So workspaces, when you create an account on RStudio Cloud, you get this workspace of your own. You can add a new workspace and control its permissions. That's why I think it's an attractive option for setting up a class. And projects in either workspace, either the ones that you create specifically for a class or your own, can be public or private.
What is a project in RStudio Cloud? Well, a new project in RStudio Cloud is basically a new project in the RStudio IDE. I've met many people who have been using RStudio for years and years, but don't necessarily use the project features. I'm not necessarily going to be taking a whole lot of time to describe why that's beneficial, but even if you are using RStudio, your local install, I strongly, strongly recommend that you use projects. If you get nothing out of this webinar, but that tip, I think that will still be worth your hour. Trust me, you won't regret it.
And if you do want to learn more about why it is a good idea to be using RStudio projects, even in the local IDE, I have a link to the relevant section in the R for Data Science book in the slides. Similarly, you can create projects from Git, a Git repository. So a new project from a Git repository in RStudio Cloud is the same thing as creating a new project from Git in the RStudio IDE. Both of these actions clone a Git repository. So you have two ways of initiating a project, a blank slate or something that comes from a Git repository.
Option 1: sharing a single project
So we talked about these two options. You have your own workspace or you can create classes. These are your two options for sharing projects with students. We're going to start with the simpler approach, although I will mention why I would recommend the slightly more complicated approach, option two. But option one is you create a single project and you share it with your students. This is how easy it is. It actually, the instructions fit into a tweet. So that's less than 280 characters. Go to RStudio.cloud, log in, create a new project, install any packages, add any scripts or markdown documents that you want to share with your students, change the access level to be available to everyone, copy the URL and share it with your students.
Let's start with creating a new single project. So I'm going and creating a new project. Once the project is deployed, what I can do to start it for, to get it ready for my students is I might, for example, choose to install some packages that I'm going to be using in whatever class example or for the workshop that I am teaching. Any of the packages that you install will then be available for your students as well.
Something I really like to do is just create an R Markdown document quickly. That will actually prompt the RStudio instance to install any necessary packages as well. I usually teach with R Markdown documents, so I usually place a template R Markdown document to get students started with. So if you knit this, the file is going to get saved, which means that when your students may get their own copy of the project, they're going to be able to see that file as well. You might want to rename the project itself so that when you share it, students know, get inherit that name as well. And ultimately, you want to share that URL with your students. But by default, your projects are available only to you. So first you need to change the access level, clicking on the gear icon, and then you can simply send that URL to your students.
Now, let's look at the student view as to how this looks. The student has received that URL from their instructor, they place it into their browser, they log on, and what they're seeing is that same project, you can see with the same name called Workshop Materials, but one thing that is different is that it says Temporary Project on top. So your students need to remember to save a permanent copy. And what is happening at this point is a copy of the project is made for them to further iterate on. If they forget to do that, they lose their changes. But you can see that they're able to get, they got the same document that you had created. And in fact, if we try to just load the Tidyverse package, which we had previously installed on the instructor side, it loads, meaning that the install has actually carried through.
So pros and cons of sharing a single project like this. What's good about it is that students land directly in a project upon login, which means they get the URL from you, and what they see is an RStudio ID, and they can get started. It works well for workshops where all the work that will be done completed is in a single project. But I don't think it works really well where you have, where you're going to have a much longer running class and you're going to have a lot of work that you're going to be doing throughout the class, or if you want to track students in some way. It is also great for sharing code in general. So outside of a teaching setting, if you want to do it for collaboration or to create a reprex, one of the things I love using this feature for is reprexes for shiny apps that tend to be sometimes long, have lots of code, so you can basically put it in an RStudio Cloud instance and share it with somebody else for them to try it out.
The not so good side is that, remember that red reminder on top that said temporary project? Students need to remember to make a copy of the project, and yes, it's red, and yes, it's blinking, but people forget. When I say students need to remember, really what I mean is you as the instructor need to remind them. That places additional burden on you as well, because if they don't, and they work on it, and then they close out of their browser, when they come back, they're not going to be able to see their work.
Another thing that's not so good is that you can't keep track of which students started their assignment. You share the URL with them, and then it just goes out into the ether. You don't have a way of seeing if a student has derived a project from yours, and I'll be able to show you the flip side of this when you use the other paradigm. Additionally, if you are concerned about students sharing work, this is not a great option, because now that a student owns that project, when they make a copy, a non-temporary copy for themselves, they now control the permissions of that project, which means they can simply share it with another friend, and if this is an assignment where you don't want students sharing code, now you've made it additionally easy for them to do so.
On a remote teaching note, I think one of the things that makes it hardest for sharing a single project is that you can't easily peek into student projects. They would need to explicitly share the project with you. I'm not sure why my bullet point is cut off here, but basically, they need to set the access level to be available to everybody else, and then send the URL to you, as opposed to you being able to track it much more easily. I think that this idea of using RStudio Cloud as a way of peeking over your student's shoulder to help them with any troubles that they're having does not really apply when you share a single project with them.
Option 2: creating a class workspace
The other option is to create a workspace and get your students into that workspace. When I think about creating a workspace, I think about I'm building my classroom, and the people who are invited in here are the people who are in my class, either my students or my helpers or TAs.
How do we go about creating a workspace and then sharing it with our students? As an instructor, I click on new space on the sidebar, give a name for my new space, and also give it a description. This is the name and the description your students will encounter when you ultimately invite them to this workspace. I create the workspace, and then I'm going to do a bunch of prep before I actually invite my students in. That's how easy it is to create the workspace.
The next step is thinking about who is going to be in the workspace. How do I get students into a class workspace? There's a tab called members. If I click on that, you can see that currently, I myself is the only person in this workspace, and my role is noted as admin. On the right-hand side, you can see a bunch of options. Let's drill down into those.
The first thing that you might want to think about is how are you going to invite students into your class? Unfortunately, there isn't just yet an easy way to upload a roster, for example, of student emails. My recommendation would be, instead of choosing invitation require, where you would have to actually individually invite each one of your students, especially if you're teaching a larger class, I would recommend setting the access option to shared, but do so for a short period of time, and share this link with your students. You want to enroll them as contributors, and I will talk about what the other access levels are in a second.
When I say share this link with your students, though, I might recommend, if you are worried about random strangers getting into your workspace, that that sharing is not necessarily done in a public way, so if you keep a public course website, for example, instead of pasting it there, use, for example, your course management software or a roster that you have to email the link to your students. If you don't care about who gets in this workspace at that point, then it doesn't really matter how you share it.
After initial round of enrolment, this could be a drop, or it could be a couple of days if you're having to shift gears mid-semester, switch this access level over to invitation required, and then going forward, you can use invitations for any other people you need to add. Oftentimes, I might have another colleague who wants to see how I'm running things, so I might add them as visitors to my workspace.
The different permission levels, we saw that my name was listed as admin, I am the owner, and I think that role admin really translates to instructor in a teaching setting. I can do everything. I can manage users, view, edit, and manage all projects, in fact, mute the workspace if I want to. Another level is moderator, which in an instructional sense would maybe correspond to a TA. The moderators can view, edit, and manage all projects, but they don't really get to manage users. Contributors are what I would say students. They can create, edit, and manage only their own projects, and a viewer, usually I use it in a course setting as an auditor or a visitor or colleague who might want to see how things are working, they can only view projects that are shared with everyone.
Under the members, that same tab, we also saw these permission levels, and I would recommend unchecking all of these. What are they saying? Contributors can see the members list. This is basically saying, should your students be able to see each other's names? If you think about just your students being able to see each other's names, maybe that's not a big deal, but if you are going to potentially open this course up to the public, you might have concerns about your students' names being publicly available, so I tend to like to uncheck that box.
Contributors can make their projects visible to all members. If this is for a course that is graded where you are expecting that students not share code with each other, let's not make it easier for them to do so, so you can uncheck that box as well. Contributors can change project resources, so you can change how much memory is allocated to certain projects. This might be something you might want to check or you might want to uncheck. I would say, especially if you are teaching introductory students, chances are this is not going to be a concept they are super comfortable with anyway, so you can uncheck that. You can always set that level for them yourself later on. Ultimately, should viewers, like auditors, be able to see the members list? I usually uncheck that too.
When you create a new workspace, you, by default, can get 10 people in there, including yourself. A lot of us teach courses that have more than 10 students in it, so we have this limit there in order to keep track of usage levels, so you can actually request more members on that members tab, and I would recommend doing so as soon as you set this up. What this means is that if you are setting this up today and wanting to teach it tomorrow morning first thing, that might be a little tough because a human actually needs to approve this, so put in your request as quickly as possible and tell us a bit about what you are using this space for. We are not denying any requests at this point. This is more for tracking of what people are using RStudio Cloud for so that we can try to anticipate what the demand levels might be.
Base projects
Another very attractive feature of RStudio Cloud, if you are using workspaces, is this idea of a base project. What do I mean by a base project? In this base project, the packages you want installed on students' projects live there. Text documents that you want to appear on all student projects also live there. I usually use this for something like a code of conduct, for example, or if you have specific instructions that are the same from assignment to assignment, you can put in things like how do you turn in your work there as well.
The base project applies to all projects created after the base project has been specified. It does not apply retroactively, and that should be an attractive feature. Once people create a project in the class, the settings of that project shouldn't change if you later decide to change how your base project looks. I think most importantly, the base project can be updated as many times as you like throughout the course without having to convince any IT people. There might be a new version of a package that you want your students to learn about, and you can choose to install that package to your base project at 2 a.m. the night before you teach, and tomorrow morning when they get in and start working on an assignment, it will be available to them.
There might be a new version of a package that you want your students to learn about, and you can choose to install that package to your base project at 2 a.m. the night before you teach, and tomorrow morning when they get in and start working on an assignment, it will be available to them.
How does it work to create a base project? There are a few steps for it. You start by creating just like any old project. In this base project, you're going to want to install any packages that you may want to have. I like renaming the project right away as base project. You really can use any name you want, it just needs to be identifiable so that you can choose it from a list later. As I said before, I always like creating an R Markdown document, because that list of packages, I forget what they are. All the list of packages you need to get R Markdown up and running, at least RStudio does it automatically for me, so even though I'm not putting in R Markdown document here, I go through the motions of doing so.
I like adding a plain text file that is basically a code of conduct, so I would add some verbiage to that, but to keep things simple, I'll leave it just with a heading for now. This means this file is going to be copied over to every single project created in this workspace, and then I'm going to want to choose this to be my base project. I'm showing you something here that I almost do every single time, which is that before you can make a project your base project, you need to change its permissions to be available to everyone. We want to change the permissions to be available to everyone, then we click on the gear icon and select the base project by name, and then if at a later point you want to edit it, you can actually do so.
Say tomorrow you decide to teach a topic that uses a package that you haven't used before, you can actually go ahead and add that package to your base project. You can see that once a project has been set as a base project, it disappears from the project list, so now I'm creating a regular project in my class. Let's say this is the homework 1 assignment that I'm creating for my students. I can create a template document for them to start working on, and you will see that as I'm creating this document, RStudio does not prompt me to install the packages that are required for R Markdown, because those already got carried over from my base project. If this is the homework assignment I want to give, I'm going to make it available to everyone, and I'm going to check the box next to make this project an assignment.
Now that I have set up a base project, and the first homework assignment in my class, it is time for me to invite my students. I go to the members tab of my workspace, I choose shared, I say that initial row for my students should be contributors, and I copy the sharing link. It's going to end up being an awfully long link, you might want to use a link shortener or something before you email it to your students, it doesn't really matter. And then your student now receives that email from you with the link to the workspace.
So how do things look like for your student? They go to that link, and this is where they land. They need to log in, and they can use, if they have an existing Google account, log in, it says do you want to join this space, yes, and they land here with your message about this is what this workspace is for, and if they get to the projects, they can see their homework one assignment and start it. So you can see that the R Markdown file you set up for them is there, the document knits without prompting students to install any packages, the code of conduct from the base project is also there as well.
Git integration
One other thing I will mention is Git integration. I said that Git works out of the box for RStudio Cloud, this is only relevant if you're teaching with Git and GitHub, I mean, in a teaching context. It's only relevant if you're teaching version control as well. I think the really, really attractive thing is that your base project templates can be used, which means that when students go and clone a new project from Git, they will get any plain text files that live in that Git repository, but the RStudio Cloud project that they initiate will also have the right packages installed.
On the other side, a little bit disappointing side, at least for now, if you're teaching with Git, you need to introduce yourself to Git once per each project. That usually translates to for each assignment that you assign to your students, for example, which means that at the beginning of each of your assignments, you're probably going to want to include some instructions like one of the following. If you're happy with your students using the terminal, remember that the RStudio IDE has a terminal window and they can use commands like git config username and git config user email and run those in the terminal.
Personally for teaching introductory courses, I try to not land my students in the terminal as much as possible, so I like the function called use git config from the useness package, which basically runs the same thing as running the commands in the terminal, except they're doing things in RStudio so things feel a little bit more familiar. Important thing here is that if you're going to be asking students to use the useness command, you want to make sure that you install the useness package in your base package as well, so they're not going to have to install it themselves, so your instructions work out of the box.
Pros, cons, and peeking into student projects
So pros and cons of sharing a workspace in this manner. On the good side, you get these various permission levels, which I think is really attractive, especially if you work with TAs. The base projects with the desired packages installed is another attractive feature. The assignment feature removes the need to remind students to make a copy of the project before they start work so they no longer get that pesky temporary project blinking light. Instead, as they click start on an assignment, RStudio Cloud automatically makes that copy for them.
I think most importantly, especially for remote teaching, this ability to peek in the student projects is very attractive. On the not-so-good side, students land in the workspace and they may need some instructions to figure out what they need to do next because when they land in the workspace, remember, they see your workspace name and your instructions, so you might want to put in your welcome message something like, now click on projects to find out your assignments. The git config step that we just talked about for each project can get tedious, and I think most importantly, it doesn't reflect realistic practice. If you're running things locally, that config step is something you would probably do globally just once on your computer.
As I mentioned, for remote teaching, now you can easily peek into your student projects. Here is a workshop that I taught remotely, and I have projects for each one of the modules in the workshop. I usually like this view in my workspaces, where you can see on the right-hand side for list projects, I only click on yours, which means mine, which means I don't have to see all the copies that my students have made, because if you have hundreds of students, that list is going to get very long, but it gives me this really nicely organized view of the modules or assignments I've given my students, and I can click on those links that says view drive projects, and I didn't want to show you the next step, because it would have student names in there, but then you would be able to see the projects of every single one of your students who have made a copy, and then click on it and actually go into their project.
So, you can see their code exactly where they left it, which is great for helping them. Obviously, I think initially, you probably want to get them to describe to you what the issue is, but things can get a little bit frustrating, especially if you can't see their screen, so this is an opportunity to actually peek in. You can also see how many students or which students actually started their work, if that's something you want to track at certain points of an assignment.
Common pitfalls
A few common pitfalls using either paradigm, sharing projects or sharing a workspace. It's important to remember that when a student makes a copy of your project, or when they start an assignment, RStudio Cloud is making a literal copy of that project at that time point. So, changes you make after a student launches a project under either model won't propagate to their project. This is not like collaborative editing of Google Docs, it is more like you distributing, handing out paper to your students, and then if you make changes to your own copy, that's not going to propagate to theirs. What does this mean? Until you're ready to share an assignment with your students, I would recommend keeping the access level to be available only to you, which is the default anyway, so you could be working on what your next week's homework is going to look like, and your students don't need to see that work until you're ready to actually make that project available to everyone.
Another common pitfall that I see is that packages in the base project will be installed for everyone, but they will not be loaded. If you need students to run code in the console that requires a package, your instructions should remind them to load the package first, so run something like a library command. They never should need to run install packages, unless that's part of your learning objective of course, but they do need to run the library command, and also, if using an R Markdown document that you're giving them as a template, you might have a chunk on top that loads the packages that you want.
Troubleshooting and support
You might also see that it might be going, that RStudio Cloud might be under active maintenance, or that there is an issue that's reported, and there's certain levels, and the team that works, the engineering team that works on RStudio Cloud, if there is actually an outage issue, will provide details there. So that's really the first place to check to see what's up with RStudio Cloud today. Other options, if you're having any sort of either questions about how to do something on RStudio Cloud, or want to report an issue, you can post on RStudio Community, but you can also email support at rstudio.cloud.
What's coming and parting tips
A couple things that are on the horizon for RStudio Cloud, we are working towards providing institution accounts, so this will be especially useful if you are a person who is maybe a course organizer for a course that runs with multiple sections, and you want to be able to manage them in a centralized fashion, you should be able to do that, this is coming down the pipeline soon. Another thing is a dashboard for student usage and engagement metrics, so you can see on a monthly basis maybe how many members you have, how many active projects, what the compute units are, and you'll be able to drill down into these more as well.
We are also, we have a package actually called RS Cloud that is for managing RStudio Cloud spaces with R, it currently requires an API key, which any instructor can request, currently you need to do that via email to support at RStudio Cloud, but soon you'll be able to do so in the UI as well. Some of the attractive features of this package is that it has functions for inviting your students to your workspace and stuff like that, so you can basically get to automate some of those steps, instead of having to click around in the RStudio Cloud UI.
A few parting remarks, I'll start with some tips. First of all, each project is allocated one gig of RAM, which means that you really should test things out before assignments involving especially large datasets. It's important that you give this a try, and one of the things where you may not be able to try is if you have a project that is involving students to go get their own datasets, then you can't necessarily foresee whether or not the memory will be sufficient. Remember that you can increase the memory allocation of a project if you need, but it's important to test things out so you don't run into surprising roadblocks in the middle of teaching.
Another really important thing is that what your students see is not always what you see. Earlier on in the slides, I had the little icons for the teacher view and the student view, and we could see that those look a little bit different. My strong recommendation for you would be to create a secondary account with another throwaway email address you have, and add that account as a student at the contributor level. I would recommend logging on from that account from something like an incognito window, so that you can test to see what your students will see before they actually see it.
Final tips, I think brief screencasts for getting students oriented with the platform. This is especially true if you're remote teaching, and if you don't have a synchronous component to your teaching, or you won't be able to show things on the board like you might when you're teaching in person, I think is really useful. The screencasts that I showed during this webinar are included in this YouTube playlist if you would like to borrow some of them. Many of them are geared towards instructors, but a couple of them were from the student view, so you're welcome to use those if you would like to do so.
Finally, read the RStudio Cloud guide. Inevitably, this webinar is going to get a little bit out of date as RStudio Cloud evolves, but the RStudio Cloud guide that is linked from the sidebar as well is going to be the most up-to-date information on how RStudio Cloud works, because the engineering team adds to that as they build more features out.
On the RStudio Cloud website on the sidebar, you'll also see a link to the primers. These are LearnR tutorials that the RStudio education team has put together. These are free to use, and they are basically a companion to the R for Data Science book by Garrett Broman and Hadley Wickham, so if there are certain things that you want to offload your teaching to, to tutorials others have prepared before, you might be able to see valuable materials here. They don't actually use RStudio Cloud right now, they are just LearnR tutorials that are hosted on shinyapps.io, but they're easily accessible from the RStudio Cloud screen.
And finally, RStudio Cloud is in beta, so it continues to evolve, and we are working on making sure that it's reliable and available. If you have any questions, the place to go is RStudio Community. And for now, RStudio Cloud is currently free to use, and as we learn what it costs to operate the service and how it's used by the community, there will be a paid plan available for it as well. But for the time being, it's free to use, so you can go ahead and set up your class there tomorrow if you want.
Thank you very much for listening in, and I'd be happy to answer any questions now.
Q&A
Oh, so one of the questions says, by any chance, does RStudio Cloud integrate well with Moodle? Currently, there is no specific learning management system integration with RStudio Cloud, but this is certainly in the pathway for development, because we know that this is something instructors are going to want. So what does this mean? That means that currently, there is not a way for you to get all your students that might be on Moodle or any other learning management system used with your university directly into an RStudio Cloud workspace. But as I said, as long as you're able to reach out to them, you can share the workspace link with them, obviously. It's a manual step, but that's how you can get them in.
The next thing probably is submission of work. If you are using a learning management system, it is very likely that you will ultimately want your students to submit their work there. So what I would recommend doing is once students do their work on RStudio Cloud, they can actually export out any files using the files pane in the RStudio IDE, check the boxes for any files they want to submit, click on more, and then export. That will create a zipped folder that they can upload to their learning management system. When it comes to actually grading their work, you may want to choose with what they submitted there, or you may want to simply go into their projects on RStudio Cloud. That's entirely up to you. But if you want an official record of submission, that's what I would recommend doing.
Can the student also have the workspace open when me, instructor, peeks into their workspace? Okay, so that's a really good question. I will start by some terminology there. The workspace is your classroom, and what your student is working on is a project, and it's a project that you're peeking into. Can you be peeking into that project while the student also has the project open? It actually does kick them out. It doesn't necessarily crash their session per se, but it kicks them out briefly. Let me tell you how I like using this.
Usually, I don't just peek into student projects without us getting to a point in the conversation where I feel like that's going to be needed. I try to encourage students on a discussion forum that we use for course Q&A to try to describe the problem that they have as well as possible, but if it comes to the point where I feel like I need to look in, I tell them that I'm about to go into your workspace. You may want to save your files. Not that them not saving the files will be an issue, but students get worried if they get kicked out with unsaved files, so I remind them to do so and then peek into their workspace and then let them know again when I get out of there on the online discussion forum or wherever we're conversing that this is what I'm doing.
Another way I've used this is actually on a synchronous call, something like a Zoom call, for example. I tell the student, okay, I'm going to go into that. It's going to kick you out, but they can actually watch me work in their project and see what changes I've made to debug the issue that they were having.
What's the process for sharing data files? Just load them into the workspace. The process for sharing data files is you load them into the project. You create a new project that is going to be an exercise or an assignment your students are working on, and using the files pane in the RStudio IDE, you can upload any files directly into there.
File size constraints. I think the issue more so than file size constraints is the memory. You may want to think about not just your data file size, but what you're going to be doing with it. If you are simply running dplyr commands, a large data file is not going to be an issue, but if you're going to be running bootstrap sampling on a large data frame with many rows and doing so over tens of thousands of times, then that might actually be an issue. That's why I mentioned you may want to test out what it is that you want to do in terms of the assignment.
Can we run code chunks in Python or C? The answer should be yes. It's running the RStudio IDE, so yes, you can run Python chunks. I'm fairly certain this is true.
You said that sharing a project with students, there are two main ways. In the first way, they have to make a copy of the project in order not to lose the changes. Can you show how to do this? This is the student view of the project. Your student comes to the project that you shared with them. They log on, and I'm going to pause the screen when I need to in a second. Over here, they can see that the project is temporary, and this is blinking. Next to it, they can see a button that says save a permanent copy. When they click on save a permanent copy, that blinking temporary project is going to go away. What that does at that instance is it makes a copy of that project that places them into their own personal workspace that I call the sandbox at the beginning of the presentation.
I had a problem with RStudio Cloud to connect it to relational databases. Let's leave that question up to the RStudio community discussion thread that we'll have available for this, because I don't know off the top of my head, as I haven't tried this myself before in my teaching, so I'm going to hold off on answering the question about using RStudio Cloud and relational databases.
I assume the students can download files locally, as typically they will need to submit assignments in the LMS. That's absolutely correct. They can download the files using the files pane. Check the boxes next to the files that they want to download. Click on more, and then export, which will export them out as a zip file, which I find is an attractive feature, because then they simply need to upload that zip file onto your learning management system. Some of the learning management systems I've worked with in the past sometimes don't like certain extensions, like HTML or R Markdown, they may not know what it is, but usually are okay with zip folders, so it doesn't matter what you have them knit their files to, usually a zipped file upload is something that an LMS accepts.
Do I need a separate space for each group of students if I have more than one? I think this depends on what you mean by group. If the students are all exposed to the same material in the class, and the same assignments, at that point you should not need separate spaces, even if they're, say, in different workshop groups or something. However, if you have more than one classes that you're teaching, so these are going to be separate content for each of the classes, separate assignments, you probably don't want to confuse the students with assignments for another class, in which case you would need to have separate workspaces.
Is it possible to correct homeworks automatically, or do we need to visualize students' answers? There is no built-in autograding that is built into RStudio Cloud. If you are interested in doing autograding with work with R, I think the most promising thing, and you need the student code to be run, I suppose, the most promising thing I can think of is if you teach with version control, you can have your students push their work to a GitHub repository, and you could run continuous integration tools like GitHub Actions on it to provide instant feedback to the students, or to do autograding. This is not necessarily a fully solved problem just yet, but that seems to be the most doable option for going forward on that, but in terms of grading student work on RStudio Cloud, your option is to go into their project and start working through it, or you have them submit the output file through some other means, and then you simply evaluate the output file.
It seems like we do not need to request anything if our group is under 25 students. If your group is under 10 students, you do not need to request anything. Otherwise, by default, in a workspace, you can only have up to 10 students, or I guess nine students, because one of the seats is taken by you.
Another question is from somebody who is teaching Intro to Deep Learning course, and it looks like it could solve a lot of issues if we have six years to use RStudio Cloud, but they will probably need substantial computation time. Is there anything I should take into account specifically on the computation side of things in RStudio Cloud? I think this is where we come to the memory conversation here. You are probably going to need to request higher memory limits, and that is something that I would recommend that you do, is create a workspace, put some of your materials in a project within that workspace, try running through it, and see what is choking. If it is the case that the memory allocated by default, the one gig, is not sufficient, then I would reach out to support at rstudio.cloud to describe your use case. I know that we have, so that would require an increased memory limit, so that is something that you are going to need to request ahead of time. Thank you so much.

