FHNW (syspr) Meta
Setup used to teach module syspr, CC BY-SA @tamberg for FHNW.
GitHub Classroom
- https://classroom.github.com/classrooms
GitHub Accounts
- https://github.com/tamberg (author, teacher)
- https://github.com/fhnw-syspr-3ia (org, per class)
- https://github.com/fhnw-syspr-3ib
- https://github.com/USER (each student)
GitHub Repos Teacher
- https://github.com/tamberg/fhnw-syspr (slides & code examples, per module)
- https://github.com/tamberg/fhnw-syspr-work-00 (hands-on exercises, per week)
- https://github.com/fhnw-syspr-3ia/fhnw-syspr-work-00 (fork, per class)
- https://github.com/fhnw-syspr-3ia/fhnw-syspr-work-00-USER (generated copy, per student)
- ...
- https://github.com/fhnw-syspr-3ib/fhnw-syspr-work-00
- https://github.com/fhnw-syspr-3ia/fhnw-syspr-work-00 (fork, per class)
- https://github.com/tamberg/fhnw-syspr-work-01
- https://github.com/tamberg/fhnw-syspr-work-02
- https://github.com/tamberg/fhnw-syspr-work-03
- ...
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
- Raspberry Pi Zero W, e.g. https://www.brack.ch/sertronics-entwicklerboard-734532 ~24$
- SD Card & Reader, e.g. https://www.brack.ch/kingston-microsdhc-karte-mobility-166751 ~9$
- Micro USB Cable, e.g. https://www.brack.ch/delock-usb-2-0-kabel-a-microb-430829 ~8$