pba-content icon indicating copy to clipboard operation
pba-content copied to clipboard

[WIP] Protocol to hand out assignments vs. exercises

Open nuke-web3 opened this issue 2 years ago • 8 comments
trafficstars

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.g pba-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 main they can merge into their work.

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
  • [ ] ...

nuke-web3 avatar Jan 19 '23 17:01 nuke-web3

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:

image

image

nuke-web3 avatar Jul 10 '23 17:07 nuke-web3

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

nuke-web3 avatar Jul 10 '23 18:07 nuke-web3

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

nuke-web3 avatar Jul 13 '23 21:07 nuke-web3

CLI tool is... ok https://github.com/github/gh-classroom/issues/15 https://github.com/github/gh-classroom/issues/16

nuke-web3 avatar Jul 17 '23 07:07 nuke-web3

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)

nuke-web3 avatar Aug 06 '23 21:08 nuke-web3

image

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.

nuke-web3 avatar Aug 06 '23 21:08 nuke-web3

https://github.com/Polkadot-Blockchain-Academy/frameless-node-template--master/issues/4 - more gitignores

nuke-web3 avatar Aug 07 '23 02:08 nuke-web3

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.

nuke-web3 avatar Aug 21 '23 22:08 nuke-web3