Collaborative IDE for E-Classroom with Progress Tracking of Students

Collaborative IDE for E-Classroom with Progress Tracking of Students

COLLABORATIVE IDE FOR E-CLASSROOM WITH PROGRESS TRACKING OF STUDENTS A Thesis Presented to the Faculty of California State Polytechnic University, Pomona In Partial Fulfillment Of the Requirements for the Degree Master of Science In Computer Science By Bhargav V. Parekh 2019 SIGNATURE PAGE THESIS: COLLABORATIVE IDE FOR E- CLASSROOM WITH PROGRESS TRACKING OF STUDENTS AUTHOR: Bhargav V. Parekh DATE SUBMITTED: Fall 2019 Department of Computer Science Dr. Yu Sun Thesis Committee Chair Computer Science Dr. Gilbert Young Computer Science Dr. Hao Ji Computer Science ii ACKNOWLEDGEMENTS I would first like to thank my thesis advisor Dr. Yu Sun. He consistently helped me during my work and provided his best feedback to improve my work to make it most useful product. With his guidance of practical usability of the system only I am able to achieve this goal. I also thank Dr. Gilbert S. Young and Dr. Hao Ji for their willingness to review my work as thesis committee member. I would also like to thank my family to encouraging me for higher studies, without their support this was not possible. A big thanks to all my colleagues who always motivated and pushed me to get best out of myself. iii ABSTRACT The online classrooms are now great in trend. Due to the ample amount of internet - sharing and getting knowledge becomes simple and cost-effective. Nowadays, many schools provide online classes in all areas of the study. This simplicity and easiness attract more and more students towards acquiring knowledge online. According to a private company which helps users to find the best cost-effective coding bootcamps, between the year 2018 and 2019, online coding bootcamps increased 177% based on a market study of 79 cities in US and Canada. With the growth in online coding classes and bootcamps, need arise for tools to help instructors and students to get the highest benefits of the new methods of learning and delivering a lecture. The main problem of this kind of learning is the environment, in the coding/programming field setting up infrastructure and environment is the most crucial part. Another issue is the interaction between instructor and student and progress tracking. In this report, I will be focusing on providing a solution for two main issues: 1) Environment setup, 2) Progress tracking. This report includes my approach to solving these problems by developing software and description of its implementation. iv TABLE OF CONTENTS SIGNATURE PAGE .......................................................................................................... ii ACKNOWLEDGEMENTS............................................................................................... iii ABSTRACT.......................................................................................................................iv LIST OF FIGURES ........................................................................................................... vi CHAPTER 1: INTRODUCTION ....................................................................................... 1 CHAPTER 2: COLLABORATIVE CODE EDITOR ........................................................ 4 2.1 ACE code editor ................................................................................................... 5 2.2 Collaboration on editor......................................................................................... 6 2.3 Conflict resolution ................................................................................................ 7 CHAPTER 3: TERMINAL ON WEB ................................................................................ 8 3.1 Use of terminal ..................................................................................................... 8 3.2 REPL Concept ...................................................................................................... 9 CHAPTER 4: IMPLEMENTATION ............................................................................... 10 4.1 Overview ............................................................................................................ 10 4.2 Software/Platform requirement .......................................................................... 15 4.3 Open-source libraries used ................................................................................. 17 4.4 Deployment details ............................................................................................. 19 4.5 REST APIs ......................................................................................................... 22 4.6 User interface ..................................................................................................... 28 CONCLUSION................................................................................................................. 34 REFERENCES ................................................................................................................. 35 v LIST OF FIGURES Figure 1: Online bootcamp market growth between year 2018 and 2019.......................... 2 Figure 2: Collaborative text editor with user presence based on Firepad library ............... 6 Figure 3: Basic OT diagram and conflit resolution ............................................................ 7 Figure 4: REPL concept in flowchart ................................................................................. 9 Figure 5: User Diagram of the Co-IDE System................................................................ 11 Figure 6: Sequence diagram for instructor user................................................................ 13 Figure 7:Sequence diagram for student user..................................................................... 14 Figure 8: Firepad example with ACE code editor available on https://firepad.io/ ........... 17 Figure 9: GoTTY running example and accessing CLI to a web browser ....................... 19 Figure 10: Instructor's view for starting a new coding class/session................................ 29 Figure 11: Student's view once receive invite url from instructor.................................... 30 Figure 12: Instructor's three column view with student list, code editor and terminal..... 31 Figure 13: Student's view with code editor and terminal view once registered ............... 33 vi CHAPTER 1: INTRODUCTION The online classrooms are getting more popular these days in all field of studies. Due to the ample amount of internet - sharing and getting knowledge becomes simple and cost- effective. Nowadays, online courses have become prominent in schools, particularly for field of Computer Science. Also, Computer Science is the field that every other field of study and industry are integrating with. So, the requirement for learning coding/programming and concepts of computer science are highly on demand. On a small scale, schools offer online courses that have time, physical, instructor availability constraint. In this form of course offering, materials are presented through recorded lectures, problem sets, and readings, and students and professors use mechanisms such as discussion forums to communicate.[1] This simplicity and easiness attract more and more students towards acquiring knowledge online. As per the number published by Oregon State University, from 2013 to 2015, attendance in the CS classes in e-campus program – online course offering program - grew from 100 to more than 2,000 paying students.[4] According to a private company which helps users to find the best cost-effective coding bootcamps, between the year 2018 and 2019, online coding bootcamps increased 177% based on a market study of 79 cities in US and Canada. This market study shows 49% increase in coding bootcamp graduation, this growth includes in-person and online bootcamps. That means in-person method only able to grow by 31% whereas online method increased by 177%. In terms of number of students in online form of bootcamps, number increased from 2022 to 5519 students.[2] This numbers 1 clearly mentions popularity of online courses among learners. ONLINE BOOTCAMPS On line cod ing bootcamps are growing faster than in-person; 5,519 (of the total 23,043 students) wi ll graduate from full-time, online coding bootcamps in 2019. ~ ~~ II c,9-.0 24.3 WEEKS 12,900 ? - ,'1".,. e ONLINE BOOTCAMPS ARE l- LONGER + LESS EXPENSIVE THAN IN-PERSON SCHOOLS 2018 2019 Figure 1: Online bootcamp student graduation market growth between year 2018 and 2019[2] All the benefits come with issues and new problems, as these online programs provide convenience of time, commute and availability at a same time it also causes issues like environment setup and tracking of students’ progress during the session. On-campus instructors can easily interact with their students to resolve problems and keep track of their progress, but massive open online course (MOOC) students have fewer chances to interact with instructor and the other way around, which could limit efficiency of this kind of wonderful programs. Authors of one study suggest that MOOCs cannot offer the social experience of on-campus courses, which limits their effectiveness. [1][4] In computer science specifically in coding courses, environment setup is most important part. For on-campus courses, students have access of infrastructure with proper environment setup but on the 2 same time for online courses there is no such facility that accommodated course requirement. The students have to setup entire environment or in worse case they have to purchase new hardware which is not cost-effective.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    42 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us