I have to start with a shameful admission: I'm not a bright shiny object. 
So, fwiw, asking shiny to be the URL-server might not be the most straightforward approach. The simplest would be
git pull origin master
workflow, but the overhead setup is too expensive.
Two alternatives come to mind:
- A list bot to provide an URL update for the csv for the current assignment, in the form of a
read.csv(the_url)
# or better readr::read_csv()
to be cut and pasted into the student's R
or
- a
cgi (do they still call them that?) to do the same thing with access through httr or rvest