Jump to content

GSoC/2020/StatusReports/DeepakKumar: Difference between revisions

From KDE Community Wiki
 
(88 intermediate revisions by the same user not shown)
Line 3: Line 3:
</gallery>
</gallery>
== GCompris: Multiple Datasets ==
== GCompris: Multiple Datasets ==
{|class="tablecenter vertical-centered"
|[[Image:Gcompris.png |450px|frameless|GCompris]]
|}
== Project Overview ==
== Project Overview ==


GCompris offers many activities related to reading, maths, science and since its 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 a generalized dataset 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.  


So, for this we have the concept of multiple datasets. So, 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 several memory activities, mirror the given images and guess count activity.
My project goals include adding of multiple datasets to the following activities:
 
# Enumeration memory game
# Addition memory game
# Subtraction memory game
# Multiplication memory game
# Division memory game
# Addition and subtraction memory game
# Multiplication and division memory game
# All operations memory game
# Addition memory game against Tux
# Subtraction memory game against Tux
# Multiplication memory game against Tux
# Division memory game against Tux
# Addition and subtraction memory game against Tux
# Multiplication and division memory game against Tux
# All operations memory game against Tux


== Mentors ==
== Mentors ==
Line 21: 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 images and match with the corresponding number cards. This activity is one of the sub-activity of memory activities. The datasets are defined on the basis of increasing number of images for each difficulty levels.
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.
 
[[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


Link to the branch: https://invent.kde.org/education/gcompris/-/tree/deepak_enumeration_memory_games
Link to the commits: [https://invent.kde.org/education/gcompris/-/commit/7be23091b61da73e861dcc41bf541774c9e2716a 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: [https://invent.kde.org/education/gcompris/-/commit/56342bc7c3eb7c7a5795d1a9101a5a257cddeef4 56342bc7]
 
{|class="tablecenter vertical-centered"
|[[Image:Addition.png|450px|frameless|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: [https://invent.kde.org/education/gcompris/-/commit/8a90b65eb38715829d2ca643b5871647c11152a5 8a90b65e]
 
{|class="tablecenter vertical-centered"
|[[Image:Subtraction.png|450px|frameless|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: [https://invent.kde.org/education/gcompris/-/commit/e2e2240cf3b42b6028f7b66725f6f8997a39a303 e2e2240c]
 
{|class="tablecenter vertical-centered"
|[[Image:Multiplication.png|450px|frameless|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: [https://invent.kde.org/education/gcompris/-/commit/a23cda777bdbfb9766a96700c0eda92a0598f154 a23cda77]
 
{|class="tablecenter vertical-centered"
|[[Image:Division-memory-game.png|450px|frameless|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: [https://invent.kde.org/education/gcompris/-/commit/41c4f7f91544ad39c4d1e9421bf8d2f18879ed39 41c4f7f9]


{|class="tablecenter vertical-centered"
{|class="tablecenter vertical-centered"
|[[Image: enumeration.png|450px|frameless]]
|[[Image:Add-minus.png|450px|frameless|Addition and Subtraction Memory game Activity Dataset Screen Dialog]]
| Enumeration memory game activity dataset dialog screen
|}
|}
==== 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: [https://invent.kde.org/education/gcompris/-/commit/47607bd48cced31adc5061348c83c039dbebf67f 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: [https://invent.kde.org/education/gcompris/-/commit/a0aa5a3f07388dd5e8ff86b04cf9f83fff72c607 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.
[[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 the commits: [https://invent.kde.org/education/gcompris/-/commit/53a6d203c6b477ac1d6fa1b2b6264949176d6b01 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:
# 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 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.
[[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 merge request: [https://invent.kde.org/education/gcompris/-/merge_requests/35 gsoc_2020_deepak_guess_count]
== Link to the Blogs ==
* [https://deepak2431.github.io/KDE-GSOC_Community_Bonding/ Community Bonding Period]
* [https://deepak2431.github.io/GSOC-First-Evaluation/ GSoC First Evaluation]
* [https://deepak2431.github.io/GSOC9W/ Multiple Datasets to Gcompris Memory Games]
== Link to the proposal ==
Proposal: https://docs.google.com/document/d/1sGlQubqKtjY51OliWoYucH4kdHUE84u189SqrvqAyhk/edit?usp=sharing
== About me ==
* Name: Deepak Kumar
* IRC nickname: deepak_ / deepak-M
* [https://www.linkedin.com/in/deepak2431/ Linkedln]
* [https://deepakkumar.netlify.app/ Portfolio]

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