The one thing to understand about a `Course` is that it is a template. What you already understand about a template is that for the most part it is static and unchanging. When a student registers, they are not registering into a course. They are registering into a section of the course (hence the term `Course Section`).
One course can have many sections (iterations) of itself throughout multiple terms. Although a `Course` is static, there will come a time when it may need to be deactivated or deactivated and recreated.
When a `Course` is no longer being offered (meaning no other sections will be created from it), then you will want to deactivate the `Course` by putting it into an inactive status and add an end date. The other side of the coin is when a `Course` needs to be refreshed.
Depending on your institutions policy on “significant changes”, you may only have to make a change to the `Course` instead of creating a new one. If the change is significant (i.e. course title change, course description change), then you might want to think about creating a new version of the `Course` for historical purposes. But again, this depends on your institution’s policy.
When a significant change occurs, you will deactivate the old `Course` and then create a new version of it with the same “course code”.