cs5604: final presentaon projopendsa: log support...– python, django, mysql, html/css/js progress...

30
CS5604: Final Presenta3on ProjOpenDSA: Log Support Victoria Suwardiman Anand Swaminathan Shiyi Wei Department of Computer Science, Virginia Tech December 4, 2012

Upload: others

Post on 04-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

CS5604:FinalPresenta3onProjOpenDSA:LogSupport

VictoriaSuwardimanAnandSwaminathan

ShiyiWeiDepartmentofComputerScience,VirginiaTech

December4,2012

Page 2: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

Overview

•  OpenDSARecap•  LogSupportRecap•  StudentView•  InstructorView•  DeveloperView•  FutureWork

Page 3: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

OpenDSARecap

•  OpenDSAac3vee‐bookproject*– goal:developacompleteonlinetextbookfordatastructuresandalgorithms(DSA)courses

•  Features–  instruc3onalmodule(topic),e.g.,asor3ngalgorithm

–  interac3vealgorithmvisualiza3on–  interac3veassessmentac3vity(exercise)

•  providesfeedbackonstudents’proficiencywiththematerial

•  ProjectStatus– ThesystemisdeployedforstudentsinCS3114touse.

*ThisprojectisledbyDr.CliffShafferinDepartmentofComputerScience,VirginiaTech

Page 4: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

LogSupportProjectRecap

•  OpenDSAlogdata–  studentinterac3onswiththeexercises

•  3mestampsforvariousac3ons,e.g.,buZonclick•  performanceresults,e.g.,exercisescore

•  Logsupport:logdatarepor3ngthroughvisualiza3on–  studentview

•  student’sownprogressandperformanceinmodulesandexercises–  instructorview

•  gradesandstudents’overallperformance–  developerview

•  usagesta3s3csofmodulesandexercises

•  Technologies–  Python,Django,MySQL,HTML/CSS/JS

Page 5: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

Progress

• MidtermPresenta3on:– Learnedso`waretools– Designedindividualviews– Begandevelopingviews

•  FinalPresenta3on:– Developedeachview– Receivedclientfeedback– Fixesandupdatestoeachview

Page 6: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

DevelopmentProcess

•  Individualviewsworkedoninparallelbyindividualteammembers

• Weeklymee3ngswithclients:Dr.Shaffer,EricFouh,DanielBreakiron

• Weeklyupdatesbasedonfeedback

•  GitHub– hZps://github.com/cashaffer/Aalto‐‐

•  hZp://opendsa.cc.vt.edu/

Page 7: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

Whatdoesstudentviewprovide(http://opendsa.cc.vt.edu/student_view/)

• Awayforstudentstoviewtheirprogressandgrades.• Thelistofmodulestheyareproficientin.

• Thislistofexercisestheyareproficientin.• Theirscorebasedofproficientexercises.• Thelistofexercisesthestudentneedstobeproficientto

beproficientinamodule.

• Alistofnon‐proficientanduncompletedexercises.

Page 8: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

StudentView‐Overview

Page 9: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

ModuleView

Page 10: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

ModuleView‐Expanded

Page 11: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

ProficientExercises

Page 12: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

Exercisestobetakenup

Page 13: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

Exercisestobetakenup

Page 14: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

Challengesfaced(Mainlytheperformanceofthesystem)

• Thedataindatabasewasnotinproperformat.

• Therewerecommaseparatedvaluesincertainfieldsduetowhichinnerjoincouldnotbeperformed.

• Thenumberofexercisesistoohigh.

• Alsothenumberofuserexercises‐Entriesofaexercise

foreachuserisevenhigher.

• Wrongtes3ngdatainthelivedatabase.

• Theexerciseshadtobemergedintoeachmodules.

• Thepagetook20secondstoload.

Page 15: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

Solu3ons

•  Ini3allywetriedtoimplementthepagerenderingthroughajax.(didn'twork)

• Triedtopaginateentriesbyfilteringatthecontrollers.(Views.py)‐(alsodidn'twork)

•  SinceSQListhefastest,Ifilteredouttheentriesatthedatabaselevel‐(workedoutpreZywell).

• AorderofNisany3mebeZerthanorderofN2

irrespec3veoftheextraspaceused.

•  A`eralltheop3miza3onsthepagenowloadsinlessthan1second

Page 16: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

InstructorView

hZp://opendsa.cc.vt.edu/teacher_view/•  Allowsinstructortoseefullstudents’exercisesummary,aswellasexercises’studentsummary

•  Displayseachstudent’sstatusesforexercises•  Displayseachstudent’stotalscore•  AbilitytoexporttabletoCSVfileforrecords•  Displaysstudentsineachcategoryforeachexercise

Page 17: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

ExerciseSummary

Page 18: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

CSVFile

Page 19: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

ProgressSummary

Page 20: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

Challenges

•  Display:becauseofextensivenumberofrowsandcolumnsforusersandexercises,scrollingcancauselackofreadability

•  Storage:havinganonlineviewisaccessible,butnotusefulforaninstructor’srecordkeeping

•  Performance:becauseofdatabaseschema,itisexpensivetoreadinforma3onfromvarioustables,causesthepagetoloadveryslowly

Page 21: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

Solu3ons

•  Display:Fixedtableheaders,aswellascolumnsinordertokeepthelabelsfixedwhilelookingatindividualstudent’srow

•  Storage:ExporttoaCSVfileop3onallowsinstructortodownloadthetableandfilteritforvariouspurposes

•  Performance:Storedproceduresinthedatabasetoquerytablesforsingleorsubsetofrowsversusreturningallentriestofilterinview

Page 22: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

DeveloperView�

•  Developers/Researcherswouldliketo– Improvethesystemcontents

– Summarizethestudentbehavior

•  Visualiza3onofindividualstudent’sac3vity– Overallperformance– Exercisesummaryanddetails

•  Informa3onretrievalfromlogdata– Morethan20millionbuZonclickinterac3ons

Thedeveloperviewisavailableat:hZp://opendsa.cc.vt.edu/developer_view/�

Page 23: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

ProficiencyDatesDistribu3on�

Page 24: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

ProficiencyDatesDistribu3on

Page 25: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

ModuleLoadingFrequency �

Page 26: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

ExerciseSummary:Time�

Page 27: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

ExerciseSummary:Visits�

Page 28: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

ExerciseDetails�

Page 29: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

Implementa3on�

•  Challenges– Morethan20millionbuZoneventsinonetable• document‐load,document‐unload•  forward,backward,etc.

– Interpretthedatavia.visualiza3on•  Implementa3on– Precisequery:necessaryeventsareretrieved– Bargraph:html&CSS– Linegraph:JavaScript

Page 30: CS5604: Final Presentaon ProjOpenDSA: Log Support...– Python, Django, MySQL, HTML/CSS/JS Progress • Midterm Presentaon: – Learned soware tools – Designed individual views –

FutureWork�

•  StudentView•  InstructorView– Progresssummaryview

•  DeveloperView– Timelineview

• Wri3ng– Documenta3on

– Finalreport �