diff --git a/InteractionPrototype.csv b/InteractionPrototype.csv index 3b1ad2fb7acb2333203a64214a98d595c03ba7e7..c54337061480f2e29f726e995b0e53ca0f5bf810 100644 --- a/InteractionPrototype.csv +++ b/InteractionPrototype.csv @@ -1,62 +1,63 @@ -33030,56,5,603,NULL,window-focus,"User looking at 09.03.01 - Doubly Linked Lists""""",8/29/2016 15:17,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33031,56,5,603,982,jsav-forward,"{"ev_num":0,"currentStep":9}",8/29/2016 15:19,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33032,56,5,603,982,jsav-forward,"{"ev_num":1,"currentStep":9}",8/29/2016 15:19,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33033,56,5,603,982,jsav-forward,"{"ev_num":2,"currentStep":9}",8/29/2016 15:19,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33034,56,5,603,982,jsav-forward,"{"ev_num":3,"currentStep":9}",8/29/2016 15:19,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33035,56,5,603,982,jsav-forward,"{"ev_num":4,"currentStep":9}",8/29/2016 15:19,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33036,56,5,603,982,jsav-forward,"{"ev_num":5,"currentStep":9}",8/29/2016 15:19,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33037,56,5,603,982,jsav-forward,"{"ev_num":6,"currentStep":9}",8/29/2016 15:19,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33038,56,5,603,982,jsav-forward,"{"ev_num":7,"currentStep":9}",8/29/2016 15:19,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33039,56,5,603,982,jsav-forward,"{"ev_num":8,"currentStep":9}",8/29/2016 15:19,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33042,56,5,603,983,jsav-forward,"{"ev_num":9,"currentStep":7}",8/29/2016 15:19,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33043,56,5,603,983,jsav-forward,"{"ev_num":10,"currentStep":7}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33044,56,5,603,983,jsav-forward,"{"ev_num":11,"currentStep":7}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33045,56,5,603,983,jsav-forward,"{"ev_num":12,"currentStep":7}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33046,56,5,603,983,jsav-forward,"{"ev_num":13,"currentStep":7}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33047,56,5,603,983,jsav-forward,"{"ev_num":14,"currentStep":7}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33048,56,5,603,983,jsav-forward,"{"ev_num":15,"currentStep":7}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL, -33050,56,5,603,984,jsav-forward,"{"ev_num":16,"currentStep":8}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL, -33051,56,5,603,984,jsav-forward,"{"ev_num":17,"currentStep":8}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL, -33052,56,5,603,984,jsav-forward,"{"ev_num":18,"currentStep":8}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL, -33053,56,5,603,984,jsav-forward,"{"ev_num":19,"currentStep":8}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL, -33054,56,5,603,984,jsav-forward,"{"ev_num":20,"currentStep":8}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL, -33055,56,5,603,984,jsav-forward,"{"ev_num":21,"currentStep":8}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL, -33056,56,5,603,984,jsav-forward,"{"ev_num":22,"currentStep":8}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL, -33057,56,5,603,985,jsav-forward,"{"ev_num":23,"currentStep":4}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL, -33058,56,5,603,985,jsav-forward,"{"ev_num":24,"currentStep":4}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL, -33059,56,5,603,985,jsav-forward,"{"ev_num":25,"currentStep":4}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL, -33060,56,5,603,985,jsav-forward,"{"ev_num":26,"currentStep":4}",8/29/2016 15:20,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL, -33092,56,5,603,NULL,hyperlink-ui-id-6,"{href"":""#DList_XOR_code_Java""}""",8/29/2016 15:22,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL, -33093,56,5,603,NULL,hyperlink-ui-id-6,"{href"":""#DList_XOR_code_Java""}""",8/29/2016 15:22,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL, -33094,56,5,603,NULL,hyperlink-ui-id-5,"{href"":""#DList_XOR_code_Processing""}""",8/29/2016 15:22,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL, -33095,56,5,603,NULL,hyperlink-ui-id-4,"{href"":""#DList_XOR_code_Java_Generic""}""",8/29/2016 15:22,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL, -33096,56,5,603,NULL,hyperlink-ui-id-6,"{href"":""#DList_XOR_code_Java""}""",8/29/2016 15:22,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL, -33097,56,5,603,NULL,window-blur,"User is no longer looking at 09.03.01 - Doubly Linked Lists""""",8/29/2016 15:34,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL, -33098,56,5,603,NULL,window-focus,"User looking at 09.03.01 - Doubly Linked Lists""""",8/29/2016 15:39,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL, -33099,56,5,603,NULL,window-blur,"User is no longer looking at 09.03.01 - Doubly Linked Lists""""",8/29/2016 15:40,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL, -33100,56,5,603,NULL,window-unload,"User closed or refreshed 09.03.01 - Doubly Linked Lists""""",8/29/2016 15:40,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL, -33101,56,5,603,NULL,window-unload,"User closed or refreshed 09.03.01 - Doubly Linked Lists""""",8/29/2016 15:40,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL, -33102,56,5,604,NULL,document-ready,"User loaded the 09.04.01 - List Element Implementations""""",8/29/2016 15:40,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL, -33103,56,5,604,NULL,document-ready,"User loaded the 09.04.01 - List Element Implementations""""",8/29/2016 15:40,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL, -33104,56,5,604,NULL,window-unload,"User closed or refreshed 09.04.01 - List Element Implementations""""",8/29/2016 15:40,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL, -33105,56,5,604,NULL,document-ready,"User loaded the 09.04.01 - List Element Implementations""""",8/29/2016 15:40,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL, -33106,56,5,604,NULL,window-unload,"User closed or refreshed 09.04.01 - List Element Implementations""""",8/29/2016 15:40,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:43,8/29/2016 15:43,NULL,NULL,NULL,NULL, -33107,56,5,604,NULL,window-focus,"User looking at 09.04.01 - List Element Implementations""""",8/29/2016 15:42,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:43,8/29/2016 15:43,NULL,NULL,NULL,NULL, -33108,56,5,604,986,jsav-forward,"{""ev_num"":0,""currentStep"":2}",8/29/2016 15:42,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:43,8/29/2016 15:43,NULL,NULL,NULL,, -33109,56,5,604,986,jsav-forward,"{""ev_num"":1,""currentStep"":2}",8/29/2016 15:43,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:43,8/29/2016 15:43,NULL,NULL,NULL,, -33110,56,5,604,NULL,window-blur,"User is no longer looking at 09.04.01 - List Element Implementations""""",8/29/2016 15:44,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:47,8/29/2016 15:47,NULL,NULL,NULL,NULL, -33111,56,5,604,NULL,window-focus,"User looking at 09.04.01 - List Element Implementations""""",8/29/2016 15:44,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:47,8/29/2016 15:47,NULL,NULL,NULL,NULL, -33112,56,5,604,987,jsav-forward,"{""ev_num"":2,""currentStep"":1}",8/29/2016 15:47,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:47,8/29/2016 15:47,NULL,NULL,NULL,, -33113,56,5,604,988,jsav-forward,"{""ev_num"":3,""currentStep"":1}",8/29/2016 15:47,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:48,8/29/2016 15:48,NULL,NULL,NULL,, -33114,56,5,604,NULL,window-blur,"User is no longer looking at 09.04.01 - List Element Implementations""""",8/29/2016 15:48,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:50,8/29/2016 15:50,NULL,NULL,NULL,NULL, -33115,56,5,604,NULL,window-unload,"User closed or refreshed 09.04.01 - List Element Implementations""""",8/29/2016 15:49,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:50,8/29/2016 15:50,NULL,NULL,NULL,NULL, -33116,56,5,604,NULL,window-unload,"User closed or refreshed 09.04.01 - List Element Implementations""""",8/29/2016 15:49,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:50,8/29/2016 15:50,NULL,NULL,NULL,NULL, -33117,56,5,605,NULL,document-ready,"User loaded the 09.05.01 - Freelists""""",8/29/2016 15:49,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:50,8/29/2016 15:50,NULL,NULL,NULL,NULL, -33118,56,5,605,NULL,window-unload,"User closed or refreshed 09.05.01 - Freelists""""",8/29/2016 15:50,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:50,8/29/2016 15:50,NULL,NULL,NULL,NULL, -33119,56,5,606,NULL,document-ready,"User loaded the 09.06.01 - Practice Questions""""",8/29/2016 15:50,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:51,8/29/2016 15:51,NULL,NULL,NULL,NULL, -33120,56,5,606,NULL,window-unload,"User closed or refreshed 09.06.01 - Practice Questions""""",8/29/2016 15:50,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:51,8/29/2016 15:51,NULL,NULL,NULL,NULL, -33121,56,5,607,NULL,document-ready,"User loaded the 09.06.02 - Chapter Review Questions""""",8/29/2016 15:50,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:51,8/29/2016 15:51,NULL,NULL,NULL,NULL, -33122,56,5,NULL,NULL,window-unload,"User closed or refreshed 11.01.01 - Glossary""""",8/29/2016 15:50,1.47248E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:51,8/29/2016 15:51,NULL,NULL,NULL,NULL, -33123,56,5,607,NULL,window-unload,"User closed or refreshed 09.06.02 - Chapter Review Questions""""",8/29/2016 15:50,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:51,8/29/2016 15:51,NULL,NULL,NULL,NULL, -33150,56,5,NULL,NULL,document-ready,"User loaded the 10.01.01 - Binary Trees Chapter Introduction""""",8/29/2016 15:50,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 16:00,8/29/2016 16:00,NULL,NULL,NULL,NULL, -33151,56,5,NULL,NULL,window-unload,"User closed or refreshed 10.01.01 - Binary Trees Chapter Introduction""""",8/29/2016 15:50,1.47249E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 16:00,8/29/2016 16:00,NULL,NULL,NULL,NULL, +id,user_id,inst_book_id,inst_section_id,inst_book_section_exercise_id,name,description,action_time,uiid,browser_family,browser_version,os_family,os_version,device,ip_address,created_at,updated_at,inst_course_offering_exercise_id,inst_chapter_module_id,inst_module_version_id,inst_module_section_exercise_id +33030,56,5,603,NULL,window-focus,"User looking at 09.03.01 - Doubly Linked Lists""""",8/29/2016 15:17,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33031,56,5,603,982,jsav-forward,"{ev_num"":0currentStep:9}""",8/29/2016 15:19,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33032,56,5,603,982,jsav-forward,"{ev_num"":1currentStep:9}""",8/29/2016 15:19,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33033,56,5,603,982,jsav-forward,"{ev_num"":2currentStep:9}""",8/29/2016 15:19,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33034,56,5,603,982,jsav-forward,"{ev_num"":3currentStep:9}""",8/29/2016 15:19,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33035,56,5,603,982,jsav-forward,"{ev_num"":4currentStep:9}""",8/29/2016 15:19,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33036,56,5,603,982,jsav-forward,"{ev_num"":5currentStep:9}""",8/29/2016 15:19,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33037,56,5,603,982,jsav-forward,"{ev_num"":6currentStep:9}""",8/29/2016 15:19,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33038,56,5,603,982,jsav-forward,"{ev_num"":7currentStep:9}""",8/29/2016 15:19,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33039,56,5,603,982,jsav-forward,"{ev_num"":8currentStep:9}""",8/29/2016 15:19,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33042,56,5,603,983,jsav-forward,"{ev_num"":9currentStep:7}""",8/29/2016 15:19,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33043,56,5,603,983,jsav-forward,"{ev_num"":10currentStep:7}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33044,56,5,603,983,jsav-forward,"{ev_num"":11currentStep:7}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33045,56,5,603,983,jsav-forward,"{ev_num"":12currentStep:7}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33046,56,5,603,983,jsav-forward,"{ev_num"":13currentStep:7}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33047,56,5,603,983,jsav-forward,"{ev_num"":14currentStep:7}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33048,56,5,603,983,jsav-forward,"{ev_num"":15currentStep:7}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:20,8/29/2016 15:20,NULL,NULL,NULL,NULL +33050,56,5,603,984,jsav-forward,"{ev_num"":16currentStep:8}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL +33051,56,5,603,984,jsav-forward,"{ev_num"":17currentStep:8}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL +33052,56,5,603,984,jsav-forward,"{ev_num"":18currentStep:8}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL +33053,56,5,603,984,jsav-forward,"{ev_num"":19currentStep:8}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL +33054,56,5,603,984,jsav-forward,"{ev_num"":20currentStep:8}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL +33055,56,5,603,984,jsav-forward,"{ev_num"":21currentStep:8}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL +33056,56,5,603,984,jsav-forward,"{ev_num"":22currentStep:8}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL +33057,56,5,603,985,jsav-forward,"{ev_num"":23currentStep:4}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL +33058,56,5,603,985,jsav-forward,"{ev_num"":24currentStep:4}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL +33059,56,5,603,985,jsav-forward,"{ev_num"":25currentStep:4}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL +33060,56,5,603,985,jsav-forward,"{ev_num"":26currentStep:4}""",8/29/2016 15:20,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:21,8/29/2016 15:21,NULL,NULL,NULL,NULL +33092,56,5,603,NULL,hyperlink-ui-id-6,"{href"":""#DList_XOR_code_Java""}""",8/29/2016 15:22,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL +33093,56,5,603,NULL,hyperlink-ui-id-6,"{href"":""#DList_XOR_code_Java""}""",8/29/2016 15:22,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL +33094,56,5,603,NULL,hyperlink-ui-id-5,"{href"":""#DList_XOR_code_Processing""}""",8/29/2016 15:22,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL +33095,56,5,603,NULL,hyperlink-ui-id-4,"{href"":""#DList_XOR_code_Java_Generic""}""",8/29/2016 15:22,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL +33096,56,5,603,NULL,hyperlink-ui-id-6,"{href"":""#DList_XOR_code_Java""}""",8/29/2016 15:22,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL +33097,56,5,603,NULL,window-blur,"User is no longer looking at 09.03.01 - Doubly Linked Lists""""",8/29/2016 15:34,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL +33098,56,5,603,NULL,window-focus,"User looking at 09.03.01 - Doubly Linked Lists""""",8/29/2016 15:39,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL +33099,56,5,603,NULL,window-blur,"User is no longer looking at 09.03.01 - Doubly Linked Lists""""",8/29/2016 15:40,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL +33100,56,5,603,NULL,window-unload,"User closed or refreshed 09.03.01 - Doubly Linked Lists""""",8/29/2016 15:40,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL +33101,56,5,603,NULL,window-unload,"User closed or refreshed 09.03.01 - Doubly Linked Lists""""",8/29/2016 15:40,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL +33102,56,5,604,NULL,document-ready,"User loaded the 09.04.01 - List Element Implementations""""",8/29/2016 15:40,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL +33103,56,5,604,NULL,document-ready,"User loaded the 09.04.01 - List Element Implementations""""",8/29/2016 15:40,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL +33104,56,5,604,NULL,window-unload,"User closed or refreshed 09.04.01 - List Element Implementations""""",8/29/2016 15:40,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL +33105,56,5,604,NULL,document-ready,"User loaded the 09.04.01 - List Element Implementations""""",8/29/2016 15:40,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:41,8/29/2016 15:41,NULL,NULL,NULL,NULL +33106,56,5,604,NULL,window-unload,"User closed or refreshed 09.04.01 - List Element Implementations""""",8/29/2016 15:40,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:43,8/29/2016 15:43,NULL,NULL,NULL,NULL +33107,56,5,604,NULL,window-focus,"User looking at 09.04.01 - List Element Implementations""""",8/29/2016 15:42,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:43,8/29/2016 15:43,NULL,NULL,NULL,NULL +33108,56,5,604,986,jsav-forward,"{""ev_num"":0,""currentStep"":2}",8/29/2016 15:42,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:43,8/29/2016 15:43,NULL,NULL,NULL, +33109,56,5,604,986,jsav-forward,"{""ev_num"":1,""currentStep"":2}",8/29/2016 15:43,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:43,8/29/2016 15:43,NULL,NULL,NULL, +33110,56,5,604,NULL,window-blur,"User is no longer looking at 09.04.01 - List Element Implementations""""",8/29/2016 15:44,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:47,8/29/2016 15:47,NULL,NULL,NULL,NULL +33111,56,5,604,NULL,window-focus,"User looking at 09.04.01 - List Element Implementations""""",8/29/2016 15:44,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:47,8/29/2016 15:47,NULL,NULL,NULL,NULL +33112,56,5,604,987,jsav-forward,"{""ev_num"":2,""currentStep"":1}",8/29/2016 15:47,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:47,8/29/2016 15:47,NULL,NULL,NULL, +33113,56,5,604,988,jsav-forward,"{""ev_num"":3,""currentStep"":1}",8/29/2016 15:47,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:48,8/29/2016 15:48,NULL,NULL,NULL, +33114,56,5,604,NULL,window-blur,"User is no longer looking at 09.04.01 - List Element Implementations""""",8/29/2016 15:48,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:50,8/29/2016 15:50,NULL,NULL,NULL,NULL +33115,56,5,604,NULL,window-unload,"User closed or refreshed 09.04.01 - List Element Implementations""""",8/29/2016 15:49,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:50,8/29/2016 15:50,NULL,NULL,NULL,NULL +33116,56,5,604,NULL,window-unload,"User closed or refreshed 09.04.01 - List Element Implementations""""",8/29/2016 15:49,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:50,8/29/2016 15:50,NULL,NULL,NULL,NULL +33117,56,5,605,NULL,document-ready,"User loaded the 09.05.01 - Freelists""""",8/29/2016 15:49,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:50,8/29/2016 15:50,NULL,NULL,NULL,NULL +33118,56,5,605,NULL,window-unload,"User closed or refreshed 09.05.01 - Freelists""""",8/29/2016 15:50,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:50,8/29/2016 15:50,NULL,NULL,NULL,NULL +33119,56,5,606,NULL,document-ready,"User loaded the 09.06.01 - Practice Questions""""",8/29/2016 15:50,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:51,8/29/2016 15:51,NULL,NULL,NULL,NULL +33120,56,5,606,NULL,window-unload,"User closed or refreshed 09.06.01 - Practice Questions""""",8/29/2016 15:50,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:51,8/29/2016 15:51,NULL,NULL,NULL,NULL +33121,56,5,607,NULL,document-ready,"User loaded the 09.06.02 - Chapter Review Questions""""",8/29/2016 15:50,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:51,8/29/2016 15:51,NULL,NULL,NULL,NULL +33122,56,5,NULL,NULL,window-unload,"User closed or refreshed 11.01.01 - Glossary""""",8/29/2016 15:50,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:51,8/29/2016 15:51,NULL,NULL,NULL,NULL +33123,56,5,607,NULL,window-unload,"User closed or refreshed 09.06.02 - Chapter Review Questions""""",8/29/2016 15:50,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 15:51,8/29/2016 15:51,NULL,NULL,NULL,NULL +33150,56,5,NULL,NULL,document-ready,"User loaded the 10.01.01 - Binary Trees Chapter Introduction""""",8/29/2016 15:50,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 16:00,8/29/2016 16:00,NULL,NULL,NULL,NULL +33151,56,5,NULL,NULL,window-unload,"User closed or refreshed 10.01.01 - Binary Trees Chapter Introduction""""",8/29/2016 15:50,1.47E+12,Chrome,52,linux,,PC,172.25.132.16,8/29/2016 16:00,8/29/2016 16:00,NULL,NULL,NULL,NULL diff --git a/InteractionPrototype.csv_merged_result_unannotated.csv b/InteractionPrototype.csv_merged_result_unannotated.csv new file mode 100644 index 0000000000000000000000000000000000000000..fc886ee76c8b828531613d07462547714d5e87ad --- /dev/null +++ b/InteractionPrototype.csv_merged_result_unannotated.csv @@ -0,0 +1,29 @@ +session,user ID,Inst Book,Event name,Event Description,Start time,End Time,Action Time,Exercise Type,Number of events +1,56,5,Window open,Attempted to solve Chrome frame ,8/29/2016 15:17,8/29/2016 15:17,Reading time: 120.0 sec,nan,1 +1,56,5,FF event,Attempted to solve Chrome frame ,8/29/2016 15:19,8/29/2016 15:20,60.0 seconds,nan,27 +1,56,5,Other event,Attempted to solve Chrome frame ,8/29/2016 15:22,8/29/2016 15:22,,nan,2 +1,56,5,Other event,Attempted to solve Chrome frame ,8/29/2016 15:22,8/29/2016 15:22,,nan,1 +1,56,5,Other event,Attempted to solve Chrome frame ,8/29/2016 15:22,8/29/2016 15:22,,nan,1 +1,56,5,Other event,Attempted to solve Chrome frame ,8/29/2016 15:22,8/29/2016 15:22,,nan,1 +2,56,5,Window close,Attempted to solve Chrome frame ,8/29/2016 15:34,8/29/2016 15:34,Away time: 300.0 sec,nan,1 +2,56,5,Window open,Attempted to solve Chrome frame ,8/29/2016 15:39,8/29/2016 15:39,Reading time: 60.0 sec,nan,1 +2,56,5,window event,Attempted to solve Chrome frame ,8/29/2016 15:40,8/29/2016 15:40,,nan,1 +2,56,5,window event,Attempted to solve Chrome frame ,8/29/2016 15:40,8/29/2016 15:40,,nan,2 +2,56,5,document event,Attempted to solve Chrome frame ,8/29/2016 15:40,8/29/2016 15:40,,nan,2 +2,56,5,window event,Attempted to solve Chrome frame ,8/29/2016 15:40,8/29/2016 15:40,,nan,1 +2,56,5,document event,Attempted to solve Chrome frame ,8/29/2016 15:40,8/29/2016 15:40,,nan,1 +2,56,5,window event,Attempted to solve Chrome frame ,8/29/2016 15:40,8/29/2016 15:40,,nan,1 +2,56,5,Window open,Attempted to solve Chrome frame ,8/29/2016 15:42,8/29/2016 15:42,Reading time: 0.0 sec,nan,1 +2,56,5,FF event,Attempted to solve Chrome frame ,8/29/2016 15:42,8/29/2016 15:43,60.0 seconds,nan,2 +2,56,5,Window close,Attempted to solve Chrome frame ,8/29/2016 15:44,8/29/2016 15:44,Away time: 0.0 sec,nan,1 +2,56,5,Window open,Attempted to solve Chrome frame ,8/29/2016 15:44,8/29/2016 15:44,Reading time: 180.0 sec,nan,1 +2,56,5,FF event,Attempted to solve Chrome frame ,8/29/2016 15:47,8/29/2016 15:47,0.0 seconds,nan,2 +2,56,5,window event,Attempted to solve Chrome frame ,8/29/2016 15:48,8/29/2016 15:48,,nan,1 +2,56,5,window event,Attempted to solve Chrome frame ,8/29/2016 15:49,8/29/2016 15:49,,nan,2 +2,56,5,document event,Attempted to solve Chrome frame ,8/29/2016 15:49,8/29/2016 15:49,,nan,1 +2,56,5,window event,Attempted to solve Chrome frame ,8/29/2016 15:50,8/29/2016 15:50,,nan,1 +2,56,5,document event,Attempted to solve Chrome frame ,8/29/2016 15:50,8/29/2016 15:50,,nan,1 +2,56,5,window event,Attempted to solve Chrome frame ,8/29/2016 15:50,8/29/2016 15:50,,nan,1 +2,56,5,document event,Attempted to solve Chrome frame ,8/29/2016 15:50,8/29/2016 15:50,,nan,1 +2,56,5,window event,Attempted to solve Chrome frame ,8/29/2016 15:50,8/29/2016 15:50,,nan,2 +2,56,5,document event,"User loaded the 10.01.01 - Binary Trees Chapter Introduction""""",8/29/2016 15:50,8/29/2016 15:50,,nan,1 diff --git a/abstracting_script.py b/abstracting_script.py index 982a2f0689dd4eeddeb263db65fd6d219971a834..e0b489514ffee04ec699ef25629207b255e22f50 100644 --- a/abstracting_script.py +++ b/abstracting_script.py @@ -72,26 +72,26 @@ def writeEvName(row): # Helper function to write a description for events def writeDesc(row): # exercise_type - if row['ex_type'] == "pe": + if row['inst_module_version_id'] == "pe": return "Attempted to solve PE" elif pd.isnull(row['inst_section_id']): return row['description'] else: # ev_name - if row['short_name']: + if row['inst_module_section_exercise_id']: return f'Attempted to solve {row[9]} frame ' else: return f'Attempted to solve {row[9]} exercise' # Helper function to write a time for events def writeTime(row, start, end): - if row['description'] == "PE" or row['ex_type'] == "pe" or check_pe_helper(row['name']): + if row['description'] == "PE" or row['inst_module_version_id'] == "pe" or check_pe_helper(row['name']): return f'{(end - start).total_seconds()} seconds' elif row['name'] in ff_event: return f'{(end-start).total_seconds()} seconds' elif "document" not in row['name']: # ev_name - if row['short_name']: + if row['inst_module_section_exercise_id']: return f'In slideshow for {(end - start).total_seconds()} seconds' if (end - start).total_seconds() > 0 else None else: return f'In exercise for {(end - start).total_seconds()} seconds' if (end - start).total_seconds() > 0 else None @@ -105,16 +105,16 @@ def check_pe_helper(command): # Check whether this and next events are the same type of event (PE) def bundle_pe(curr, next): - if not pd.isnull(curr['ex_type']) or curr['description'] == 'PE': # curr has value - if not pd.isnull(next['ex_type']): # both curr and next has values - if curr['ex_type'] != 'pe' and next['ex_type'] != 'pe': + if not pd.isnull(curr['inst_module_version_id']) or curr['description'] == 'PE': # curr has value + if not pd.isnull(next['inst_module_version_id']): # both curr and next has values + if curr['inst_module_version_id'] != 'pe' and next['inst_module_version_id'] != 'pe': return False else: #if only curr has value if not check_pe_helper(next['name']) and next['description'] != 'PE': return False else: # curr doesn't have value if check_pe_helper(curr['name']): - if next['ex_type'] == 'pe' or check_pe_helper(next['name']): + if next['inst_module_version_id'] == 'pe' or check_pe_helper(next['name']): return True else: return False @@ -124,7 +124,7 @@ def bundle_pe(curr, next): # Check whether this and next events are the same type of event (FF) def bundle_ff(curr, next): - if not pd.isnull(curr['short_name']) and curr['short_name'] == next['short_name']: + if not pd.isnull(curr['inst_module_section_exercise_id']) and curr['inst_module_section_exercise_id'] == next['inst_module_section_exercise_id']: return True else: return False @@ -180,13 +180,22 @@ def abstract(file_name): action_time = curr['action_time'] module_id = curr['inst_chapter_module_id'] section_id = curr['inst_section_id'] - exercise_id = curr['inst_exercise_id'] - exercise_name = curr['short_name'] - exercise_type = curr['ex_type'] + exercise_id = curr['inst_course_offering_exercise_id'] + exercise_name = curr['inst_module_section_exercise_id'] + exercise_type = curr['inst_module_version_id'] + + #exercise_id = curr['inst_exercise_id'] + #exercise_name = curr['short_name'] + #exercise_type = curr['ex_type'] + + next_ev = row - now = dt.strptime(action_time, "%Y-%m-%d %H:%M:%S") - next_time = dt.strptime(next_ev['action_time'], "%Y-%m-%d %H:%M:%S") + # now = dt.strptime(action_time, "%Y-%m-%d %H:%M:%S") + # next_time = dt.strptime(next_ev['action_time'], "%Y-%m-%d %H:%M:%S") + + now = dt.strptime(action_time, "%m/%d/%Y %H:%M") + next_time = dt.strptime(next_ev['action_time'], "%m/%d/%Y %H:%M") time_diff = (next_time - now).total_seconds() end_time = start_time @@ -205,8 +214,11 @@ def abstract(file_name): if (time_diff > threshold): # Creating a new session # For the last event of a session, we need to add one more row of event at the end of the session end_time = action_time - start = dt.strptime(start_time, "%Y-%m-%d %H:%M:%S") - end = dt.strptime(end_time, "%Y-%m-%d %H:%M:%S") + # start = dt.strptime(start_time, "%Y-%m-%d %H:%M:%S") + # end = dt.strptime(end_time, "%Y-%m-%d %H:%M:%S") + + start = dt.strptime(start_time, "%m/%d/%Y %H:%M") + end = dt.strptime(end_time, "%m/%d/%Y %H:%M") diff = writeTime(curr, start, end) # diff = f'{(end - start).total_seconds()} seconds' if (end - start).total_seconds() > 0 else None if is_pe_exercise: @@ -225,7 +237,7 @@ def abstract(file_name): # writer.writerow([f'Session {session_count + 1}']) - total_session_time = total_session_time + (session_end_time - dt.strptime(session_start_time, "%Y-%m-%d %H:%M:%S")).total_seconds() + total_session_time = total_session_time + (session_end_time - dt.strptime(session_start_time, "%m/%d/%Y %H:%M")).total_seconds() total_session_count = total_session_count + 1 session_count += 1 @@ -257,8 +269,8 @@ def abstract(file_name): continue else: end_time = action_time - start = dt.strptime(start_time, "%Y-%m-%d %H:%M:%S") - end = dt.strptime(end_time, "%Y-%m-%d %H:%M:%S") + start = dt.strptime(start_time, "%m/%d/%Y %H:%M") + end = dt.strptime(end_time, "%m/%d/%Y %H:%M") diff = writeTime(curr, start, end) # diff = f'In slideshow for {(end - start).total_seconds()} seconds' if (end - start).total_seconds() > 0 else None @@ -323,7 +335,7 @@ def abstract(file_name): start_time = time.time() -abstract("User_Interactions.csv") +abstract("InteractionPrototype.csv") print(total_session_count, total_session_time) print("--- %s seconds ---" % (time.time() - start_time))