Multiple Datasets: Overview


For Google Summer of Code 2019, I am working on KDE community's project Gcompris. GCompris is a high quality educational software suite, including a large number of activities for children aged 2 to 10. Currently GCompris offers more than 100 activities, and more are being developed. For me the journey from making my first contribution to Gcompris, to my Google Summer of Code Project has been very interesting, and in this post I'll be discussing about my GSoC project i.e Adding multiple datasets to Gcompris

What are multiple datasets ?

Most of the activities are provided a dataset in json(mostly) format, which contains data about the various parameters of an activity separated in various levels that determine the functioning of the activity.
Adding multiple datasets to an activity means adding multiple data files each containing different sets of levels, and providing user the functionality to switch to any datasets that he wishes to use.

Why multiple datasets ?

For an activity in Gcompris the the difficulty of an activity even in the first level might be too much for children of certain age groups. On the other hand some activities might prove to be too easy for children of other age groups. So multiple datasets help in adding granularity in the levels of an activity, so that the user can choose a dataset as per his need or he might even want to begin with an easier dataset and then make his way to the top.


For example, The first activity that I added multiple datasets to is money activity in Gcompris. . The aim of the activity is to teach students how to calculate the exact amount to be paid in the form of the currency provided to them. Initially the activity had only one set of levels(i.e a single data set) in the form.

  1. Level 1:
    • min Price of object to be sold: 4 units
    • max Price of object to be sold: 10 units
  2. Level 10:
    • min Price of object to be sold: 50 units
    • max Price of object to be sold: 100 units

The plan was to add granularity to this dataset so that it could be used by children of several age groups. So, We decided to create 3 datasets of the form

  1. Dataset 1

    • Maximum price of object 10 units
  2. Dataset 2

    • Maximum price of object 100 units
  3. Dataset 3

    • Maximum price of object 1000 units

    and the user can select the required dataset from the following dialog.

So this was all about my GSoC 2019 project overview. Soon I'll be posting a full tutorial for adding multiple datasets to an activity in Gcompris