flowchart LR T["Starter files<br/>(set up by me)"] -->|you accept the link| R["Your repository<br/>on GitHub"] R -->|clone, once| L["Your laptop<br/>RStudio project"] L -->|push, as often as you like| R R -->|I read it here| M["Me"]
Handing in with Classroom 50
From the assignment link to your submission, step by step
Reports 2 and 3, the final exam, and the practice assignment from session 4 are handed in through Classroom 50. This page is a manual that walks you through this process. It works the same way for every assignment — only the link and the deadline change.
You accept a link, Classroom 50 creates a private repository for you with the starter files in it, you clone it onto your laptop, and whatever you have pushed before the deadline is your submission.
How it fits together
Four things are different from the repository you made yourself in session 4:
| Session 4 exercise | Classroom 50 | |
|---|---|---|
| Who creates the repository | You, with usethis::use_github(private = TRUE) |
Classroom 50, when you accept the link |
| Where it lives | github.com/<your-username>/… |
github.com/applied-data-science-euf/… |
| Who can see it | Only you | Only you and me |
| How it gets onto your laptop | It started there | You clone it |
What “cloning” means
To clone a repository is to make a complete copy of it on your laptop — every file and its whole history — that stays connected to the original on GitHub. Because of that connection, you can Push your commits up to GitHub and Pull other changes down. In Git’s words, the copy on GitHub is your remote, called origin.
You clone a repository once. After that you work in the folder it created and never clone it again on that laptop.
GitHub also offers Download ZIP. That gives you the files, but no history and no connection: you cannot push from it, so nothing you do in it can ever be handed in. Always clone.
Once per course
You do these four things once, at the start. After that, every assignment is only the steps in the next section.
1. Have a GitHub account
Register at github.com — the free account is enough. Using your university email address also lets you claim the free GitHub Student Developer Pack.
Choose a username you are happy for me to read: it appears in the name of every repository you hand in.
2. Send me your GitHub username
I can only invite you once I know your username. Send it to me as a Moodle message, with your full name — the username, not your email address and not your password.
3. Set up Git on your laptop
Git installed, RStudio connected to GitHub, a token stored with gitcreds. That is the setup tutorial from session 4. To check it still works, run this in the console:
usethis::git_sitrep()and look for your Name, your Email, and a line saying the personal access token for https://github.com is <discovered>.
4. Accept the invitation to the organisation
Once I have your username, GitHub sends you an email: “@graebnerc has invited you to join the applied-data-science-euf organization”. Click Join @applied-data-science-euf.
No email? Open https://github.com/orgs/applied-data-science-euf/invitation while signed in to GitHub — the invitation waits there too.
If you are too late, tell me on Moodle and I send a new one. You cannot accept an assignment until you are a member of the organisation.
For every assignment
Step 1 — Accept the assignment
- Open the assignment link I post on Moodle. It opens
classroom50.org. - Click Sign in with GitHub. The first time, GitHub asks you to Authorize Classroom 50 — do so.
- Check that it is the right assignment, then click Accept assignment.
- Wait while the setup checklist runs. It takes a few seconds.
- Click Open repository.
You are now looking at your repository on GitHub. Its name is made of the course, the assignment and your username, for example:
applied-data-science-euf/applied-data-science-ba-takehome-2-amusterfrau
It already contains the starter files — usually a .qmd, a data/ folder, an .Rproj file, a README.md and a .gitignore. For the reports it also holds the task sheet and the hints, as TASK.md / TASK.pdf and HINTS.md / HINTS.pdf: GitHub shows the .md files formatted when you click on them.
All your assignments are listed at https://classroom50.org/applied-data-science-euf/applied-data-science-ba → View assignments. Each shows Not accepted, Accepted or Submitted, and its due date.
Step 2 — Clone it in RStudio
- On your repository’s GitHub page, click the green <> Code button. Make sure the HTTPS tab is selected and click the copy icon next to the URL. It ends in
.git. - In RStudio: File → New Project… → Version Control → Git.
- Repository URL: paste the URL. Project directory name fills itself in.
- Create project as subdirectory of: click Browse… and choose where the folder should go — for example a folder for this course.
- Click Create Project.
RStudio downloads the repository and opens it as a project. You know it worked when the Git tab appears in the top-right pane and the project name in the top right corner of RStudio is your repository’s name.
Not inside another RStudio project or another Git repository, and preferably not in a folder that OneDrive, iCloud or Dropbox synchronises — they fight with Git over the same files.
This does the same as the five clicks above. It is more copying — the repository’s name and a folder on your laptop — so the menu is the easier route. Run it from the console with no project open (or from an unrelated project); it opens the new project in a new RStudio window.
usethis::create_from_github(
"applied-data-science-euf/applied-data-science-ba-takehome-2-amusterfrau",
destdir = "~/Documents/AppliedDataScience"
)Use your repository’s name, and a folder that exists on your laptop.
Step 3 — Work, and push as you go
From now on it is exactly the loop from session 4:
- Open the project — always the
.Rprojfile, never the.qmdon its own. - Pull first.
- Work. Render to check that it still works.
- In the Git tab: tick the files you changed (Stage), read the Diff, Commit with a message that says what changed.
- Push.
Every push is saved on GitHub, and only the last one before the deadline counts. A commit you have not pushed is on your laptop only — I cannot see it, and it does not count.
The .gitignore in the starter files already keeps the rendered .html and the _files/ folder out of the repository. Do not add them by hand.
Step 4 — Check that it arrived
Open your repository on GitHub in the browser and reload the page. Your latest changes, and your commit message, should be there. Click Commits to see your whole history.
On classroom50.org, the assignment’s status changes from Accepted to Submitted.
The deadline
The due date is on the assignment page and on the task sheet.
- What counts is the last commit you pushed before the deadline.
- You can still push afterwards — GitHub does not stop you — but those commits are recorded as late, and they do not count.
- Your repository stays yours to read and clone after the deadline.
- If you use your revision, you push the revised version to the same repository. Those pushes show as late on Classroom 50 — that is expected. For a revision, what counts is the last commit before the revision deadline I give you on Moodle.
In the final exam
The exam works exactly like an assignment, with three differences.
- The link only works once the exam starts. Before that the assignment is locked — This assignment is locked means: not yet. I post the link at the start.
- There is no time to fix your setup during the exam. Before the exam day, check that you are a member of the organisation and that
usethis::git_sitrep()still finds your token. The practice assignment and Reports 2 and 3 are your rehearsals. - At the end, your repository becomes read-only. When time is up I close the assignment, and from then on every push is refused. Push every 15–20 minutes while you work, and once more before the end — a commit that is still on your laptop is not handed in.
Feedback and results
Your repository has a pull request called Feedback, opened automatically when you accepted. That is where I leave comments on your work, including on individual lines.
- Do not close or merge it. It updates itself every time you push.
- You are not notified automatically when I comment. I tell you on Moodle when feedback is there; you read it in the pull request’s Conversation and Files changed tabs. Clicking Subscribe once may also get you an email.
Your result — passed or not — is not shown on GitHub or Classroom 50. You get it on Moodle, as for every report.
Do not
- Rename, delete or transfer your repository, or change its visibility
- Add other people to your repository — reports are individual
- Close or merge the Feedback pull request
- Clone it a second time on the same laptop and work in two copies
- Download it as a ZIP instead of cloning
When something goes wrong
| What you see | What it means | What to do |
|---|---|---|
| Not a member yet on the assignment page | You have not accepted the organisation invitation | Accept it (see above), then click Check again |
| This assignment isn’t available to you / Assignment not found | You are not on the class list, or the link is wrong | Moodle message to me, with your GitHub username |
| This assignment is locked | It has not started yet, or has ended | Check the date and time on Moodle |
| No Version Control option in New Project | RStudio cannot find Git | Setup tutorial, section on installing Git; then restart RStudio |
| RStudio asks for a username and password | Your token is missing or expired | Cancel. In the console: usethis::create_github_token(), then gitcreds::gitcreds_set(), then try again |
| Repository not found when cloning | Wrong URL, or your token belongs to another GitHub account | Copy the URL again from the Code button; run usethis::git_sitrep() to see which account your token belongs to |
| Push rejected: Updates were rejected because the remote contains work that you do not have locally | GitHub has a commit your laptop does not — you edited on GitHub or on another machine | Click Pull, then Push |
| No Git tab | You opened the .qmd rather than the project |
Open the .Rproj file |
If something technical stops you from handing in through GitHub, submit through Moodle before the deadline and tell me. A tooling problem will never cost you a submission.