My university is moving to Blackboard Learn 9.1 Service Pack 9 and to Oracle's Student Administration and Integration Pack (SAIP). We will be using SAIP to provide all our classes and enrollments to Blackboard so that each class has an associated Blackboard course. As part of these changes we need to implement a Building Block (B2) that will allow instructors to add one or more child courses to a parent course in Blackboard. Some of our instructors prefer to have one Blackboard course for multiple sections of the same class they are teaching or to have one Blackboard course for both their lecture and lab sections.
This article discusses our research into creating such a Building Block and the Blackboard API classes we use. There is a prototype Building Block available on my Github repository. I want to share what we've learned, but I also hope to get feedback on our approach and any lessons learned from others experiences.
Course Merging In Blackboard Learn 9.1 Service Pack 9
Beginning in Blackboard Learn 9.1 Service Pack 8, Blackboard added a utility that lets System Administrators add child course(s) to a parent Blackboard course. The effect of this merge is that all enrollments in the child courses "bubble up" to the parent course. When a student logs in after the merge is done, she sees the title of the child course but the content is from the parent course. The instructor adds content to the parent course. A System Administrator can separate the child courses back out.
Since we have so many instructors who want to merge their Blackboard courses it isn't feasible for us to have the System Administrator create the parent - child relationships. So we researched how to use a course tool Building Block that would let instructors add one or more of their courses as children to a parent course. Then the parent course would be used by the instructor and students.
Course Merge Building Block Prototype
In my Github repository there is a project, CourseMergePrototype, that is a Blackboard Building Block that creates a course tool instructors may use to add one or more courses as children to a parent course. Be sure to read the README.txt file for information about how to build and deploy this application. NOTE: running the application does NOT merge courses. The code that actually merges courses is commented out.
The code implements several business rules we must follow:
- The course the instructor is viewing when selecting the Course Merge tool will be the parent course
- An instructor may only select as children courses where he/she is also the instructor
- The children courses must be in the same term as the parent course
- A course cannot be its own parent
- A course may only have one parent
Blackboard API Classes For Merging Courses
To help us implement these business rules and to do the actual merge we use several Blackboard API classes:
- CourseDbLoader - to get only those courses taught by the instructor and to get a Blackboard Course object using the course ID
- CourseCourseManager - to create the merge by adding the child course to the parent course and to determine if a course is already a child course
- CourseCourseManagerFactory - to get an instance of CourseCourseManager
Effect On Future Enrollments To Parent and Child Courses
In our initial testing, future enrollments provided by SAIP in either the parent or child courses are handled correctly by Blackboard (see New Information below). This is an area we will test further as Blackboard administrators have reported several problems with course merging and enrollments (see Behind the Blackboard - Known Issues).
This Building Block is just a prototype and we are currently testing how it works and its effects. I'd appreciate any feedback on how we are enabling instructors to merge their Blackboard courses and especially any lessons learned from your own experiences.
As we further test merging two or more courses and its effects on course enrollment we've discovered some issues, which we reported to Blackboard in December 2012. I'll keep you posted on what Blackboard says.
- After a child course is merged with a master (parent) course the child course should be made unavailable. However an instructor can later make the child course available without "unmerging" the child - master courses. Blackboard told us that child courses should not be made available but they don't prevent instructors from doing so. We think that is a bug.
- After a child course is merged with a master course, the instructor will see a notice under the child course name that it is now a child course and should not be used. If the instructor opens the child course he will see a warning highlighted in yellow at the top of the course page that this course should NOT be used as it has a master course and there will be a link to the master course. However, if the instructor makes the child course available all warning messages about the course being a child course disappear.
- If a student is in a child course that is merged with a master course the student's enrollment "bubbles" up correctly to the parent course. However if a second course is merged with the same parent and later the same student should be enrolled into the second course, the enrollment putting that student into the second child course will error. The student will not be added to the enrollment of the second child course. This can cause a problem if the Blackboard courses are unmerged--the student's enrollment will not be in both child courses. As a work-around you should rerun all enrollments for unmerged Blackboard courses are unmerging the courses.
- As best we can tell as of Blackboard Learn 9.1 SP 12, Blackboard can only track a student's enrollment in one child course - (see table course_users column child_crsmain_pk1). However, it is possible and likely that two child courses will be added to one parent course and a student will be in both child courses--for example student is in a discussion group, a lab, and a lecture and the instructor merges the discussion group and lab with the lecture to have just one course in Blackboard.
- If a student is enrolled in a child course, then later enrolls in the master course, and then drops the child course the student's status in both the child and master course will change to 2. So even though the student is still enrolled in the parent course, the instructor will not see the student as enrolled and the student will not see the parent Blackboard course when he/she logs in. (Fixed in Service Pack 12)