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")