Tools for Online Teaching

[This article was first published on Life in Code, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Last semester (Fall 2014), I organized and taught an interdisciplinary,
collaborative class titled Probability for Scientists.
Getting 4 separate teachers on the same page was a challenge, but as
scientists we’re used to communicating over email, and CC’ing everyone
worked well enough. Throw in a shared dropbox folder, a shared google
calendar, and a weekly planning meeting, and instructor
collaboration went pretty smoothly.

It was more challenging to organize the class so that we could easily provide students with
up-to-date course information and supplemental material.
We ended up using blogger, which has some key benefits and
disadvantages. It was *really* easy to set up and add permissions for
multiple individuals. This allowed any of us to put up images (for
example, photos of the whiteboard at the end of class) and post
instructions. One downside we heard from students was an apparent
lack of organization. I attempted to organize the blog with
intelligent post labels, along with the “Labels widget” (which shows
all possible labels and the number of posts per label on the right
hand sidebar). I also included the “Posts by Date” sidebar, so all the
content could be accessed chronologically.
I understand their comments, though I’m not convinced that a
single, monolithic page of information is the right direction either.

One feature of blogger that proved helpful was its “Pages”, static
html files or links that appear (by default) at the top of the blog.
These links are always present no matter where in the blog you navigate
to. We added the syllabus and course calendar here. And here’s where
things start to get interesting.

All four instructors need the ability to collaboratively edit and then publish
public-facing material with students (like the syllabus), as edit private course material,
like grades. Dropbox makes a natural choice for private material,
whereas a collaborative source repository like GitHub makes a natural
choice for public material. Personally, I’m more familiar/comfortable
with Google Code, but I
don’t think the choice of services here is material. [Sidenote:
If you have a pro GitHub account, the choice seems easy: use a private GitHub repo.]

Using a public git repo gave us a few things that I really
liked. First off, our class schedule was a simple HTML table in the
repo that we pointed at with a static link via the Pages widget, above.
When I needed to update an assignment due date, I did a quick
edit-and-commit on my laptop, pushed it to the archive, and magically appeared
on the blog.
If several instructors are simultaneously working on course material,
this essentially provides an audit trail of who did what. This is kindergarden-level
stuff for software developmers. But these are tools that teachers could benefit from
and aren’t very familiar with. For example, getting
colleagues to set up git represents a non-trivial challenge. Nonetheless,
there are other benefits of learning git if you’re a scientist (that I won’t address
here, though see here for some thoughts).

In our class, I also used R for data visualizations.
I let the awesome knitr package build the
appropriate .png files from my R code (along with pdfs for download,
if needed). Again, it sounds simple, but adding the generated figures
to the git archive allowed me to quickly link to them in blog posts,
and then update them later if needed.

I would have preferred having the blog posts themselves under revision
control (only “Pages” can point to an
external source html without javascript, which I didn’t have time for).
But, for the simplicity of setup and the low
(e.g. free) cost of use, I didn’t find posts to be much of an issue.
Blogger allows composition in pure html, without all the *junk*, which helps.
But having to re-upload and link a figure every time I find an error?
Definitely a pain.

For this class, we also set up an address that pointed to my
email box. This allowed me to publicly post the class address without
fear of being spammed forevermore, and allowed me to easily identify
all class email. Having a single instructor responsible for email
correspondence worked well enough. As an early assignment, students
were asked to send a question to the class email address. This
is a nice way to get to know folks, and incentivize them to go to
“digital office hours”, e.g. ask good questions over email.
We did have some issues with towards the end of the class.
This *sucks* – students panic when emails get lost, and it’s hard to
sort out where the problem is. Honestly, I don’t know the answer here.

As a sidenote, I pushed the use of Wikipedia (WP) heavily in this
class, and referred to it often myself. This is not possible in all
fields, but WP articles in many of the hard sciences are now both
technically detailed and accessible. Probability and statistics
articles are some of the best examples here, since the “introductory
concept” articles are used by a large number of individuals/fields,
and aren’t the subjects of debate (compare this with the WP pages of,
for example, Tibet or Obama). I also discovered WP’s “Outlines”
pages for the first time. If you ever use statistics, I strongly
recommend spending some time with WP’s Outline of
. It’s epic.

One final tool we used quite a bit was LimeSurvey. As I was
planning the class, I went looking for an inexpensive yet flexible
survey platform. I was generally disappointed by the offerings. My requirements included
raw data export and more than 10 participants; these features tend
*not* to be free, and survey tools can get pricey. Enter
LimeSurvey (henceforth LS). It’s open source, well-documented,
versatile, and simple to use. I was reluctant to invest *too* much
effort in tools I wasn’t sure we’d use, but I got LS running in less
than 2 hours. To be fair, our lab has an on-campus, always-on server,
and apache2 is already installed and configured. This would have been
an annoying out-of-pocket expense had I needed to rent a VPS, though
you can now get a lot of VPS for $5/mo. [sidenote: getting our campus
network to play nice with custom DNS was a whole other issue…]

LS allowed me to easily construct data entry surveys, allowing each
student to enter, for example, their 25 flips of 3 coins, or their
sequence of wins and losses playing the Monty Hall problem. Students
can quickly enter this data from their browser at their convenience.
At its best, visualizations of the class data can give students a sense
of ownership and purpose of in-class exercises.
LS also allowed us to conduct initial background surveys, as well as
anonymous, customized class “satisfaction” surveys mid-course to find
out what was working and what wasn’t. We ran into a few administrative
issues with LS, but it’s an overall powerful and stable data
collection platform. Students seemed happy with it, and it
provided us with valuable feedback.

What would I do differently? I failed to set up an email list early
on. It would have been trivial using, e.g. Google Groups. At the time, it
seemed redundant, both for the students and us. Didn’t they already
have the blog? In retrospect, it would have proved useful at several
points to communicate “New Blog Post” or “Due Date Changed, check
calendar”. I’ve learned this semester to expect that spoken instructions
are not necessarily heeded, and that receiving
administrative details in writing from multiple sources (blog,
calendar, mailing list) is a Good Idea ™.

Along this vein, a minor needed improvement is breaking making a
separate table for assignments. I originally combined
assignments with the course calendar in the interest of simplicity, giving
students all the relevant information in one place. In the end, it
was just confusing.

Overall, the class went very well. We have received positive feedback
from the students, and we now have a detailed digital record of the
course. PDFs of their final project posters are now in the
archive, where they will live in perpetuity. Personally, I’m not
ready to teach a MOOC
yet, but I’m sold on digital tools as useful supplements to in-class
material. They allowed me to spend less time doing more. These tools helped
the class “organize itself”, and reduced communication overhead between instructors.
To older or less technically-inclined teachers, some of this
might seem difficult or confusing. On one hand, you really only need *one* instructor
to coordinate the tech – it’s not very hard for instructors to use the tools once they’re set up.
On the other hand, some of the above
pieces are very easy to implement, and support from a department
administrator or technically-inclined teaching assistant (TA) might be
available for more challenging pieces. An installation of LS shared
across a department, for example, should be trivial for any department
that has its own linux server (e.g. math, physics, chem).

In my mind, a key goal here is that technology not get in the way.
Many of the commercial “online learning products” that I’ve seen
adopted by universities make simple task complicated, while lacking the flexibility.
In trying to do everything
for everyone, they often end up doing nothing for anyone (or take a
high level of skill or experience to use effectively). I far
preferred using several discrete tools, each of which does a single
job well (class email, blog to communicate, git repo to hold files).

Are there any interesting tools worth trying out next time? I wonder
how a class twitter-hashtag would work…

To leave a comment for the author, please follow the link and comment on their blog: Life in Code. offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)