Example of Course Information

Import OpenLA

[1]:
# import openLA as la
import OpenLA as la

Load course information from dataset.

[2]:
# If all files are named "Course_{course_id}_{file_name}" and they are in same directory,
# e.g. "dataset_sample/Course_A_EventStream.csv", "dataset_sample/Course_A_LectureMaterial.csv", and so on,
# you can indicate them by the course id and directory path.
course_info = la.CourseInformation(files_dir="dataset_sample", course_id="A")
[4]:
# If the names of the files or the directories they are in are different, you can indicate them individually.
course_info2 = la.CourseInformation(event_stream_file    ="dataset_sample2/EventStream.csv",
                                    lecture_material_file="dataset_sample2/LectureMaterial.csv",
                                    lecture_time_file    ="dataset_sample3/Course_B_LectureTime.csv",
                                    quiz_score_file      ="dataset_sample3/Course_B_QuizScore.csv",
                                    grade_point_file     ="dataset_sample3/Course_B_GradePoint.csv")

Get course id from member variable

[4]:
course_info.course_id
[4]:
'A'
[5]:
# If the course id was not indicated, None is returned
print(course_info2.course_id)
None

Get basic information about the course

[6]:
users = course_info.user_id()
contents = course_info.contents_id()
lectures = course_info.lecture_week()
[7]:
users[:4]
[7]:
['A_U1', 'A_U10', 'A_U100', 'A_U101']
[8]:
contents
[8]:
['C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8']
[9]:
lectures
[9]:
[1, 2, 3, 4, 5, 6, 7, 8]

Contents id and the week of lecture using the contents are convertible

[27]:
course_info.contents_id_to_lecture_week(contents_id=['C2', 'C8'])
[27]:
[2, 8]
[11]:
course_info.lecture_week_to_contents_id(lecture_week=3)
[11]:
'C3'

Get the final score of user(s)

[12]:
user_score = course_info.user_score(users[0])
users_score = course_info.user_score(users[0:5])
[13]:
user_score
[13]:
72.0
[14]:
users_score
[14]:
[72.0, 72.0, 82.0, 75.0, 91.0]
[15]:
user_grade = course_info.user_grade(users[0])
users_grade = course_info.user_grade(users[0:5])
[16]:
user_grade
[16]:
'C'
[17]:
users_grade
[17]:
['C', 'C', 'B', 'C', 'A']

Extract users who get selected final scores/grades

[18]:
high_score_users = course_info.users_in_selected_score(users, top=100, bottom=90)
low_grade_users = course_info.users_in_selected_grade(users, grade="F")
[19]:
high_score_users
[19]:
['A_U102', 'A_U24', 'A_U86', 'A_U67']
[20]:
low_grade_users
[20]:
['A_U115', 'A_U70', 'A_U117']

Get lecture start and end time of lecture

[21]:
first_lecture_start_time = course_info.lecture_start_time(lectures[0])
first_lecture_end_time = course_info.lecture_end_time(lectures[0])
[22]:
first_lecture_start_time
[22]:
Timestamp('2018-04-10 14:50:00')
[23]:
first_lecture_end_time
[23]:
Timestamp('2018-04-10 16:20:00')

Load event stream data

[24]:
event_stream = course_info.load_eventstream()
[25]:
event_stream.df
[25]:
userid contentsid operationname pageno marker memo_length devicecode eventtime
0 A_U1 C1 PREV 10 NaN 0 tablet 2018-04-09 10:57:15
1 A_U1 C1 PREV 9 NaN 0 tablet 2018-04-09 11:00:59
2 A_U1 C1 PREV 8 NaN 0 tablet 2018-04-09 11:03:31
3 A_U1 C1 PREV 30 NaN 0 tablet 2018-04-10 10:14:12
4 A_U1 C1 PREV 29 NaN 0 tablet 2018-04-10 10:27:24
... ... ... ... ... ... ... ... ...
263279 A_U99 C8 NEXT 3 NaN 0 pc 2018-06-05 16:16:18
263280 A_U99 C8 ADD MARKER 4 difficult 0 pc 2018-06-05 16:18:34
263281 A_U99 C8 NEXT 4 NaN 0 pc 2018-06-05 16:19:24
263282 A_U99 C8 NEXT 5 NaN 0 pc 2018-06-05 16:20:45
263283 A_U99 C8 PREV 6 NaN 0 pc 2018-06-05 16:21:03

263284 rows × 8 columns

Course information and event stream can be got simultaneously

[26]:
course_info, event_stream = la.start_analysis(files_dir="dataset_sample", course_id="A")

course_info2, event_stream2 = la.start_analysis(event_stream_file    ="dataset_sample2/EventStream.csv",
                                                lecture_material_file="dataset_sample2/LectureMaterial.csv",
                                                lecture_time_file    ="dataset_sample3/Course_B_LectureTime.csv",
                                                quiz_score_file      ="dataset_sample3/Course_B_QuizScore.csv",
                                                grade_point_file     ="dataset_sample3/Course_B_GradePoint.csv")