Hi everyone, I'm a relatively new Canvas admin for a primary school in New Zealand. I have to have Canvas up and running by February 2016 and I've got a rather interesting problem.
As our student database doesn't have an API I'm left with using the CSV function to create users and place them in courses. I've got this pretty well set up so it's as easy as saving a CSV export from the student database to a directory on my computer and Excel files looking for the CSV files in that directory automatically generate all the users and courses etc. I then upload the CSVs of those Excel files and Canvas is set to go.
A few weeks ago I was adding sections to the specialist courses I had set up. The way we've opted to set things up here is for specialist courses (those courses such as cooking, art, science, drama, music) to have all the school students enrolled in one course but have the students split into sections for grading purposes etc.
Before I created the specialist courses, all students were added to a home class course (Year 1, Year 2, etc etc) and in that course I added them to a section because there are sometimes multiple Year 1, Year 2 etc courses. The end result might be a Year 5 course containing all Year 5 students, with sections 5A, 5B etc to allow teachers to grade their own students while keeping all course material in one place.
All students in the school are added to all the specialist courses, and added to their own section within those courses. So the end result is a Music course with all students enrolled with many sections such as 1A, 2A, 2B, etc etc, 5A, 5B etc etc.
What I didn't realize is that those specialist course sections shared the same name and SIS ID as the sections in the home Year 1 - Year 8 courses. The result from that was all the students were then automatically enrolled into their sections in the specialist courses, meaning I didn't have to do anything.
However after discussing this with our Canvas team helping us with the rollout, they weren't sure whether this was a good or bad idea as they'd never heard of this being possible let alone being done before. It was a complete accident that I came across this and none of the documentation suggests this could be done or is a good idea.
So I'm asking you whether it is a good idea to have many courses sharing the same sections and corresponding SISIDs. Is it going to come back to bite me or anyone else in the future by doing this? It's not too late to change, but if it doesn't affect anything then it would save me a lot of work when adding a single new student to the system and having to manually place them in the correct specialist course sections, when I can just enroll them in their home course and section, and enroll them in the specialist course only, with the section within those courses then taking care of themselves.
Thanks in advance for any insight!
Solved! Go to Solution.
Thanks for the amount of time you've put into this answer. It's very much appreciated.
This is exactly why I thought I'd ask the community first because no one from Canvas knows and it didn't make any sense to me either. I agree that the red flags are there along the way - common sense for a start, CSV documentation, the potential problems down the track etc. I don't want to cause a headache further down the track for myself or anyone else either. It was a complete accident that I found this out.
I'll create some unique section IDs for the specialist courses and see how I get on. Canvas's grading system isn't compliant with New Zealand's education governing body so all results will get uploaded to our compliant student management system - they won't need to hang around in Canvas for long.
Thanks again for your help!
I think you're reluctantly on board with using unique identifiers, but you made a comment that makes me think you still don't fully grasp the potential ramifications of reusing IDs. It's in reference to the Canvas / New Zealand conflict where you wrote "they won't need to hang around in Canvas for long."
One thing I've learned is to over-engineer things. Even if I think this is a one-time thing and I'll never do it again, it almost always turns out that I need to do it again. Check for error conditions and malformed input as you write code -- it will make things go smoother later on. Run things in the test Canvas environment until you're sure they're working, then switch to the production environment.
To relate that to your situation, you may think that you don't have to worry about conflicts because you'll just delete the information from Canvas and start over each February when the new school year starts. However, deleting things from Canvas only marks them as "deleted" in the database, it doesn't actually delete them from the database. When you ask for the provisioning reports, you can check a box to "Include Deleted Objects" and get a list of all those things you thought were gone.
If you come back later (say February 2017) and want to re-use an ID, it doesn't create a new object, it works on the existing object. So, if I told it to use "5a" as a SIS section code, I can only do that once. If I then delete it in December when your the school year is over and recreate it in February at the start of the next school year, it goes back to the existing object. That's part of why the documentation says it must be globally unique and not be changed.
I think (unverified) that marking a section as deleted will mark all enrollments within that section as deleted, so you'll probably be okay and not end up with two year's worth of actively enrolled in section "5a", but I wouldn't risk it. We have students enroll and then drop all the time and they get deleted (marked as deleted) from the system and we haven't had any problems. But even for tracking and reporting and a bunch of things you can't think of until it's too late, it's better to have unique identifiers.
Even if you don't want to keep the sections and grades around in Canvas, the courses will be hanging around to preserve the content.
The best and safest practice is to use unique identifiers and not reuse them later for something different (even if it's kind of the same).