pba-content
pba-content copied to clipboard
[WIP] Protocol to hand out assignments vs. exercises
Primary difference is if you want students to be able to see each others' work or not.
Make instructions for:
- [ ] Individual, graded activities
- related to #373
- Github classroom -> link to get private repos for each student.
- Updating the base template students have is not easy! patch file flow needs to be refined.
- NOTE: So classrooms got the deadline in the wrong timezone 🤦 1 hour latter than intended. I think this is "automagic" based on the perceived time by github... maybe the VPN I was using had the wrong zone. Be sure to double check the intended dealine and timezone by creating an assignment, and checknig the deadline on the inviation page after you accept.
- [ ] Group or individual exercises / workshops / games.
- Template master repo -> cohort base repo named
pba-<cohort ID>-<master template name>-(e.gpba-ucb-frame-less-node-template). - If needed, then students use github username as their "main" branch to work, and everyone can see everyon eelses branches and do not push to
main! This means that students possibly could mess with other students branches, but should be easy to spot... unless they really hack around with git to do bad things... on the other hand allows for group work on a common branch - Able to push updates to
mainthey can merge into their work.
- Template master repo -> cohort base repo named
Followup on new student facing how-tos to help them learn best practices:
- [ ] #493
- [ ] #494
- [ ] websocat minimal intro, perhaps https://wiki.polkadot.network/docs/build-node-interaction#polkadot-rpc would work.
TODO for content:
- [ ] standardize all repo naming conventions
- [ ] document
- [ ] ...
Setting a deadline adds a top banner button in all generated repos we can easily :point_up: to before the header or otherwise reference knowing that it exists:
TIL https://docs.github.com/en/education/manage-coursework-with-github-classroom/teach-with-github-classroom/using-github-classroom-with-github-cli for a handy CLI tool to assist in managing all this stuff
Likely we want to use https://embarkstudios.github.io/cargo-deny/ before starting anything else in grading to ensure that students have not included extra deps. Included in assignments configured such that it whines/blocks them from adding these in the first place.
Perhaps also a good learning opportunity about this tool to warn/block using known security issues in crates IIUC (new tool to me, I think it can help here.)
Request to help from upstream here:
- [ ] https://github.com/EmbarkStudios/cargo-deny/issues/529
CLI tool is... ok https://github.com/github/gh-classroom/issues/15 https://github.com/github/gh-classroom/issues/16
To download all students, as by default: the per-page and page flags will allow access to more than 30:
Usage:
classroom clone student-repos [flags]
Flags:
-a, --assignment-id int ID of the assignment
-d, --directory string Directory to clone into (default ".")
-h, --help help for student-repos
--page int Page number (default 1)
--per-page int Number of accepted assignments per page (default 30)
Note that if you share a template repo, unless settings can be changed to disallow it, students can generate a template WITHOUT using classrooms and thus be missed in the grading! So rather, do not publish the cohort template used in the assignment at all. Shawn made his own assignment open to the cohort team for showing live-code examples helping the students through it for example, that could be a good pattern.
https://github.com/Polkadot-Blockchain-Academy/frameless-node-template--master/issues/4 - more gitignores
Not quite complete - but work started in UCB to move towards this idea, I need to make this much more concrete from lessons learned there.