Use OpenLA in Google Colaboratory

Install OpenLA

[1]:
!pip install OpenLA
Collecting OpenLA
  Downloading OpenLA-0.2.2-py3-none-any.whl (23 kB)
Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from OpenLA) (3.2.2)
Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from OpenLA) (1.19.5)
Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (from OpenLA) (1.1.5)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->OpenLA) (3.0.6)
Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->OpenLA) (2.8.2)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->OpenLA) (0.11.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->OpenLA) (1.3.2)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib->OpenLA) (1.15.0)
Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas->OpenLA) (2018.9)
Installing collected packages: OpenLA
Successfully installed OpenLA-0.2.2

Import OpenLA

[2]:
import OpenLA as la

Mount google drive

[3]:
from google.colab import drive
drive.mount('/content/drive')
Mounted at /content/drive

If you have uploaded the dataset of the course A to ‘data’ directory in GoogleDrive, the dataset files belong to ‘/content/drive/MyDrive/data’

[4]:
ls /content/drive/MyDrive/data
Course_A_EventStream.csv  Course_A_LectureMaterial.csv  Course_A_QuizScore.csv
Course_A_GradePoint.csv   Course_A_LectureTime.csv

Load course data from google drive (‘/content/drive/MyDrive/data’)

[5]:
course_info, event_stream = la.start_analysis(files_dir="/content/drive/MyDrive/data",
                                              course_id="A")

or

[6]:
course_info, event_stream = la.start_analysis(event_stream_file="/content/drive/MyDrive/data/Course_A_EventStream.csv",
                                              lecture_material_file="/content/drive/MyDrive/data/Course_A_LectureMaterial.csv",
                                              lecture_time_file="/content/drive/MyDrive/data/Course_A_LectureTime.csv",
                                              # quiz_score_file="/content/drive/MyDrive/data/Course_A_QuizScore.csv",  # in this code, quiz score and grade point is not needed
                                              # grade_point_file="/content/drive/MyDrive/data/Course_A_GradePoint.csv"
                                              )

Get reading time for contents “C1” and “C2” outside of lecture 2

[7]:
# event stream before lecture 2 started
events_before_lecture2 = la.select_by_lecture_time(course_info=course_info,
                                                  event_stream=event_stream,
                                                  lecture_week=2,
                                                  timing="before",
                                                  extension_minutes_before_lecture=0,
                                                  extension_minutes_after_lecture=0,
                                                  include_other_lecture_time=False)

# event stream after lecture 2 ended
events_after_lecture2 = la.select_by_lecture_time(course_info=course_info,
                                                  event_stream=event_stream,
                                                  lecture_week=2,
                                                  timing="after",
                                                  extension_minutes_before_lecture=0,
                                                  extension_minutes_after_lecture=10,
                                                  include_other_lecture_time=False)

# concatenate the event stream before/after lecture 2
events_out_lecture2 = la.concat_data([events_before_lecture2, events_after_lecture2])

# calculate reading time outside of lecture 2
reading_time, pagewise_aggregation = la.individual_reading_time(event_stream=events_out_lecture2,
                                                                user_id=None,
                                                                contents_id=["C1", "C2"],
                                                                invalid_seconds=5,
                                                                timeout_seconds=20*60,
                                                                return_aggregation_result=True,
                                                                time_unit="minutes",
                                                                for_each_content=True
                                                               )
[8]:
reading_time
[8]:
reading_minutes
userid contentsid
A_U1 C1 2.750000
C2 3.350000
A_U10 C1 11.633333
C2 0.466667
A_U100 C1 43.966667
... ... ...
A_U97 C2 20.183333
A_U98 C1 4.450000
C2 36.166667
A_U99 C1 8.800000
C2 4.200000

220 rows × 1 columns