GSoC/2021/StatusReports/MariamFahmy: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2021‎ | StatusReports
 
(17 intermediate revisions by the same user not shown)
Line 3: Line 3:
<p>GCompris is a high quality educational software suite, including a large number of activities for children aged 2 to 10, some of the activities are game orientated, but nonetheless still educational.</p>
<p>GCompris is a high quality educational software suite, including a large number of activities for children aged 2 to 10, some of the activities are game orientated, but nonetheless still educational.</p>
<p>Currently GCompris offers more than 150 activities, and more are being developed. GCompris is free software, it means that you can adapt it to your own needs, improve it, and most importantly share it with children everywhere.</p>
<p>Currently GCompris offers more than 150 activities, and more are being developed. GCompris is free software, it means that you can adapt it to your own needs, improve it, and most importantly share it with children everywhere.</p>
<p>My project goals include adding four new activities to GCompris:</p>
<p>My project goals include adding four new activities to GCompris as well as supporting loops in programming maze activity, here is a list of the new activities:</p>
<ul><li>Subtraction decimal number activity.
<ul><li>Learn decimal number activity.
</li><li>Subtraction decimal number activity.
</li><li>Addition decimal number activity.
</li><li>Addition decimal number activity.
</li><li>Programming maze loops activity.
</li><li>Mouse control action activity.</li></ul>
</li><li>Mouse control action activity.</li></ul>


Line 21: Line 21:
<p>The activity provides instruction tutorials on how to play with it, both vertical and horizontal layout are supported.</p>
<p>The activity provides instruction tutorials on how to play with it, both vertical and horizontal layout are supported.</p>
<!-- /wp:paragraph -->
<!-- /wp:paragraph -->
 
[[File:Horizontal Layout.gif|400px|frame|center|Horizontal Layout for learn-decimal working demo]]
 
 
=== Learn addition for decimal numbers ===
=== Learn addition for decimal numbers ===
In this activity, an addition with two decimal numbers is displayed, and the kid has to represent the result of the addition by dragging bars into the empty space, in case he represents the result correctly, he is asked to type the corresponding result.
In this activity, an addition with two decimal numbers is displayed, and the kid has to represent the result of the addition by dragging bars into the empty space, in case he represents the result correctly, he is asked to type the corresponding result.
[[File:Addition horizonatal.gif|400px|frame|center|Horizontal Layout for learn-addition-decimal working demo]]
=== Learn subtraction for decimal numbers ===
=== Learn subtraction for decimal numbers ===
<!-- wp:paragraph -->
<!-- wp:paragraph -->
Line 34: Line 33:
<p>A cross is added to all square units after the clicked square such that the kid can visualize what has been removed from the first decimal number, if he represented the result correctly then he is asked to type the corresponding result.</p>
<p>A cross is added to all square units after the clicked square such that the kid can visualize what has been removed from the first decimal number, if he represented the result correctly then he is asked to type the corresponding result.</p>
<!-- /wp:paragraph -->
<!-- /wp:paragraph -->
[[File:subtraction_horizontal.gif|400px|frame|center|Horizontal Layout for learn-subtraction-decimal working demo]]
==== Phabricator task ====
https://phabricator.kde.org/T14694
==== Related Commits ====
* [https://invent.kde.org/education/gcompris/-/commit/58c6902abd967e152e3eb5f6bf51a2b367c73fc7 learn-decimals, adding new activity.]
* [https://invent.kde.org/education/gcompris/-/commit/de88ef2d058bfb29724b807f9a8386461b939e33 learn-decimals-additions, adding new activity.]
* [https://invent.kde.org/education/gcompris/-/commit/4d22a36626dabb079b2bdbcc1c2c3fee2040f22f learn-decimals-subtraction, adding new activity.]
* [https://invent.kde.org/education/gcompris/-/commit/845da1758c6309317a0e00df47a201fbfbfa0eed core, adding decimal point character in NumPad.qml]
* [https://invent.kde.org/education/gcompris/-/commit/9435b4cae16aacd58497685d37d48afc1c708d36 learn-decimal-addition, modifying datasets.]
* [https://invent.kde.org/education/gcompris/-/commit/99f51842920e31c5282b7440f01e1150c87dcd9c learn-decimals, clearing firstNumberList in case all possible values are displayed.]
* [https://invent.kde.org/education/gcompris/-/commit/ee691b0c13084afbcb37021acc0392fa831cf959 learn-decimals-addition, fixing comma decimal character issue with the parseFloat.]


=== Programming Maze Activity ===
=== Programming Maze Activity ===
Line 53: Line 65:
<!-- /wp:list -->
<!-- /wp:list -->
[[File:ProgrammingMaze Loops.gif|400px|frame|center|ProgrammingMaze supporting loops working demo]]
[[File:ProgrammingMaze Loops.gif|400px|frame|center|ProgrammingMaze supporting loops working demo]]
==== Phabricator task ====
https://phabricator.kde.org/T8129
==== Related Commits ====
[https://invent.kde.org/education/gcompris/-/commit/5e994602e7b3e02eb56b6fd2f2008ae3c103061c programmingMaze, add loops and split levels in datasets.]
=== Mouse Control Action Activity ===
<!-- wp:paragraph -->
<p>The goal of this new activity is to provide audio-visual feedback in a relatively meaningful way when using the mouse to help in discovering its usage for a young kid.</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>The activity’s goal is achieved by having:</p>
<!-- /wp:paragraph -->
<!-- wp:list -->
<ul><li>Mouse movements lead to producing duck’s motion, it is done by representing the four mouse movements into four arrows in different directions, so that the kid can discover the four different movements while playing with the mouse or touching in case of tablets.</li><li>Main Duck is placed at the center of the screen, and associating the four mouse movements with duck’s motion, whenever kid moves the mouse to a specific direction, the main duck moves accordingly, and the scale of the arrow corresponding to it increases.</li><li>A column on four ducks so that clicking on a specific duck will produce a specific funny sound, duck’s animation by rotating it from 0 to 360, and produce sparkles, its goal is learning that a click does something and clicking in different places can do different things.</li><li>Clicking anywhere will produce a generic sound.</li><li>Associating a click with a simple position indicator, its goal is adding a visual feedback showing the place that was clicked.</li></ul>
<!-- /wp:list -->
[[File:Mouse control.gif|400px|frame|center|Mouse Control Action working demo]]
==== Phabricator task ====
https://phabricator.kde.org/T12990
=== Related Blogs ===
* [https://mariamfahmy98.wordpress.com/2021/06/15/gsoc21-week-1-the-beginning/ Week 1: Learn Decimals Subtraction.]
* [https://mariamfahmy98.wordpress.com/2021/07/05/gsoc21-week-2-3-and-4-finalizing-learn-decimals-activities/ Week 2, 3, and 4: Learn Decimals Addition and finalizing learn decimals sub activities.]
* [https://mariamfahmy98.wordpress.com/2021/07/17/gsoc21-week-5-and-6-programming-maze/ Week 5 and 6: Supporting Loops in Programming Maze activity.]
* [https://mariamfahmy98.wordpress.com/2021/08/06/gsoc21-week-7-and-8-mouse-control-action-activity/ Week 7 and 8: Mouse Control Action activity.]
* [https://mariamfahmy98.wordpress.com/2021/08/17/gsoc21-week-9-and-10-finalizing-mouse-control-action-activity/ Week 9 and 10: Finalizing Mouse Control Action activity.]

Latest revision as of 10:19, 24 August 2021

GCompris: Adding New Activities

Project Overview

GCompris is a high quality educational software suite, including a large number of activities for children aged 2 to 10, some of the activities are game orientated, but nonetheless still educational.

Currently GCompris offers more than 150 activities, and more are being developed. GCompris is free software, it means that you can adapt it to your own needs, improve it, and most importantly share it with children everywhere.

My project goals include adding four new activities to GCompris as well as supporting loops in programming maze activity, here is a list of the new activities:

  • Learn decimal number activity.
  • Subtraction decimal number activity.
  • Addition decimal number activity.
  • Mouse control action activity.

Learn decimal numbers

In this activity, a decimal number is displayed. the bar with the arrow represents a full unit, and each square in it represents one tenth of this unit, the kid has to drag the arrow to select a part of the bar, and drop the selected part into the empty area so that the number of dropped bars corresponds to the displayed decimal number.

For every dropped bar, all bars are organized after 1 second from the drop action such that the kid can see the reorganization of bars, as a result we add a place for a 6th bar to have at most 5 full bars.

The activity provides instruction tutorials on how to play with it, both vertical and horizontal layout are supported.

Horizontal Layout for learn-decimal working demo

Learn addition for decimal numbers

In this activity, an addition with two decimal numbers is displayed, and the kid has to represent the result of the addition by dragging bars into the empty space, in case he represents the result correctly, he is asked to type the corresponding result.

Horizontal Layout for learn-addition-decimal working demo

Learn subtraction for decimal numbers

In this activity, a subtraction with two decimal numbers is displayed. Below it, the first number from the subtraction is represented with bars, the kid has to click on the squares to represent the result of the subtraction.

A cross is added to all square units after the clicked square such that the kid can visualize what has been removed from the first decimal number, if he represented the result correctly then he is asked to type the corresponding result.

Horizontal Layout for learn-subtraction-decimal working demo

Phabricator task

https://phabricator.kde.org/T14694

Related Commits

Programming Maze Activity

This activity teaches to program Tux to find the fish using simple instructions like move forward, turn left or turn right, it has been created by Aman Kumar Gupta.

It consists of ten levels in which:

  • The first 5 levels is about having a Main Function where the instructions will be executed in order until there is no instructions left, or until Tux reaches a dead end or when the tux reaches the fish.
  • The last 5 levels is about having Procedure area which stores a set of instructions which can be used in the Main Function.

Supporting Loops in Programming Maze

I was working on extending programming maze activity to support loops as well as procedures, I have added a loop area same as it is done with the procedure area.

This is done by:

  • Implementing a new instruction called Loops, it contains a ListModel in which instructions are stored in, and it has a loopCounter as a property which indicates how many this set of instructions will be executed.
  • Adding a loop counter initialized by 1, which can be decremented or incremented to reduce the number of instructions needed by Tux to reach its goal.
  • Adding an option to use or not use Procedures
  • Adding datasets for the maze displayed when using the loop area.
  • Modifying TutorialBase.qml to support loop tutorial instructions.
ProgrammingMaze supporting loops working demo

Phabricator task

https://phabricator.kde.org/T8129

Related Commits

programmingMaze, add loops and split levels in datasets.

Mouse Control Action Activity

The goal of this new activity is to provide audio-visual feedback in a relatively meaningful way when using the mouse to help in discovering its usage for a young kid.

The activity’s goal is achieved by having:

  • Mouse movements lead to producing duck’s motion, it is done by representing the four mouse movements into four arrows in different directions, so that the kid can discover the four different movements while playing with the mouse or touching in case of tablets.
  • Main Duck is placed at the center of the screen, and associating the four mouse movements with duck’s motion, whenever kid moves the mouse to a specific direction, the main duck moves accordingly, and the scale of the arrow corresponding to it increases.
  • A column on four ducks so that clicking on a specific duck will produce a specific funny sound, duck’s animation by rotating it from 0 to 360, and produce sparkles, its goal is learning that a click does something and clicking in different places can do different things.
  • Clicking anywhere will produce a generic sound.
  • Associating a click with a simple position indicator, its goal is adding a visual feedback showing the place that was clicked.
Mouse Control Action working demo

Phabricator task

https://phabricator.kde.org/T12990

Related Blogs