GSoC/2020/StatusReports/DeepakKumar: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2020‎ | StatusReports
 
(25 intermediate revisions by the same user not shown)
Line 11: Line 11:
== Project Overview ==
== Project Overview ==


GCompris offers many activities related to reading, maths, science and since it is free software, everyone can adapt it to one’s own needs, improve it and, most importantly, share it with children everywhere around the world. Currently, most of the activities had generalized datasets so for some of the age groups like 3-5 yrs the activity were quite difficult to play, while for older age groups the activity were easy.  
GCompris offers many activities related to reading, maths, science and since it is free software, everyone can adapt it to one’s own needs, improve it and, most importantly, share it with children everywhere around the world. Currently, most of the activities had generalized datasets so for some of the age groups like 3-5 yrs the activities were quite difficult to play, while for older age groups the activities were easy.  


For this, we have the concept of multiple datasets. Multiple datasets helps making the activity adaptive for children of all age groups. Multiple datasets mean having different datasets file for each age group.
For this, we have the concept of multiple datasets. Multiple datasets help to make the activities adaptive for children of all age groups. Multiple datasets mean having different datasets file for each age group.


My project goals include adding of multiple datasets to following activities:
My project goals include adding of multiple datasets to the following activities:


# Enumeration memory game
# Enumeration memory game
Line 43: Line 43:
==== Adding multiple datasets to Enumeration Memory Game Activity ====
==== Adding multiple datasets to Enumeration Memory Game Activity ====


In this activity, the child needs to turn the cards to count the number of elements of an image and match with the corresponding number cards. I started my work of implementing multiple datasets to memory activities with this activity. To do this I needed to change the logic of the code to support both the default datasets and the multiple datasets.  
In this activity, the child needs to turn the cards to count the number of elements of an image and match with the corresponding number cards. I started my work on implementing multiple datasets to memory activities with this activity. To do this I needed to change the logic of the code to support both the default datasets and the multiple datasets. This activity is one of the sub-activity of memory activities. The datasets for this activity are defined on the basis of an increasing number of images for each difficulty level.
This activity is one of the sub-activity of memory activities. The datasets for this activity are defined on the basis of increasing number of images for each difficulty levels.


[[File:Peek 2020-08-22 22-20.gif|frame|center|Working Demo of Enumeration Memory Game]]
[[File:Enumerration Demo.gif|frame|center|Working Demo of Enumeration Memory Game]]


Link to the task description: https://phabricator.kde.org/T13121
Link to the task description: https://phabricator.kde.org/T13121
Line 54: Line 53:
==== Adding multiple datasets to Addition Memory Game Activity ====
==== Adding multiple datasets to Addition Memory Game Activity ====


In this activity, the child needs to turn the cards to match an addition and its result, until all the cards are gone. The goal of this activity is to practice addition. This activity has two modes as one of them as single player mode while another as two player mode. The two player mode is called as one "with Tux". I have implemented multiple datasets to both modes of this activity.
In this activity, the child needs to turn the cards to match addition and its result, until all the cards are gone. The goal of this activity is to practice addition. This activity has two modes as one of them as single-player mode while another as a two-player mode. The two-player mode is called as one "with Tux". I have implemented multiple datasets for both modes of this activity.


Link to task description: https://phabricator.kde.org/T13122
Link to task description: https://phabricator.kde.org/T13122
Line 66: Line 65:
==== Adding multiple datasets to Subtraction Memory Game Activity ====
==== Adding multiple datasets to Subtraction Memory Game Activity ====


In this activity, the child needs to turn the cards to match a subtraction and its result, until all the cards are gone. The goal of this activity is to practice subtraction. This activity has two modes as one of them as single player mode while another as two player mode. The two player mode is called as one "with Tux". I have implemented multiple datasets to both modes of this activity.  
In this activity, the child needs to turn the cards to match a subtraction and its result, until all the cards are gone. The goal of this activity is to practice subtraction. This activity has two modes as one of them as single-player mode while another as a two-player mode. The two-player mode is called as one "with Tux". I have implemented multiple datasets for both modes of this activity.


Link to the task description: https://phabricator.kde.org/T13123
Link to the task description: https://phabricator.kde.org/T13123
Line 78: Line 77:
==== Adding multiple datasets to Multiplication Memory Game Activity ====
==== Adding multiple datasets to Multiplication Memory Game Activity ====


In this activity, the child needs to turn the cards to match a multiplication and its result, until all the cards are gone. The goal of this activity is to practice multiplication. This activity has two modes as one of them as single player mode while another as two player mode. The two player mode is called as one "with Tux". I have implemented multiple datasets to both modes of this activity.
In this activity, the child needs to turn the cards to match a multiplication and its result, until all the cards are gone. The goal of this activity is to practice multiplication. This activity has two modes as one of them as single-player mode while another as a two-player mode. The two-player mode is called as one "with Tux". I have implemented multiple datasets for both modes of this activity.


Link to task description: https://phabricator.kde.org/T13124
Link to task description: https://phabricator.kde.org/T13124
Line 90: Line 89:
==== Adding multiple datasets to Division Memory Game Activity ====
==== Adding multiple datasets to Division Memory Game Activity ====


In this sub-activity of memory, the child needs to turn the cards to match a division and its result, until all the cards are gone. The goal of this activity is to practice division. This activity has two modes as one of them as single player mode while another as two player mode. The two player mode is called as one "with Tux". I have implemented multiple datasets to both modes of this activity.  
In this sub-activity of memory, the child needs to turn the cards to match a division and its result, until all the cards are gone. The goal of this activity is to practice division. This activity has two modes as one of them as single-player mode while another as a two-player mode. The two-player mode is called as one "with Tux". I have implemented multiple datasets for both modes of this activity.  


Link to task description: https://phabricator.kde.org/T13125
Link to task description: https://phabricator.kde.org/T13125
Line 103: Line 102:


In this sub-activity of memory, the child needs to turn the cards to match addition and subtraction and its result until all cards are gone.
In this sub-activity of memory, the child needs to turn the cards to match addition and subtraction and its result until all cards are gone.
The level of previous memory activities were based on only a single arithmetic operation as only-addition or only-division, but this memory activities has two different operation for a particular level. As in case of this activity for any level, there would be few cards on addition operation and few of them upon subtraction.
The levels of previous memory activities were based on only a single arithmetic operation as only-addition or only-division, but this memory activity has two different operations for a particular level. As in the case of this activity for any level, there would be few cards on addition operation and few of them upon subtraction.
This activity has two modes as one of them as single player mode while another as two player mode. The two player mode is called as one "with Tux". I have implemented multiple datasets to both modes of this activity.  
This activity has two modes as one of them as single-player mode while another as a two-player mode. The two-player mode is called as one "with Tux". I have implemented multiple datasets for both modes of this activity.  


Link to task description: https://phabricator.kde.org/T13126
Link to task description: https://phabricator.kde.org/T13126
Line 113: Line 112:
|[[Image:Add-minus.png|450px|frameless|Addition and Subtraction Memory game Activity Dataset Screen Dialog]]
|[[Image:Add-minus.png|450px|frameless|Addition and Subtraction Memory game Activity Dataset Screen Dialog]]
|}
|}


==== Adding multiple datasets to Multiplication and Division Memory Game Activity ====
==== Adding multiple datasets to Multiplication and Division Memory Game Activity ====


In this sub-activity of memory, the child needs to turn the cards to match multiplication and division and its result until all cards are gone.
In this sub-activity of memory, the child needs to turn the cards to match multiplication and division and its result until all cards are gone.
This memory activity also have two different operation for a particular level. As in case of this activity for any level, there would be few cards on multiplication operation and few of them upon division.
This memory activity also has two different operations for a particular level. As in the case of this activity for any level, there would be few cards on multiplication operation and a few of them upon division.
This activity has two modes as one of them as single player mode while another as two player mode. The two player mode is called as one "with Tux". I have implemented multiple datasets to both modes of this activity.  
This activity has two modes as one of them as single-player mode while another as a two-player mode. The two-player mode is called as one "with Tux". I have implemented multiple datasets for both modes of this activity.


Link to task description: https://phabricator.kde.org/T13127
Link to task description: https://phabricator.kde.org/T13127
Line 128: Line 126:


In this sub-activity of memory, the child needs to turn the cards to match any arithmetic and its result until all cards are gone.
In this sub-activity of memory, the child needs to turn the cards to match any arithmetic and its result until all cards are gone.
This previous memory activities have single operation or two different operations for a particular level. This memory activity have all arithmetic operations as addition, subtraction, multiplication and division for a particular level. operation for a particular level. As in case of this activity for any level, there would be few cards on addition, few on subtraction and few on multiplication or division.
This previous memory activities have a single operation or two different operations for a particular level. This memory activity has all arithmetic operations as addition, subtraction, multiplication, and division for a particular level. the operation for a particular level. As in the case of this activity for any level, there would be few cards on addition, few on subtraction, and few on multiplication or division.
This activity has two modes as one of them as single player mode while another as two player mode. The two player mode is called as one "with Tux". I have implemented multiple datasets to both modes of this activity.  
This activity has two modes as one of them as single-player mode while another as a two-player mode. The two-player mode is called as one "with Tux". I have implemented multiple datasets for both modes of this activity.  


Link to task description: https://phabricator.kde.org/T13128
Link to task description: https://phabricator.kde.org/T13128
Line 137: Line 135:
== Overall Summary of multiple datasets for Memory Activities ==
== Overall Summary of multiple datasets for Memory Activities ==


Multiple datasets have been added to all memory activities as mentioned in my task. Luckily, the implementation process was smooth for me as I didn't stuck anywhere too longer.
Multiple datasets have been added to all memory activities as mentioned in my task. Luckily, the implementation process was smooth for me as I didn't stuck anywhere for too long.
The other details about the regression and the testing process can be found here: https://deepak2431.github.io/GSOC9W/
The other details about the regression and the testing process can be found here: https://deepak2431.github.io/GSOC9W/


== Multiple Datasets to Mirror the Given Image ==
== Multiple Datasets to Mirror the Given Image ==


In this activity the child need to draw the mirror of the given grid image using different colors. The multiple datasets were already present in this activity. My work was to improve the multiple datasets to make it more adaptive as per different age groups.
In this activity, the child needs to draw the mirror of the given grid image using different colors. The multiple datasets were already present in this activity. My work was to improve the multiple datasets to make it more adaptive as per different age groups.
After improving one of the multiple datasets I found a bug while testing it that color couldn't be filled in the last grids. It was fixed in one of the commit and after that I have worked to implement the further multiple datasets.
After improving one of the multiple datasets I found a bug while testing it that color couldn't be filled in the last grids. It was fixed in one of the commits and after that, I have worked to implement the further multiple datasets.
 


[[File:Peek 2020-08-23 15-47.gif|500px|frame|center|Mirror the given image working demo]]
[[File:Peek 2020-08-26 19-56.gif|400px|frame|center|Mirror the given image working demo]]


Link to phabricator task:  https://phabricator.kde.org/T13105
Link to phabricator task:  https://phabricator.kde.org/T13105
Line 154: Line 152:
== Multiple Datasets to Guess Count Activity ==
== Multiple Datasets to Guess Count Activity ==


In this activity the child need to drag the given operands to calculate the arithmetic result as per given guess count.
In this activity, the child needs to drag the given operands to calculate the arithmetic result as per the given guess count.
This activity was having two different mode one as the "Builtin" and other one as the "Admin" mode. There were no multiple datasets in this activity. After having a discussion with the mentors as how to add multiple datasets to this activity we agreed to separate the mode in this way:
This activity was having two different mode one as the "Builtin" and the other one as the "Admin" mode. There were no multiple datasets in this activity. After having a discussion with the mentors as to how to add multiple datasets to this activity we agreed to separate the mode in this way:
# When selecting the Admin mode, the datasets selection must have no effect on the activity, as the activity must follow the levels/content specified in the Admin mode options.
# When selecting the Admin mode, the selection of the dataset must have no effect on the activity, as the activity must follow the levels/content specified in the Admin mode options.
# When selecting the BuiltIn mode, the activity must use the datasets content for the multiple datasets.
# When selecting the BuiltIn mode, the activity must use the content of the datasets for the multiple datasets.
 
Firstly, I separated both modes in such a way that loading one of the modes should not affect the other. I added the multiple datasets to it as for this I implemented an algorithm to find that should use the same function used to build the admin mode datasets. I did this as I thought it won't be good to rewrite the same function twice with slight changes. After the review of the datasets by the mentors there was some improvement suggested for multiple dataset 4. As for it, there was only 1 level so I added more two-levels to it. Also, it was mentioned in the multiple datasets parent task description that when selecting one of the modes it should disable the other mode. For this, I need to make changes to the core DialogChooseLevel.qml file. I used a boolean to disable one mode in case another mode is active.
 
After testing the builtin mode it was all good but there were some issues with the admin mode. I have fixed all of the issues as mentioned by mentors.
 
This activity is merged in the master branch.
 


Till now, I have separated the both modes and working to add multiple datasets to it.
[[File:Peek 2020-08-28 22-23.gif|400px|frame|center|Guesscount working demo]]


Link to the task on phabricator: https://phabricator.kde.org/T13104
Link to the task on phabricator: https://phabricator.kde.org/T13104


Link to the working branch: [https://invent.kde.org/education/gcompris/-/tree/gsoc_2020_deepak_guess_count gsoc_2020_deepak_guess_count]
Link to the merge request: [https://invent.kde.org/education/gcompris/-/merge_requests/35 gsoc_2020_deepak_guess_count]


== Link to the Blogs ==
== Link to the Blogs ==

Latest revision as of 20:28, 8 September 2020

GCompris: Multiple Datasets

GCompris

Project Overview

GCompris offers many activities related to reading, maths, science and since it is free software, everyone can adapt it to one’s own needs, improve it and, most importantly, share it with children everywhere around the world. Currently, most of the activities had generalized datasets so for some of the age groups like 3-5 yrs the activities were quite difficult to play, while for older age groups the activities were easy.

For this, we have the concept of multiple datasets. Multiple datasets help to make the activities adaptive for children of all age groups. Multiple datasets mean having different datasets file for each age group.

My project goals include adding of multiple datasets to the following activities:

  1. Enumeration memory game
  2. Addition memory game
  3. Subtraction memory game
  4. Multiplication memory game
  5. Division memory game
  6. Addition and subtraction memory game
  7. Multiplication and division memory game
  8. All operations memory game
  9. Addition memory game against Tux
  10. Subtraction memory game against Tux
  11. Multiplication memory game against Tux
  12. Division memory game against Tux
  13. Addition and subtraction memory game against Tux
  14. Multiplication and division memory game against Tux
  15. All operations memory game against Tux

Mentors

Milestones Achieved

Adding multiple datasets to Enumeration Memory Game Activity

In this activity, the child needs to turn the cards to count the number of elements of an image and match with the corresponding number cards. I started my work on implementing multiple datasets to memory activities with this activity. To do this I needed to change the logic of the code to support both the default datasets and the multiple datasets. This activity is one of the sub-activity of memory activities. The datasets for this activity are defined on the basis of an increasing number of images for each difficulty level.

Working Demo of Enumeration Memory Game

Link to the task description: https://phabricator.kde.org/T13121

Link to the commits: 7be23091

Adding multiple datasets to Addition Memory Game Activity

In this activity, the child needs to turn the cards to match addition and its result, until all the cards are gone. The goal of this activity is to practice addition. This activity has two modes as one of them as single-player mode while another as a two-player mode. The two-player mode is called as one "with Tux". I have implemented multiple datasets for both modes of this activity.

Link to task description: https://phabricator.kde.org/T13122

Link to the commits: 56342bc7

Addition Memory game Activity Dataset Screen Dialog

Adding multiple datasets to Subtraction Memory Game Activity

In this activity, the child needs to turn the cards to match a subtraction and its result, until all the cards are gone. The goal of this activity is to practice subtraction. This activity has two modes as one of them as single-player mode while another as a two-player mode. The two-player mode is called as one "with Tux". I have implemented multiple datasets for both modes of this activity.

Link to the task description: https://phabricator.kde.org/T13123

Link to the commits: 8a90b65e

Subtraction Memory game Activity Dataset Screen Dialog

Adding multiple datasets to Multiplication Memory Game Activity

In this activity, the child needs to turn the cards to match a multiplication and its result, until all the cards are gone. The goal of this activity is to practice multiplication. This activity has two modes as one of them as single-player mode while another as a two-player mode. The two-player mode is called as one "with Tux". I have implemented multiple datasets for both modes of this activity.

Link to task description: https://phabricator.kde.org/T13124

Link to the commits: e2e2240c

Multiplication Memory game Activity Dataset Screen Dialog

Adding multiple datasets to Division Memory Game Activity

In this sub-activity of memory, the child needs to turn the cards to match a division and its result, until all the cards are gone. The goal of this activity is to practice division. This activity has two modes as one of them as single-player mode while another as a two-player mode. The two-player mode is called as one "with Tux". I have implemented multiple datasets for both modes of this activity.

Link to task description: https://phabricator.kde.org/T13125

Link to the commits: a23cda77

Division Memory game Activity Dataset Screen Dialog

Adding multiple datasets to Addition and Subtraction Memory Game Activity

In this sub-activity of memory, the child needs to turn the cards to match addition and subtraction and its result until all cards are gone. The levels of previous memory activities were based on only a single arithmetic operation as only-addition or only-division, but this memory activity has two different operations for a particular level. As in the case of this activity for any level, there would be few cards on addition operation and few of them upon subtraction. This activity has two modes as one of them as single-player mode while another as a two-player mode. The two-player mode is called as one "with Tux". I have implemented multiple datasets for both modes of this activity.

Link to task description: https://phabricator.kde.org/T13126

Link to the commits: 41c4f7f9

Addition and Subtraction Memory game Activity Dataset Screen Dialog

Adding multiple datasets to Multiplication and Division Memory Game Activity

In this sub-activity of memory, the child needs to turn the cards to match multiplication and division and its result until all cards are gone. This memory activity also has two different operations for a particular level. As in the case of this activity for any level, there would be few cards on multiplication operation and a few of them upon division. This activity has two modes as one of them as single-player mode while another as a two-player mode. The two-player mode is called as one "with Tux". I have implemented multiple datasets for both modes of this activity.

Link to task description: https://phabricator.kde.org/T13127

Link to the commits: 47607bd4

Adding multiple datasets to All Operations Memory Game Activity

In this sub-activity of memory, the child needs to turn the cards to match any arithmetic and its result until all cards are gone. This previous memory activities have a single operation or two different operations for a particular level. This memory activity has all arithmetic operations as addition, subtraction, multiplication, and division for a particular level. the operation for a particular level. As in the case of this activity for any level, there would be few cards on addition, few on subtraction, and few on multiplication or division. This activity has two modes as one of them as single-player mode while another as a two-player mode. The two-player mode is called as one "with Tux". I have implemented multiple datasets for both modes of this activity.

Link to task description: https://phabricator.kde.org/T13128

Link to the commits: a0aa5a3f

Overall Summary of multiple datasets for Memory Activities

Multiple datasets have been added to all memory activities as mentioned in my task. Luckily, the implementation process was smooth for me as I didn't stuck anywhere for too long. The other details about the regression and the testing process can be found here: https://deepak2431.github.io/GSOC9W/


Multiple Datasets to Mirror the Given Image

In this activity, the child needs to draw the mirror of the given grid image using different colors. The multiple datasets were already present in this activity. My work was to improve the multiple datasets to make it more adaptive as per different age groups. After improving one of the multiple datasets I found a bug while testing it that color couldn't be filled in the last grids. It was fixed in one of the commits and after that, I have worked to implement the further multiple datasets.

Mirror the given image working demo

Link to phabricator task: https://phabricator.kde.org/T13105

Link to the commits: 53a6d203

Multiple Datasets to Guess Count Activity

In this activity, the child needs to drag the given operands to calculate the arithmetic result as per the given guess count. This activity was having two different mode one as the "Builtin" and the other one as the "Admin" mode. There were no multiple datasets in this activity. After having a discussion with the mentors as to how to add multiple datasets to this activity we agreed to separate the mode in this way:

  1. When selecting the Admin mode, the selection of the dataset must have no effect on the activity, as the activity must follow the levels/content specified in the Admin mode options.
  2. When selecting the BuiltIn mode, the activity must use the content of the datasets for the multiple datasets.

Firstly, I separated both modes in such a way that loading one of the modes should not affect the other. I added the multiple datasets to it as for this I implemented an algorithm to find that should use the same function used to build the admin mode datasets. I did this as I thought it won't be good to rewrite the same function twice with slight changes. After the review of the datasets by the mentors there was some improvement suggested for multiple dataset 4. As for it, there was only 1 level so I added more two-levels to it. Also, it was mentioned in the multiple datasets parent task description that when selecting one of the modes it should disable the other mode. For this, I need to make changes to the core DialogChooseLevel.qml file. I used a boolean to disable one mode in case another mode is active.

After testing the builtin mode it was all good but there were some issues with the admin mode. I have fixed all of the issues as mentioned by mentors.

This activity is merged in the master branch.


Guesscount working demo

Link to the task on phabricator: https://phabricator.kde.org/T13104

Link to the merge request: gsoc_2020_deepak_guess_count

Link to the Blogs

Link to the proposal

Proposal: https://docs.google.com/document/d/1sGlQubqKtjY51OliWoYucH4kdHUE84u189SqrvqAyhk/edit?usp=sharing

About me