FHNW (syspr) Meta

Setup used to teach module syspr, CC BY-SA @tamberg for FHNW.

GitHub Classroom

GitHub Accounts

GitHub Repos Teacher

Workflow Teacher

Creating Original Content (once)

Can be private, if author has private repos.

To each original repository, add the following note:

Note: Do not work on this repository right away.
Check existing Forks, to find the specific repository for your class.

> *Note: Do not work on this repository right away.*<br/>
> *[Check existing Forks, to find the specific repository for your class.](../../network/members)*

Or, in German

Achtung: Arbeiten Sie nicht direkt auf diesem Repository.
Prüfen Sie die vorhandenen Forks, um das Repository für Ihre Klasse zu finden.

> *Achtung: Arbeiten Sie nicht direkt auf diesem Repository.*<br/>
> *[Prüfen Sie die vorhandenen Forks, um das Repository für Ihre Klasse zu finden.](../../network/members)*

Creating a Fork per Class

https://github.com/tamberg/fhnw-syspr-work-00 => click fork button, chose org

Cloning the Fork

$ git clone https://github.com/fhnw-syspr-3ia/fhnw-syspr-work-xx

Adding Upstream to Fork

https://help.github.com/articles/configuring-a-remote-for-a-fork/

$ git remote -v
$ git remote add upstream https://github.com/tamberg/fhnw-syspr-work-xx
$ git remote -v

Syncing Forks with Upstream

https://help.github.com/articles/syncing-a-fork/

$ git fetch upstream
$ git checkout master
$ git merge upstream/master
$ git push

Solving Merge Conflicts

$ nano README.md
$ git add README.md
$ git commit
$ git push

Adding a GitHub Classroom Link

To each class specific fork, add a note with the assessment URL

Note: Do not work on this repository right away.
Create your personal copy by clicking this GitHub Classroom link.

> *Note: Do not work on this repository right away.*<br/>
> *[Create your personal copy by clicking this GitHub Classroom link](https://classroom.github.com/a/TODO).*

Or, in German

Achtung: Arbeiten Sie nicht direkt auf diesem Repository.
Erstellen Sie eine persönliche Kopie, mit diesem GitHub Classroom Link.

> *Achtung: Arbeiten Sie nicht direkt auf diesem Repository.*<br/>
> *[Erstellen Sie eine persönliche Kopie, mit diesem GitHub Classroom Link](https://classroom.github.com/a/TODO).*

Disabling / Enabling the Classroom Link

Make sure to disable the Classroom Link in the settings until the repository is in its final version. Once a student copies the repository using the Classroom Link there's no way to update the student's copy.

Workflow Students

Playing with Code Examples

$ cd ~
$ git clone https://github.com/fhnw-syspr-3ia/fhnw-syspr

Changes remain local, forking / pull requests possible to enhance examples.

Updating Slides and Code Examples

$ git pull

Ideally once a week before lesson starts.

Working on a Hands-on Assignment

https://github.com/fhnw-syspr-3ia/fhnw-syspr-work-00 => click classroom link => get personal repo

$ cd ~
$ git clone https://github.com/fhnw-syspr-3ia/fhnw-syspr-work-00-USER
$ git add FILE
$ git commit -m "fixed all bugs"
$ git push

Questions or review request per GitHub issues, right on the personal repo.

Beware: There's no easy way to update the personal repo copies.

Can be private, request unlimited private repos from GitHub and add organisations.

Tools Teacher

  • GitHub Classroom
  • GitHub
  • Git

Tools Students

  • GitHub
  • Git

Material Students