What is an active course? Software licensing sometimes considers an active course as a course that was accessed within 90 days. Some institutions consider a course to be active if it has been made available
to students by instructors. Others may track user activity in courses to determine an active course. Let’s consider some ways to report on active courses in Blackboard Learn for past semesters and to check the data against multiple sources.
1. Blackboard Data – by duration of activity in courses.
In the 21 Days of Blackboard Data course, which is a great introduction to Blackboard Data and I recommend it, a number of business scenarios are considered. One activity shows that an active course could be one that was used at least for 60 seconds by any student. This is a great approach, but it requires that activity data for the semester is available.
The cdm_lms.course_avaiablity table in Blackboard Data tracks student course activity. This is the specific clarification in the demo SQL:
//count(distinct case when lca.duration_sum > 59 then lca.course_id else null end) as active_lms_course_count, — defined as active if one or more users has spent one minute in the course
However, if the activity accumulator system didn’t work well, this data would not be available. This means that in some semesters, the count of active courses would not be accurate.
select count(distinct a.course_id) as Active_Courses,
count(distinct c.id) as Total_Courses from cdm_lms.course c left join cdm_lms.course_activity a on c.id=a.course_id where c.course_number like '2015.fall.%'
As an example, consider the above query. It shows 464 courses with any course activity during 2015 Fall semester. Instead, we expected a result given by BbStats closer to 2500 active courses. It’s possible some of our activity data got lost.
2. Blackboard Data – by modification of the course
For organizations that create empty shells adding of folders or items to the course may be a sign of course activity. This method works well for historical analysis as course activity is not required. The following SQL accurately reports active course numbers in our scenario and can be collaborated by BbStats reports.
select split_part(c.course_number,'.',1) as Year, upper(split_part(c.course_number,'.',2)) as Term, count(distinct pc.id) as Enrollment, count(distinct pc.person_id) as Users, count(distinct c.id) as Total_Created_Courses, count(distinct ci.course_id) as Active_Courses, Total_Created_Courses - Active_Courses as NotActivated_Courses, count(distinct ci.id) as Total_Folers_Items_Files_Items, cast(Total_Folers_Items_Files_Items/Active_Courses as Integer) as Average_Folers_Items_Files_Items from cdm_lms.course c left join cdm_lms.course_item ci on ci.course_id=c.id and ci.item_type left join cdm_lms.person_course pc on c.id=pc.course_id where upper(split_part(c.course_number,'.',2)) in ('SPRING','SUMMER','FALL') group by Year, Term having try_to_number(Year) > 2012 order by Year, Term
The results for Fall 2015:
and a variation of this method reporting by calendar year if the course_id structure is not used.
select year(c.created_time) as Year, count(distinct pc.id) as Enrollment, count(distinct pc.person_id) as Users, count(distinct c.id) as Total_Created_Courses, count(distinct ci.course_id) as Active_Courses, Total_Created_Courses - Active_Courses as NotActivated_Courses, count(distinct ci.id) as Total_Folers_Items_Files_Items, cast(Total_Folers_Items_Files_Items/Active_Courses as Integer) as Average_Folers_Items_Files_Items from cdm_lms.course c left join cdm_lms.course_item ci on ci.course_id=c.id and ci.item_type left join cdm_lms.person_course pc on c.id=pc.course_id group by Year order by Year
If courses are created with a menu structure or some default content from templates, these can be excluded in the SQL code to make sure only instructor-added items are included. This is a sample on how to check course menu for items:
select * from cdm_lms.course_tool where course_id in ( select c.id from cdm_lms.course c where c.course_number like '2015.fall.%' ) and toc_ind = true
3. Report: Overall Summary of Usage
Inside of Blackboard Learn we will find a useful report under Administrator Panel -> System Reporting -> Reports -> User Statistics. This report shows historical data on active courses, which are defined as courses accessed within 90 day period. This data is collected and saved each day by the System Tracking feature.
The report below was run on dates 8/1/2015 – 12/31/2015. It shows between 5.2k and 7.2k active courses. The report operates on dates alone, so it’s possible in September some Summer courses were accessed and activated, and other course_id patterns are included in the report.
4. Blackboard Quarterly Metrics Report
Blackboard support may be able to supply for some clients a Quarterly Metrics Report, which is likely based on System Tracking. The report below is a sample from 2012.
One way to view active courses is with the BbStats B2. You can keep the B2 inactive between running reports in case there are concerns about performance. In addition to course status, the adoption report displays course design profiles. In this sample data snapshot, we are looking at Fall 2015 active and inactive courses. According to our BbStats report, we created about 5544 empty course shells and faculty modified about 2484. This report uses course_users table and presence of course items to identify active courses. For this reason, it can be
used to determine historical course adoption.
In our scenario, method #2 of Blackboard Data is effective in identifying active courses. We create empty shells for instructors and adding content to a course makes it an active course. We can validate this data by double- checking with the BbStats system. It’s worth mentioning that some faculty use the Blackboard courses for the photo roster feature only or for sending emails to students. Students would not have to see or interact with empty shells for such courses.