Polkadot-Blockchain-Academy / pba-content

An intensive academic program teaching Blockchain, Substrate, and Polkadot.
https://polkadot-blockchain-academy.github.io/pba-content/
MIT License
57 stars 27 forks source link

[WIP] Protocol to hand out assignments vs. exercises #492

Open nuke-web3 opened 1 year ago

nuke-web3 commented 1 year ago

Primary difference is if you want students to be able to see each others' work or not.

Make instructions for:


Followup on new student facing how-tos to help them learn best practices:


TODO for content:

nuke-web3 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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:

nuke-web3 commented 1 year ago

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

nuke-web3 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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

nuke-web3 commented 1 year ago

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.