Google Summer of Code’ 18 with Oppia

- 7 mins

GSoC

The Google Summer of Code, often abbreviated as GSoC, is an open source initiative taken by Google every year in which the student developers get to work on one of the open source projects during summer and get stipend for their work. This year I was fortunate enough to be a part of GSoC’ 18 under Oppia Foundation. Before diving into the depth of my project, let me take the opportunity to introduce myself: I’m Vibhor Agarwal, a third year Computer Science undergraduate, who loves to contribute to Open Source projects.

Oppia

Oppia is very special for me from the beginning itself since I love teaching from the childhood and have been interested on the noble cause of spreading education among the masses.

About the Project

Oppia is the community for both learners and creators where learners can learn lessons effectively and in an enjoyable way while creators can create the effective and engaging lessons. Being a community based on education, it’s super important that the quality of the content is not compromised at all. For the purpose of effective learning of the students, Oppia provides several interactions to interact with the students, provides students effective UI experience and allow different types of input based on the necessity of the question.

My project “New Interactions” aimed at implementing two new interactions- “Number with Units” and “Drag and Drop Sorting” interactions. These interactions will enhance the learning experience of the learners by interacting and helping them in gaining new skills.

Final Work

Number with Units interaction allows the learners to input value along with the mathematical units. The value can be either a real number or a fraction while units can be SI, non-SI or currency units like dollar, rupees, cents etc. This interaction aims at providing the complete understanding of the number (real or fraction) input with mathematical units by directly interacting with the learners. The interaction in the Learner view looks like:

Number with units interaction in Learner’s view

The input string is validated at every instant before the final submission of the answer to ensure that the learner enters the units in the correct format.

Validation of the answer entered by the learner

In the extreme cases when the learner may be stuck with writing units, he can refer to the help table provided with the interaction by clicking on ‘Possible unit formats’ button.

Interactions are associated with the rules in Oppia. These rules are designed to validate the answer submitted by the learner and provide the appropriate feedback accordingly as and when required. Two rules are implemented for Number with Units interaction:

Rule Editor for Number with units interaction

Drag and Drop Sorting interaction allows the learner to drag and drop the items and arrange them in either ascending or descending order. This interaction aims at providing good understanding of arranging the things with the help of drag and drop interface. The draggable item can be an image, text, numeric input or a fraction, etc. The interaction in the Learner view looks like:

Drag and drop sorting interaction in Learner’s view

It is clear that out of the above items, 2/3 and 4/6 fractions are equivalent and should occupy the same position in the sequence in ascending order. So, they can be dropped so that they somewhat overlap each other as shown while other draggable items shown independently occupy different positions in the sequence.

Items after sorting

Four rules are implemented for Drag and Drop Sorting interaction that verifies the submitted answer and provides appropriate feedback to the learner.

Rule editor for ‘Is equal to ordering’ rule

Rule editor for ‘Has element X at position Y’ rule

Rule editor for ‘Has element X before element Y’ rule


Milestones of the Project

Milestone 1:

Milestone 1.1

Milestone 1.2

Milestone 1.3

Milestone 2:

Milestone 2.1

Milestone 2.2

Milestone 2.3

Milestone 3:

Milestone 3.1

Milestone 3.2

Bug Fixes


Conclusions

Last but not the least, I would like to thank Google for providing this wonderful opportunity to contribute to the open source projects through GSoC, the whole Oppia community for accepting my proposal and helping me through out the program and most importantly my mentor- Prasanna Patil who helped me in every way possible.

Well, I am happy that I learnt so much during this tenure of 3 months. I would like to thank entire Oppia community for this awesome learning experience and I hope to keep my contributions in the future as well.


References

Vibhor Agarwal

Vibhor Agarwal

PhD @University of Surrey, UK | Visiting Researcher @Georgia Tech, @QMUL | Interested in NLP, Graphs, and Computational Social Science | Ex-NLP Research @JP Morgan AI Research, SRE @Media.net, GSoC'18 @Oppia

rss facebook twitter googlescholar github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora