A Brand New Batch: Introducing Batch Course Upload
Published December 25, 2024
Add Multiple Courses with a Single Upload
The Batch Course Upload
In our ongoing mission to make life easier for administrators and their Sona site users, we’ve added another batch option to streamline the course addition process. If you are familiar with Batch User Import, the new Batch Course Upload has a similar, if simpler, structure. If you aren’t, familiar…well, it STILL has similar structure. Either way, we’ll show you where to find this option and how to use it.
Where to Start
In order to use the Batch Course Upload, you’ll need to locate it first. Fortunately, this even easier than using the feature itself! Start by selecting “Course Listings” from the Set Up dropdown menu:
The Batch Course Upload option is on the Advanced Options table:
This will bring you to the Batch Course Upload page:
Take a minute to examine this image, especially the part about “Example CSV format.” First, the reason for nearly duplicate example listings is not simply because this process works with and without quotation marks around each field.
If the course name you use has a comma in it, e.g., Multivariate Calculus, with Differential Forms, you need to enclose the course name in quotations so that the comma is read as text (recall that CSV stands for “comma-separated values”; if the comma is in the course name, we don’t want it to be interpretated as a separation).
Second, the example shows you where we’re heading. We’ll want to create a list of course names with the other required values so that we can paste them into an input box that takes CSV formatted text. That’s how we’ll be creating multiple course listings at once, and, not coincidentally, this brings us to our next step.
Prepare for Upload!
If you really wanted, you could theoretically just start typing CSV-type information into the page to perform the batch upload process for your desired courses. We don’t recommend this. It’s easier to make errors this way, and it is usually less convenient. We recommend you create a spreadsheet.
Creating a spreadsheet
You’ll want to have (some variation of) the following columns, ordered from left to right:
- Course name
- Credit Requirement
- Online per-Course Credit Limits [only if enabled]
- Selectable Course (0 for no, 1 for yes)
- Course Instructor ID (optional, with a maximum of two per course)
Before we take a look at an example, there’s one item on that list that may be unfamiliar to some. If we don’t mention it now, the Online per-Course Credit Limits may be confusing for those who don’t have these enabled. This is for several reasons, including the fact that the Batch Course Upload page changes slightly depending on whether or not this setting is enabled. If your site doesn’t have these limits, then you’ll see what is shown in this image above.
Those with online credit limits enabled and the per-Course option selected, on the other hand, will see something a bit different:
The highlighted areas are specific to sites with per-course credit limits enabled. If you see these, then your site has online credit limits enabled AND set on a per-course basis.
As we noted already, you could simply enter in each course’s information directly into the input box. It may be easier, however, to put the information into a spreadsheet first. For example:
We’ve left off column headers in the example above because they aren’t needed. To make sure it’s clear, though, column A in the image has the course names. Keep in mind that these are examples, and not just the particular course names we’ve used. In fact, you may find this feature particularly useful to create a bunch of listings for the same courses for the same semester or year but different section numbers, e.g.,:
- SOCIOL 280 Methodology, Fall 3099, Sec. 01
- SOCIOL 280 Methodology, Fall 3099, Sec. 02
- SOCIOL 280 Methodology, Fall 3099, Sec. 03
…
We went with easily distinguishable course names instead of something like the above, where you have to distinguish courses by a single digit.
Column B in the example shows the required credits for each course. Please note that, just as with a single course added to your site’s Course Listings, this doesn’t include extra credit. If a course allows only extra credit for research participation, put “0” here.
Column C shows the online credit limits for each course. If you don’t see these, it’s because your site doesn’t use per-Course online credit limits. In this case, the next column would be your “Column C”.
Column D in the example displays a 0 or a 1 for each course. This indicates whether or not the course is selectable. Selectable courses are those courses participants can choose from when they create their accounts. In the example image, ALL of the courses except one are selectable (all but one have a “1” in the third column). The only course not selectable is the final one (which isn’t really a course at all, but “courses” are often ways of grouping your participant pool and need not correspond to a specific course or section).
Finally, you can add the User IDs for a course’s instructor if desired:
Note that in the image above, Column D contains instructor IDs, NOT per-course online credit limits. The fields always go in a particular order, starting with course names. However, because not all fields are required, where in the order a particular field shows up can change, as it does here when have instructor IDs instead of online credit limits. We’ll go over this and similar potential issues in the final section below on troubleshooting
Save as .CSV & Open as Text
Once you have your courses listings in a spreadsheet, you can save yourself some additional time and effort by saving a copy of the spreadsheet in CSV form (it doesn’t need to be a copy, but we find it’s best to save it first in the default form, such as .xlsx, and then save it again as a .CSV file).
To do this, select “Save As” and choose .csv as the filetype. Once you’ve saved a copy, open the file with a simple text editor such as Notepad or TextEdit:
Why do this? Because opening a .CSV file in a simple text editor will (typically) let you view the contents in precisely the form you’ll want for the next step:
It’s worth recalling here the more “realistic” example of a listing with a course name like Marketing 280, Sec. 10, 2050. If your course name has a comma in it, then you’ll need to enclose it in quotation marks: “Marketing 280, Sec. 10, 2050“.
If we added this course to our example in Notepad or TextEdit, it would look like this:
Leave this text editor open so that you can copy the contents in the next step!
Paste and Proceed
If you haven’t already, make sure that you have your browser open to the Batch Course Upload page. It should look like this:
Once you have the page opened, copy the CSV formatted text from your text editor into the textbox:
Note that we’ve included both per-course, online credit limits AND our new “comma course” in the example above. This is so you can see how things look with this additional information, but it won’t prove confusing now if you don’t need it.
Once you’ve pasted the course information, you’re good to proceed! Don’t worry about checking to make sure everything is perfect just yet, as we’ve built that step into the process. Just click on the Batch Upload button:
Check Courses, then Add Courses
We’re almost there. The last step in the process is to make sure that it’s the last step. In other words, we want to confirm that we’ve entered everything correctly so that we don’t have to delete courses individually due to errors after we went through all the trouble to create multiple course listings simultaneously.
Luckily, the process has a built in review process that warns you of errors (well, perhaps “luckily” isn’t the word for a step in the process we added specifically for this purpose). It’s also a chance for you to check a preview of the results for issues like an accidental mistake with a course name or credit requirements. Below is an example of this review step:
If everything looks good, and the “Error Information” column in the preview table displays no warnings, you can go ahead and click the “Batch Upload” button again.
This will take you back to the course listings table, with a system message indicating success:
And that’s it! You’ve just completed in one go what could have taken hours! Ok, maybe not hours, but in theory it could have, and it doesn’t take a lot for it to seem like hours.
Troubleshooting Tips
Before we wrap things up and leave you to add hundreds of courses with reckless abandon caught up in the crazed excitement of the Batch Course Upload, we want to include a few tips on what can go wrong and what to do about it.
Examining the Error Information Column
We can start with several issues at once thanks to the built-in check system. That’s why the preview table has an Error Information column, after all. We don’t want to overload you with information, so for the moment we’re going to go back to our earlier course listings without per-course online credit limits and without the example course name containing commas. That still gives us a lot to work with:
The most common problem is missing information. Maybe you left out the “selectable” field, or maybe you left off the credit requirements, or maybe both. The system will catch any and all of these. You can fix them in the textbox below the preview table, click the Batch Upload button again, and the system will generate another table for you to check over.
This is both important and useful, which makes it worth emphasizing. Let’s say you entered in your course listings and found (much to your chagrin!) that there were several areas. You immediately go about fixing these in the input box, but before you click the Batch Upload button again, a thought occurs to you: “What if I haven’t fixed all the issues, or worse still created new ones? Do I have to start over if I want to look a new review table?”
The answer to that last question (do you have to start over) also addresses the other. If you make edits to the “Paste CSV Data” input box, clicking the Batch Upload button again will let you review your changes. If you make new edits, you’ll get to review these next. Only once you stop changing the input will the system determine you’re done reviewing and create the course listings.
Now that we know it’s “safe” to make changes directly in the input box, it’s time to look at what changes we need to make and how we’ll now.
Examining the Error Information Column
Obviously, the Error Information column plays a central role here. But it’s important to understand that the system can’t tell what you intended to include if you accidently left out a value for a required field. It only knows where things are supposed to be.
Why does this matter? Let’s say you put a “1” to indicate that a course is selectable, but forgot to add the credit requirement value. So it may read “Example Course,1,” instead of “Example Course,3,1”.
The system doesn’t know that the “1” you included was intended to indicate whether or not the course is selectable. Consequently, it will interpret the “1” as the course credit requirement, and inform you that “No Selectable supplied.” When you check and confirm that you actually did supply the selectable, don’t stop there! You probably left off the credit.
The point is that the Error Information column may not identify what, precisely, you forgot, but it will check to make sure there is something in all the right places.
Additional Errors from Extra Columns to Added Commas
We’ve covered a lot of cases, but clearly not all of them. The example Error Information column we looked at was for courses without online credit limits and had no commas in the course names. On the one hand, the more information you have to include, the more changes there are for an error. On the other, catching and fixing them involves nothing really new. We can easily see how similar the sorts of problems are by taking our expanded course listings example, and throwing in some issues:
Let’s unpack this image a bit. First, we’ve used the example course listings that include the course name with commas and we’re now using a site that has per-course, online credit limits (as promised). Second, all the issues are new. So let’s break them down.
The first course listing is for the course “Marketing 280, Sec. 10, 2050”. To illustrate several potential issues relating to courses with commas as well as quotation marks, we’ve not only “forgotten” to encase the course name in quotation marks, we “accidently” added the opening quotation mark to one course, and the closing to another.
Luckily for us, the system is as forgiving (as forgiving as it can be while still catching real errors). The extra quotation marks are simply ignored. That still leaves us with our marketing course. If you look at the error column, you can see that the system identified a lot of errors. Why? Yes, it’s because we left off the quotation marks, but what does that do, and why?
The point of CSV formatting is to use commas to break up text information in a manner that’s easy for computers to interpret. Sometimes, though, the text information is supposed to have commas in it, as is the case here with our course name. That’s where quotation marks come in. Anything we enclose in quotation marks will be interpreted as a bunch of text. So commas within quotation marks are text, while commas outside of them are break-up fields like course name, credit requirements, etc.
By leaving out the quotation marks, we’ve inadvertently turned “Marketing 280” into the course name, “Sec. 10” into the credit requirement, “2050” into the Online Credit Limit, “5” into the selectable (it was supposed to be the credit requirement), and the remaining two fields—0 and 1—into two instructors!
All of these can be fixed by enclosing the course name in quotation marks. It’s worth pointing out that, if it helps, you can enclose all fields in quotation marks separated by commas if you wish. Just make sure the separation commas actually separate different fields and ONLY separate different fields.
What about the other two errors? This is more of the same sort we encountered when our site had no per-course, online credit limits. In fact, if we took the two course listings that have “No Selectable supplied” errors, and used them on a set without these online credit limits, they’d work perfectly. It’s just a reminder to make sure that whatever fields are required have the appropriate value there. It’s also to demonstrate how the system will warn you when it doesn’t find what it needs.
Instructional Errors
This brings us to our final example. It’s pretty much the only issue we haven’t covered. You can see it in the first image in this troubleshooting section, but for the sake of convenience we’ll zoom in on the informative column from that example table:
The wrong part is given to you: “Instructor User ID not found.” By this time, you can probably also guess not only went wrong, but how to fix it!
The solution depends on a few things. It could be that you need to check your spelling. Or maybe the user has a different ID than you remember (e.g, james.moriarty vs. jim.moriarty). Just check the ID, and correct.
It could also be that the instructor isn’t in the system yet! In this case, you will need to add the instructor. If the same instructor is teaching a bunch of classes, or your list is missing a bunch of instructors, you may wish to do this first. If, however, the issue is a single instructor associated with a course or two, then you may wish to simply delete the missing ID from the instructor column. Once you’ve finished the upload process, you can add the instructor to your system, go back to course listings, and add them to their course.
That takes care of troubleshooting! As we said, this process simple, convenient, and easy. Even when there are errors, they’re easy.
You can’t ask for much better than that!