Timewise, the span of our crash courses and training covers from 2 to 4 days, typically with max 20 participants, whereas the schools we run for post-graduate students (around 30 students per edition) last a couple of weeks at most. Our schools are very intensive with lots of topics and code assignments.
Differently from training and crash courses, we have the need for archiving the schools’ assignments for a possible later retrieval as we give credits on their basis.
I have been always assuming that having starter code and courses material centralized in one organization is very wieldy for us. This is only a matter of - let’s say - personal preference. Any time we launch new training or school, we simply create a specific repository within the organization to host the new edition in terms of accompanying material (e.g. website, wiki, syllabus, events, forum, slides). We mostly take the repo of the previous edition as a template and then we populate the new repo with the necessary modifications.
At this stage, we finally decide whether hosting the assignments in the organization or spawning different classrooms in different organizations. As said before, the choice is based merely on the number of expected assignments (limited for training, huge for schools) and on the requirement of officially storing students’ results. The overhead of managing multiple organizations (required for schools to avoid clutter) is cleary spared with training.
I have converged to this policy for three years by now and it’s been working perfectly for our purpose.