GSoC/2020/StatusReports/ShubhamMishra
GCompris: Multiple Datasets
Project Overview
GCompris has been working on adding multiple datasets to make the difficulty range of activities wider. This way the same activity can be easily configured to be played by pupils of different ages or capabilities. and in this GSoC, I am taking forward my SoK work and adding multiple datasets to some more activities.
Mentors
Milestones Achieved
Adding multiple datasets to Sudoku Activity
In this activity, pupils have to solve sudokus of different sizes and difficulty levels. Previously activity had 13 levels out of which 7 levels work with symbols and rest 6 uses numbers.
I have added multiple datasets features in this activity as described in the below task description link. Luckily, the implementation went smoothly for me without any unexpected behavior or bug.
Later I spend a lot of time testing all the levels and also asked my family members for user testing.
Link to the task description: https://phabricator.kde.org/T13108
Link to the branch: https://invent.kde.org/education/gcompris/-/tree/gsoc_2020_shubham_sudoku
As the name suggests, in this activity pupils have to equally distribute candies between their friends.
We initially planned to have only 2 datasets in the activity, in a first type, it is always possible to distribute all the candies among friends while there will be some extra candies left in second.
Later, we decided to have a third dataset too specifically for random levels to make numbers of candies and friends unpredictable.
The activity has lots of strings as instruction which are very much prone to errors, I gave special attention to instruction while updating each level's content. To make sure that they sync with the other keys.
Link to task description: https://phabricator.kde.org/T13110
Link to the branch: https://invent.kde.org/education/gcompris/-/tree/gsoc_2020_shubham_share_pieces_of_candy
Adding multiple datasets to Locate the region Activity
Pupils have to drag and drop different regions on the maps of the country. The activity had 16 mixed levels of different countries.
I have added multiple datasets in the activity to categorize those levels continent wise.
Implementation for the activity is quite straight forward, As It inherits the code from babymatch activity. So, just making the boolean property "useMultipleDataset" = true and adding dataset files worked in this case.
Levels for this activity are defined in external files called "boards" such that each level corresponds to one board. Writing whole data of a level/board in a dataset file can make it very long and messy so we found it is better to add only board's links in the datasets.
Link to the task description: https://phabricator.kde.org/T13111
Link to the branch: https://invent.kde.org/education/gcompris/-/tree/gsoc_2020_shubham_geo-country
Adding multiple datasets to Categorizations Activity
In Categorization, pupils have to identify and categorize elements into correct and incorrect groups.
I have added multiple datasets in the activity, ported previous configuration options to the new Activity Config while taking care of the "Download missing Image" dialog box, So it was a challenging task to deal with all of them together.
Link to task description: https://phabricator.kde.org/T13112
Link to the branch: https://invent.kde.org/education/gcompris/-/tree/gsoc_2020_shubham_categorization
Adding multiple datasets to Gnumch Equality and Inequality Activity
Activities are little bit similar to the game Pacman with the purpose of teaching addition, multiplication, division, and subtraction.
Gnumch Equality and Gnumch Inequality are two activities that use the same code. So I worked on both of them together. I added datasets to these two activities while making sure to not break other activities which inherits Gnumch. I also extended these activities functionality from addition and subtraction to support multiplication and division levels too.
There was a bug in the activity, It's starting from level 2 instead of 1. I also spend time in tracking the source of this bug and fixed it.
Link to task description: https://phabricator.kde.org/T13113
Link to the Merge Request: https://invent.kde.org/education/gcompris/-/merge_requests/28
Adding multiple datasets to Crane Activity
The activity goal is to teach motor-coordination. It had 16 levels mixed with words and images.
I categorized these levels in different datasets depends on whether level is based on images or words of the same lengths. In this activity, We do not need an exact translation for words, just replacing a word with the other same length word would be enough. So, I have only added the key "wordLength" in the dataset and keep the word lists in javascript file only for translators. Also, code has the functionality to use words given by datasets for that anyone has to replace a key "wordLength" with key "word": "cat". This feature has been implemented after taking account the future use case of Gcompris with server mode. Images URL lists are still there in dataset file like any other activity.
Link to task description: https://phabricator.kde.org/T13115
Link to the Merge Request: https://invent.kde.org/education/gcompris/-/merge_requests/30
Adding multiple datasets to Find the details Activity
The activity is about to locate and place small part of an image on its larger version. Activity had 21 levels mixed with paintings, simple photographs, and complex photographs.
I have added three datasets to categorize them according to difficulty levels. This activity is also a child activity of babymatch, so implementation was straight forward. I do not need to deal with javascript, simply adding datasets file works for me.
Datasets for this activity looks same as datasets to locate the region activity.
Link to task description: https://phabricator.kde.org/T13116
Link to the Merge Request: https://invent.kde.org/education/gcompris/-/merge_requests/36
Link to the Blogs
- Final Evaluation
- Week 6-7-8
- First Evaluation
- First Milestone
- Coding officially begins
- GSoC Community Bonding
- Selected For GSoC 2020
Link to the proposal
Proposal: link
About me
- Name: Shubham Mishra
- Email: [email protected]
- IRC nickname: shubham828
- Linkedln