You may consider to use meta-course for common data (ressources and activities) and true courses for specific data.
A meta course inherits students from parent courses but has is own space for ressources and activities, so each student of any parent course can access to common data, with correct rights and capacities.