Google Summer of Code 2019 - Virtual Labs Ideas list

Organization Administrator

Name: Prof. Venkatesh Choppella

Associate Professor at the International Institute of Information Technology, Hyderabad, India.

Venkatesh is the co-PI of Virtual Labs, Phase II and III (2016-2020). Sponsor: MHRD, Govt. of India. Consortium partners: IITs at Bombay Delhi, Guwahati Kanpur, Kharagpur, Roorkee, Amrita University, COE Pune, Dayalbagh University, NIT Surathkal.

Venkatesh's current research interests are in formal methods and software architectures. In addition, he has an interest in computer science education and FOSS-based educational technology. He has published over 50 research papers and technical reports in the area of automated deduction, type systems, formal methods, compilers, and educational technology.

Project Coordinators

Name: Priya Raman Gitlab/Github: Profile

Name: Lalit Mohan Sanagavarapu Gitlab/Github: Profile

Name: Ravi Shankar Gitlab/Github: Profile

Projects list

1. Virtual Reality Framework for Building Virtual Labs

Mentors Details

Name: Pavan Nallamothu

Gitlab/Github: Profile

Name: Balamma Boya

Gitlab/Github: Profile

Description

Virtual reality is gradually starting to dominate many aspects of our modern life and a variety of industrial sectors. Virtual Labs with Virtual Reality will be about providing interactive labs in 3D view for the students in the web browser. The framework should provide a flexibility to add objects and their properties with actions, a script so that experiments can be played/conducted in Virtual Reality. The Virtual Reality framework should be applicable for demonstration to 10 Physical Sciences Labs of our organization. The experimental environment should have simulation, augmentation, and 3D interaction.

Scope of Work

  1. 3D interaction
  2. Providing education with interactive models
  3. Development of simulation labs using VR toolkit
  4. Understanding of Physical Sciences Labs and their existing issues

Technical Requirements

  1. Unity/OSVR
  2. A-frame
  3. JavaScript
  4. HTML5 and CSS

2. Model Driven Development of Chemical Sciences

Mentors Details

Name: Krutam Hathi

Gitlab/Github: Profile

Description *

In existing Virtual Chemical Sciences Lab, procedures and interaction with lab apparatus are hardwired. We prototyped a model driven approach to make the lab interactive and scalable. This provides faculty and students to design new experiments. The virtual apparatus and chemicals can be used without any fear of reactions and try different 'what if' scenarios. The solution of this problem would also help 8th-12th grade students who are creative but highly restricted from using any chemical solutions and apparatus. Existing Virtual Labs, ChemCollective from CMU and Phet Labs from University of Colorado have been studied and compared before finalizing this approach. The approach also brings in the rigour of model driven development and usage of design patterns.

Scope of Work

  1. Enhance existing prototype with features to add new apparatus and chemicals without a need of a programmer
  2. Improve the Usability of the prototype
  3. Understanding the hows and whys of the reaction
  4. Understand atomic valency to allow/disallow chemical reactions
  5. Generate results for the completed steps of an experiment
  6. Helping easy conclusion drawing method for a reaction

Technical Requirements

  1. Model Driven Development
  2. Javascript
  3. D3
  4. HTML5 and CSS

3. Development of Problem Solving Lab with support for additional programming languages and flexibility to add new problem statements without developer intervention

Mentors Details

Name: Mrudhvika Dhamaraju

Gitlab/Github: Profile

Description

The existing problem solving lab supports C, C++ as the programming languages. There are hints ranging from logic to pseudo-code to syntax for guiding students conduct problem solving experiments. The problem sets, implementation and test cases are predefined with no flexibility to add new programming language and new problems. As part of the idea, we plan to provide flexibility to program in Java, Javascript, PHP, Ruby on Rails, Python, Bash Shell along with C and C++. The lab should also be enhanced to provide flexibility to add new problems (complexity based), hints, test cases, expected output without developer intervention.

Scope of Work

  1. Identify a programming interface such as Jupyter Notebook that supports multiple programming languages (Java, Javascript, PHP, Ruby on Rails, Python, Bash Shell along with C and C)
  2. Enhance to provide an interface for adding new problems, related hints, test cases and expected output

Technical Requirements

  1. HTML5 and CSS
  2. Javascript
  3. Python

4. Automatic Generation of Questions and Answers from Reference Text of an Experiment for Data Structures Lab

Mentors Details

Name: Madhavi Puliraju

Gitlab/Github: Profile

Name: Sadhana Virupaksha

Gitlab/Github: Profile

Description

Existing experiments have multiple choice questions (MCQ) as an assessment. These questions and their corresponding answers are all static. Students who have not been able to answer the questions for the first time will be able to answer it easily the next time. This defeats the purpose and seriousness of conducting virtual experiments.

Scope of Work

  1. Identify ground truth for each of the experiments in Data structures Lab
  2. Use NLP techniques to generate questions and related answers (Frameset, Phrase2Vec, etc)
  3. Develop Assessment page with randomized Q&A
  4. Build a repeatable process to generate MCQ based on provided ground truth in text/prescribed format

Technical Requirements

  1. NLP parsers
  2. ML algorithms
  3. HTML and CSS
  4. Javascript

5. Visualization of data present in Outreach portal

Mentors Details

Name: Mrudhvika Dhamaraju

Gitlab/Github: Profile

Description

Outreach portal contains data of Virtual Labs usage conducted through outreach programs. The data is collected at college , Nodal coordinator conducting at various colleges, Institute coordinator overseeing Nodal Coordinators and Principal Investigator responsible of Institute Coordinator. The data contains information on usage (location, labs, time period, target vs actual and so on). This data needs to be represented at various roles using D3 visualization.

Scope of Work

  1. Understanding data model of Outreach portal
  2. Identifying various charts required
  3. Building various charts/graphs using D3

Technical Requirements

  1. MySQL
  2. Python
  3. D3 js
  4. Javascript

6. Visualization of Virtual Experiments Online Usage

Mentors Details

Name: Madhavi Puliraju

Gitlab/Github: Profile

Name: Sadhana Virupaksha

Gitlab/Github: Profile

Description

Data visualization on demand based on a given parameter such as site visitor account, number of page views, resources download, labwise usage, user time spent on each experiment, day, month and year wise usage etc., helps to understand Virtual Labs usefulness and usability to students. However, experiments are built by developers across locations and that created a challenge in bringing consistency for drawing data on extent of usage of experiments. Having a utility that does not (minimally) intrudes into the code to gather usage of experiments will help in enhancing experiments - usability, usefulness and additional topics.

Scope of Work

  1. Identify tools that can generate analytics in web applications with minimal/non intrusive code
  2. List the analytics that can be generated with the shortlisted tools
  3. Identify an approach/utility for incorporating the change in all 1100+ experiments
  4. Test the generated analytics

Technical Requirements

  1. Javascript
  2. Ajax
  3. Web Server Configurations that includes Apache and Nginx
  4. Shell Scripting
  5. Google Analytics
  6. Kibana
  7. Python
  8. D3
  9. Mysql/MongoDB

7. Conversion of 10 Experiments from Flash to Javascript

Mentor Details

Name: Madhavi Puliraju

Gitlab/Github: Profile

Name Sadhana Virupaksha

Gitlab/Github: Profile

Name: Sravanthi Modepu

Gitlab/Github: Profile

Description

Converting Flash based Virtual Labs to Javascript due to the following reasons:

  1. An announcement from Adobe Flash Player that it will stop supporting flash for the browsers by 2020, due to which users will no longer have any ability to run Flash based applications
  2. Browsers do not have inbuilt support for Flash, the user has to add it themselves as an addon and enable Flash every time they run Flash based application.
  3. Flash is not supported in most of the mobile devices including Apple ipads, iphones etc.,

which has become a regular device for students and faculty to access internet Our approach for approximately 35 experiments has been to decompile swf to get scripts and use the scripts(images) to recreate the experiments using Javascript. However, this is painful and time taking.

Scope of Work

  1. Understand functionality of Computer Organization experiments
  2. Build a utility that can be used to model new experiments or a utility that decompiles to get Actionscript and generates Javascript
  3. Test the functionality after changes

Technical Requirements

  1. HTML5 and CSS
  2. Javascript
  3. Action Script
  4. Python/C/Java for building utility

8. Converting Java3D Labs to WebGL

Mentors Details

Name: Niranjan Sodanapalli

Gitlab/Github: Profile

Description

VLSI and Digital Logic Design labs are using Java3D for experiment simulation. Java3D has is deprecated and Virtual Labs had to keep a library in GitHub repository to support usage of the labs. The experiments in these labs need to be migrated to WebGL/GWT from Java3D.

Scope of Work

  1. Understanding the functionality and usage of VLSI and Digital Logic Design Labs
  2. Implement the functionality using WebGL/GWT
  3. Test the implementation

Technical Requirements

  1. Javascript
  2. WebGL/GWT
  3. Java3D
  4. HTML and CSS

9. NLP lab from PHP to Javascript

Mentors Details

Name: Balamma Boya

Gitlab/Github: Profile

Name: Sravanthi Modepu

Gitlab/Github: Profile

Description

All 10 experiments of the existing Natural Language Processing Lab are built on PHP requiring server side components, making it vulnerable to attackers, slow in performance and does not provide rich UI. The experiments of the lab need to be converted to Javascript while making it responsive in design, scalable to multiple instances based on usage and has less than 3-5 seconds response time.

Scope of Work

  1. Understand the functionality of the experiments
  2. Convert the PHP Lab to Javascript
  3. Fix the existing functionality issues logged on GitHub
  4. Make the lab responsive in design and align to Virtual Labs Usability guidelines
  5. Understanding of NLP Concepts such as POS Tagging, Tokenization, CFG, etc

Technical Requirements

  1. Javascript
  2. HTML5 and CSS
  3. PHP
  4. MySQL
  5. XML/JSON

10. Containerize Virtual Labs for optimizing resource usage

Mentor Details

Name: Madhavi Puliraju

Gitlab/Github: Profile

Name: Sadhana Virupaksha

Gitlab/Github: Profile

Description

Labs contain 8-10 experiments and each lab is hosted on a separate virtual machine instance. Some labs use Client side scripting and some use server side code such as Apache, MySQL, Java, PHP, etc. The usage of the experiments vary based on the month and time of the day. Movement of these labs from virtual instances to containers such as Docker with Kubernetes as Orchestration layer would optimize the usage.

Scope of Work

  1. Identify labs that can be hosted on Docker containers
  2. Finalization of Virtual Machine requirement for installing Docker
  3. Dockerization of labs
  4. Changes to existing Ansible scripts to deploy on Docker containers
  5. Testing of labs for performance and availability

Technical Requirements

  1. Docker and Kubernetes
  2. Virtualization
  3. Ansible for lab deployment

11. Develop framework for generating test cases for client side applications

Mentors Details

Name: Sravanthi Modepu

Gitlab/Github: Profile

Description

Software Testing is an investigation conducted to know about the quality of the software product or service under test. Software testing can also provide an objective, independent view of the software to allow the organization to appreciate and understand the risks of software implementation.

Scope of Work

  1. All the functions in the applications are tested against the requirements document to make sure that the product meets the specifications
  2. Automation tools to write and execute test cases, manual involvement is not required while executing an automated test suite.
  3. Test the run time performance of software in an integrated system.
  4. The applications with huge amount of data and see whether the application produces the anticipated results.
  5. Validate the usability, functionality, compatibility, and reliability testing.
  6. Individual modules are tested to determine if there are any issues by the developer.

Technical Requirements

  1. Robot Framework is a test automation framework for acceptance testing and acceptance test-driven development (ATDD)
  2. Jasmine is a JavaScript-based library to perform unit tests
  3. Protractor - End-2-End and Integration test Automation
  4. KARMA - Test-Runner for Fast-And-Frequent software Unit development

Pages generated from emacs org-mode