Collaborative IDE for E-Classroom with Progress Tracking of Students

Total Page:16

File Type:pdf, Size:1020Kb

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.
Recommended publications
  • Metadefender Core V4.12.2
    MetaDefender Core v4.12.2 © 2018 OPSWAT, Inc. All rights reserved. OPSWAT®, MetadefenderTM and the OPSWAT logo are trademarks of OPSWAT, Inc. All other trademarks, trade names, service marks, service names, and images mentioned and/or used herein belong to their respective owners. Table of Contents About This Guide 13 Key Features of Metadefender Core 14 1. Quick Start with Metadefender Core 15 1.1. Installation 15 Operating system invariant initial steps 15 Basic setup 16 1.1.1. Configuration wizard 16 1.2. License Activation 21 1.3. Scan Files with Metadefender Core 21 2. Installing or Upgrading Metadefender Core 22 2.1. Recommended System Requirements 22 System Requirements For Server 22 Browser Requirements for the Metadefender Core Management Console 24 2.2. Installing Metadefender 25 Installation 25 Installation notes 25 2.2.1. Installing Metadefender Core using command line 26 2.2.2. Installing Metadefender Core using the Install Wizard 27 2.3. Upgrading MetaDefender Core 27 Upgrading from MetaDefender Core 3.x 27 Upgrading from MetaDefender Core 4.x 28 2.4. Metadefender Core Licensing 28 2.4.1. Activating Metadefender Licenses 28 2.4.2. Checking Your Metadefender Core License 35 2.5. Performance and Load Estimation 36 What to know before reading the results: Some factors that affect performance 36 How test results are calculated 37 Test Reports 37 Performance Report - Multi-Scanning On Linux 37 Performance Report - Multi-Scanning On Windows 41 2.6. Special installation options 46 Use RAMDISK for the tempdirectory 46 3. Configuring Metadefender Core 50 3.1. Management Console 50 3.2.
    [Show full text]
  • Basic Guide: Using VIM Introduction: VI and VIM Are In-Terminal Text Editors That Come Standard with Pretty Much Every UNIX Op
    Basic Guide: Using VIM Introduction: VI and VIM are in-terminal text editors that come standard with pretty much every UNIX operating system. Our Astro computers have both. These editors are an alternative to using Emacs for editing and writing programs in python. VIM is essentially an extended version of VI, with more features, so for the remainder of this discussion I will be simply referring to VIM. (But if you ever do research and need to ssh onto another campus’s servers and they only have VI, 99% of what you know will still apply). There are advantages and disadvantages to using VIM, just like with any text editors. The main disadvantage of VIM is that it has a very steep learning curve, because it is operated via many keyboard shortcuts with somewhat obscure names like dd, dw, d}, p, u, :q!, etc. In addition, although VIM will do syntax highlighting for Python (ie, color code things based on what type of thing they are), it doesn’t have much intuitive support for writing long, extensive, and complex codes (though if you got comfortable enough you could conceivably do it). On the other hand, the advantage of VIM is once you learn how to use it, it is one of the most efficient ways of editing text. (Because of all the shortcuts, and efficient ways of opening and closing). It is perfectly reasonable to use a dedicated program like emacs, sublime, canopy, etc., for creating your code, and learning VIM as a way to edit your code on the fly as you try to run it.
    [Show full text]
  • Appendix a the Ten Commandments for Websites
    Appendix A The Ten Commandments for Websites Welcome to the appendixes! At this stage in your learning, you should have all the basic skills you require to build a high-quality website with insightful consideration given to aspects such as accessibility, search engine optimization, usability, and all the other concepts that web designers and developers think about on a daily basis. Hopefully with all the different elements covered in this book, you now have a solid understanding as to what goes into building a website (much more than code!). The main thing you should take from this book is that you don’t need to be an expert at everything but ensuring that you take the time to notice what’s out there and deciding what will best help your site are among the most important elements of the process. As you leave this book and go on to updating your website over time and perhaps learning new skills, always remember to be brave, take risks (through trial and error), and never feel that things are getting too hard. If you choose to learn skills that were only briefly mentioned in this book, like scripting, or to get involved in using content management systems and web software, go at a pace that you feel comfortable with. With that in mind, let’s go over the 10 most important messages I would personally recommend. After that, I’ll give you some useful resources like important websites for people learning to create for the Internet and handy software. Advice is something many professional designers and developers give out in spades after learning some harsh lessons from what their own bitter experiences.
    [Show full text]
  • VIM Flipper Portal Solution Overview | Opentext
    SOLUTION OVERVIEW VIM Flipper Portal Extend OpenText Vendor Invoice Management (VIM) for SAP® Solutions with additional vendor self-service capabilities associated with Invoice Processing. An OpenText Professional Services package extending the OpenText VIM product Fewer exceptions A key value proposition of a digital invoice processing will improve solution such as OpenText VIM for SAP® Solutions is cost automation savings achieved through high levels of automation and near- touchless execution of invoice processing. While VIM can Better process a variety of input channels including paper, a physical communication invoice must be digitized, recognition is needed to establish to improve vendor key data, and data validation against purchase order details relationships means some level of exception processing can be expected. A reduction of these exceptions will yield further cost savings Save mailroom to the Accounts Payable team. costs through A self-service portal for vendors is a valuable, fully digital input channel for another digital capturing invoices and streamlining communications with vendors. Invoices can be captured digitally, SAP master data is leveraged to speed data validation, and channel communications with the vendor about clarifications/issues is secure and auditable. Additionally, the process is streamlined for vendors making interactions easier and more accurate for all parties in the process. Go live faster Extend VIM Fewer exceptions will improve automation functionality rapidly The VIM Flipper Portal is a great enabler of further digitization for invoice processing. Highly scalable to address large vendor communities and high transaction volumes, the portal integrates tightly with OpenText VIM. The portal promotes quality invoice data submission digitally—“flipping” SAP Purchase Order (PO) data into invoice data—thus reducing transaction errors requiring intervention by AP processors.
    [Show full text]
  • Masterclass Vim
    MASTERCLASS VIM GET TO KNOW VIM MASTERCLASS Essential Linux tools explained – this month, say hello to BEN EVERARD the Vim text editor and some advanced features in Firefox AN INTRODUCTION TO VIM Whatever Unix system you’re using, it will probably have Vim – let’s learn this essential editor. im, which is a hugely flexible text editor for JOHN LANE Linux, is “Vi Improved”. It carries a legacy that Vcan be traced back to the 1970s, when Vi was born as the ‘visual mode’ for the Unix line editor, Ex (Ex itself was the eXtended version of the editor, Ed). The most jarring part of that legacy for new users is that PRO TIP Vim has two main operating modes. “:help vim-modes” helps Command Mode is where you interact with Vim to to explain Vim’s operating modes move around, alter, save and exit; pretty much everything you can think of except the one thing you might want to do: type text into it. That’s what the Vim benefits from many online learning resources, like other mode (Insert Mode) is for. Sadly, many people this interactive tutorial (www.openvim.com). take the time to learn one command at this point: :q, the quit command, so they can go off and find another editor. But Linux Voice readers are a hardy Mode. For basic navigation, you use the hjkl keys to bunch, so we’re staying with it… move left, down, up and right within the file or there are commands that navigate words, sentences, Getting around paragraphs and pages.
    [Show full text]
  • A Netbeans Plugin for Concurrent Programs SCCUR 2013
    BaciBeans: Change the World A NetBeans Plugin for Concurrent Programs SCCUR 2013 The Southern California Conferences Ashley Broadwell, Mentor: J. Stanley Warford for Undergraduate Research Division of Natural Science, Pepperdine University, Malibu, CA 90263 Whittier College, November 23, 2013 Abstract: With BaciBeans: C-- is a programming language developed by M. Ben-Ari to teach principles of concurrent and BaciBeans allows students to easily create a new project by clicking on the existing distributed programming. It is a small subset of the C language but with the added features of With the NetBeans plugin, C-- is easy to install and use. BaciBeans follows the simple installation protocol for NetBeans plugins. Separate installation of NetBeans New Project toolbar button. Clicking on this button shows the C-- New concurrency, semaphores, and monitors. BACI is an acronym for Ben-Ari Concurrency Interpreter. JavaBACI is not necessary as the JavaBACI executable code is built into the plugin. No longer are students forced to use the command line and memorize Project option illustrated in Figure 4. BaciBeans generates a .cm source file when a JavaBACI is an open-source command line concurrency simulator used by students to compile and the build, debug and run commands and flags, they simply press a button in the toolbar of the IDE. The NetBeans plugin also allows for better project new C-- project is created. Students can create a new .cm file or open an existing run C-- programs. NetBeans is an integrated development environment (IDE) that many students management. As illustrated in Figure 2, students can manage their C-- and Java projects together in the same project group.
    [Show full text]
  • Cisco NFVI Network Function Virtualization Infrastructure Naren Narendra, Senior Product Manager
    #CLUS Cisco NFVI Network Function Virtualization Infrastructure Naren Narendra, Senior Product Manager PSOSPG-2012 #CLUS Agenda • Network Function Virtualization Infrastructure (NFVI) Fundamentals • Cisco NFVI Components • Cisco VIM (Virtualized Infrastructure Manager) • Cisco VIM Unified Management • Monitoring & Assurance • Where are we headed? • Conclusion #CLUS PSOSPG-2012 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 3 Cisco Webex Teams Questions? Use Cisco Webex Teams (formerly Cisco Spark) to chat with the speaker after the session How 1 Find this session in the Cisco Events App 2 Click “Join the Discussion” 3 Install Webex Teams or go directly to the team space 4 Enter messages/questions in the team space Webex Teams will be moderated cs.co/ciscolivebot#PSOSPG-2012 by the speaker until June 18, 2018. #CLUS PSOSPG-2012 © 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 4 Network Function Virtualization Infrastructure Fundamentals The ETSI NFV Reference Architecture and NFVI MANO OSS/BSS NFV + = NFVI Orchestrator Hardware Software EM 1 EM 2 EM 3 VNF-M (VNFVNF Managers)Manager VNF 1 VNF 2 VNF 3 • NFVI - Network Function Virtualization Infrastructure is the totality of all hardware NFVI and software components that build the Virtual Virtual Virtual Storage platform in which VNFs are deployed Compute Network Virtualized Virtualization Layer Infrastructur • VIM - Virtualized Infrastructure e Manager Manager Hardware Resources Controls and manages the NFVI compute, Compute Storage Network storage,
    [Show full text]
  • 1Lesson 1: Markup Language and Site Development Essentials
    1Lesson 1: Markup Language and Site Development Essentials Objectives By the end of this lesson, you will be able to: 2.1.1: Relate the history of markup languages to current techniques and technologies, including Standard Generalized Markup Language (SGML), previous versions of Hypertext Markup Language (HTML). 2.1.2: Identify the format and various versions of HTML, including HTML 4.01, Extensible HTML (XHTML), HTML5. 2.1.8: Explain the importance of consistently developing to a single W3C standard (e.g., HTML5). 2.6.1: Describe the functionality of XML. 2.7.1: Obtain input from stakeholders about acceptable technologies and color combinations. 2.7.2: Create an initial Web site diagram (i.e., a story board or prototype), and translate it into a site map. 2.7.3: Verify compliance with government and industry accessibility standards, including W3C Web Accessibility Initiative (WAI), U.S. Government Section 508, Americans with Disabilities Act (ADA). 2.7.4: Validate Web page design according to technical and audience standards adopted by employers. 2.7.5: Verify Web site usability, viewability and browser compatibility. 2.12.1: Test and validate Web documents. 2.12.3: Test Web pages in multiple browsers. 2.13.1: Work as a team member to develop pages and sites. 1-2 Site Development Associate 2.13.2: Collaborate with technical (e.g., IT) and non-technical (e.g., marketing) members of the organization to ensure sites meet requirements. 2.13.3: Determine information and audience requirements for a site, including stakeholders such as customers, employees, shareholders, suppliers. 2.13.4: Document a Web site plan.
    [Show full text]
  • Freepbx User Setup Guide Nextos SIP Trunking
    1 | Page NextOS SIP Trunking FreePBX User Setup Guide © Nextiva, All Rights Reserved 2 | Page Contents What is FreePBX? ..................................................................................................................... 3 FreePBX Setup .......................................................................................................................... 3 Logging into the FreePBX Administration Console .......................................................... 3 Adding a Trunk ................................................................................................................... 3 Applying the Configuration ............................................................................................... 6 Creating an Extension ........................................................................................................ 9 Registering X-Lite ............................................................................................................. 11 Getting FreePBX to Use P-Asserted Identity .................................................................. 11 Logging into the FreePBX Using PuTTY ........................................................................... 12 Creating the extensions_custom.conf File ..................................................................... 13 Reloading the Dial Plan .................................................................................................... 13 Setting Up an Inbound Route .........................................................................................
    [Show full text]
  • Online Code Compilation Using Cloud Computing
    International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395 -0056 Volume: 03 Issue: 05 | May-2016 www.irjet.net p-ISSN: 2395-0072 Online Code Compilation using Cloud Computing Jasmeet Chhabra1, Shubham Bhatia2, Vaibhav Kamal Nigam3, Rashik Bhasin4 1Student, Computer Science and Eng., JIIT University, Noida, U.P., India 2Student, Information Technology, JIIT University, Noida, U.P., India 3Student, Information Technology, JIIT University, Noida, U.P., India 4Student, Computer Science and Eng., JIIT University, Noida, U.P., India ---------------------------------------------------------------------***--------------------------------------------------------------------- Abstract - Computer Program that Software Developers use access their respective codes. In case of scarce need of a to create, debug, maintain, or otherwise support other PC editing of code is impossible. Thus, Online Code programs and applications are Programming Tools, Which Editor was proposed to solve this problem. It helps if produces accurate, meticulous and swift results can lead programmers to write or modify their source code at any to Good Quality Error Free Code. This paper proposed the place and any time they want. [4] The online text editor Online Code Editor that was created for Beginners, was built and run on Private cloud computing based on Programmers Designers or Developers who want to code web-based application. Open source software called programs On the Go without use of a Dedicated Software Ace was used to highlight the text. Program can be Installed having Full Portability and Transferability. It saved and complied via web browser and the code will be based on web application running on the Private cloud done at server-side. Then, the output of the compilation is computing.
    [Show full text]
  • 2018 - 2019 Credit Catalog
    2018 - 2019 Credit Catalog Allentown | Jim Thorpe | Schnecksville | Tamaqua | LVI Airport Baum School of Art | Online Start Here | Go Anywhere lccc.edu 2018-2019 Academic Calendar Summer 2018 Summer Session – First 5-Week Option May 21 .............Monday ..........Classes Begin – Full Term and Online May 22 .............Tuesday ..........Last Day for Course Change or Late Registration May 28 .............Monday ..........College Closed June 1 ...............Friday .............Last Day to file an Application for August Graduation (No August graduation ceremony will be held) June 2 ...............Saturday .........Last Day to Withdraw with an Automatic “W” June 13 .............Wednesday .....Last Day for Class Withdrawal “W” or “Y” Assigned June 21 .............Thursday ........Classes end for TR classes June 25 .............Monday ..........Classes end for MW and MTWR classes June 26 .............Tuesday ..........Final Examinations for TR classes June 27 .............Wednesday .....Final Examinations for MW and MTWR classes June 29 .............Friday .............Grades Due by Faculty Summer Session – 10-Week Option May 21 .............Monday ..........Classes Begin – Full Term and Online May 25 .............Friday .............Last Day for Course Change or Late Registration May 28 .............Monday ..........College Closed June 1 ...............Friday .............Last Day to file an Application for August Graduation (No August graduation ceremony will be held) June 13 .............Wednesday .....Last Day to Withdraw with an Automatic
    [Show full text]
  • A Web-Based Editor for Cloud-Based Programming
    A Web-Based Editor for Cloud-Based Programming Jan Bracker Master’s Thesis submitted in March 2014 Christian-Albrechts-Universität zu Kiel Institut für Informatik Arbeitsgruppe für Programmiersprachen und Übersetzerkonstruktion Advised by: Prof. Dr. Michael Hanus Eidesstattliche Erklärung Hiermit erkläre ich an Eides statt, dass ich die vorliegende Arbeit selbststän- dig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe. Kiel, ii Abstract Today’s programmers and development tools still use concepts and work- flows that were introduced with the early operating systems. Programs are still structured in files and to reuse code a developer still has to search and integrate appropriate libraries all by herself. One way to solve these problems is to structure source code using the semantic concepts a language offers and store them in a database to allow structured access and a more advanced search and support for reuse. These ideas lead to the concept of a code cloud. Last year a group of students at the Christian-Albrechts- University developed such a code cloud; they called it Claude. It supports simple Haskell code, up- and download of Haskell packages, and offers search functionality for the code. Though there are Haskell specific features the general structure of Claude is language independent and is supposed to fit as many languages as possible. This thesis extends Claude with a web-based editor to develop new packages in the code cloud and release them. The editor by design is also kept language independent, but offers integration of language specific features. iii Contents 1 Introduction1 2 Foundations and Technologies5 2.1 JavaScript...............................5 2.1.1 JavaScript Object Notation................6 2.1.2 Language Description...................6 2.1.3 Utility Libraries.......................8 2.1.4 CodeMirror: Editor Component............
    [Show full text]