GitHub Classroom instructions
Table of Contents
Some courses use GitHub Classroom as a place where assignments will be returned. In practice, students will have a single regular Git repository, which will be updated during the course. Often, there will be template files, which will be filled as instructed.
Workflow #
Enrol in the course
Find the course’s Moodle page from University’s Moodle (https://moodle.oulu.fi/)
Find a link where you can receive and create a private repository containing all the return template folders. You are expected to answer for given templates and store your actual work in this repository.
Create a GitHub account, if you don’t have one already, and create this private repository from the link.
You can see the deadlines in Moodle’s return boxes. Modifications in the repositories are not restricted, but do them in time.
Complete as many tasks as you wish and update your repository accordingly. Check the grading table found in each week’s instructions on what you have to complete to earn the grade of your choosing
Push your changes to your repository before the deadline, and return the link to your repository to the corresponding return box of the exercise week in Moodle.
Check the cheat sheet if you need a refresher on how to use Git. The simple workflow to add files, mark changes and push them to remote from the command line is:
git add </path/filename>
git commit -m "<message>"
git push
You can also use the graphical interface of GitHub, but this might not be as convenient as it seems. We recommend instead installing Git for your machine, and modifying Markdown files either by using VSCode or the fully open-source version VSCodium.
Authentication #
When using GitHub from the command line, some level of authentication is required. If you are using two-factor authentication (2FA, you should!), basic username and password authentication will not work. Instead, you either need to use SSH or PAT tokens.
We recommend that you use SSH keys. Follow GitHub’s tutorial over here. Especially check sections “Generating new SSH key”, “Add a new SSH key” and “Test your SSH connection”.