No, but OTOH you won't be violating anyone's privacy, either! More on this below...
Also any updates should be applied to ALL the versions of the course manually.
Are you identifying this as a feature or a problem? Presumably, a problem -- I'm guessing you want to be able to update all classes at once, like a true object in OOP terms.
If we are offering a self-study courses (or courses for individuals to start and end any time), do we need to create one for each individual?
What's the difference between this and creating one class in which anyone can enroll?
What you might find useful is a meta-class in which resources needed for ALL courses of the same type are stored. Then the specific classes would just reference the metaclass when it comes to discusssions, resources, etc. that you want to be available to all instances of that generic class. This is probably very confusing to the user, tho, so I "hide" this from them (create hard links to resources -- yes this defeats the updating goal, but that's not why I do the metaclass).