GSoC/2020/StatusReports/DeepakKumar: Difference between revisions
Deepak Kumar (talk | contribs) |
Deepak Kumar (talk | contribs) |
||
(57 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 | 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 | 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 | My project goals include adding of multiple datasets to the following activities: | ||
# Enumeration memory game | # Enumeration memory game | ||
Line 45: | Line 33: | ||
# All operations memory game against Tux | # All operations memory game against Tux | ||
== Mentors == | |||
* [https://invent.kde.org/jjazeix Johnny Jazeix] | |||
* [https://invent.kde.org/echarruau Emmanuel Charruau] | |||
* [https://invent.kde.org/timotheegiet Timothée Giet] | |||
* [https://invent.kde.org/akshayk Akshay Kumar] | |||
== 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. | |||
[[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 commits: [https://invent.kde.org/education/gcompris/-/commit/7be23091b61da73e861dcc41bf541774c9e2716a 7be23091] | Link to the commits: [https://invent.kde.org/education/gcompris/-/commit/7be23091b61da73e861dcc41bf541774c9e2716a 7be23091] | ||
==== 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 | 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 71: | 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 | 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 83: | 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 | 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 92: | Line 86: | ||
|[[Image:Multiplication.png|450px|frameless|Multiplication Memory game Activity Dataset Screen Dialog]] | |[[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" | |||
|[[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 ==== | |||
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 == | == Link to the Blogs == | ||
Line 97: | Line 174: | ||
* [https://deepak2431.github.io/KDE-GSOC_Community_Bonding/ Community Bonding Period] | * [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/GSOC-First-Evaluation/ GSoC First Evaluation] | ||
* [https://deepak2431.github.io/GSOC9W/ Multiple Datasets to Gcompris Memory Games] | |||
== Link to the proposal == | == Link to the proposal == |
Latest revision as of 20:28, 8 September 2020
GCompris: Multiple Datasets
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:
- 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
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.
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
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
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
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
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
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.
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:
- 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.
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
- Name: Deepak Kumar
- Email: [email protected]
- IRC nickname: deepak_ / deepak-M
- Linkedln
- Portfolio