Difference between revisions of "Summer of Code/2016/LearnForFun"

From Sugar Labs
Jump to navigation Jump to search
Line 1: Line 1:
                                              ''''' Learn For Fun - Sugar Activity'''''
+
                                              ''''' Learn For Fun - Sugar Activity'''''
  
 
== About You ==
 
== About You ==
Line 42: Line 42:
  
 
I will be implementing 11 different games under this activity. These games are divided further into subcategories like Mental Maths, Reasoning, Quick Science and Memory. Descriptions of these games are given below.
 
I will be implementing 11 different games under this activity. These games are divided further into subcategories like Mental Maths, Reasoning, Quick Science and Memory. Descriptions of these games are given below.
 +
 +
In all of these games the player gets three lives and the game ends if the player runs out of lives by answering incorrectly .
  
 
#'''Mental Maths -'''<br />This section includes games based on mathematical operations like counting, addition, subtraction, multiplication, division, divisibility tests etc. I am going to add 3 games in this section.
 
#'''Mental Maths -'''<br />This section includes games based on mathematical operations like counting, addition, subtraction, multiplication, division, divisibility tests etc. I am going to add 3 games in this section.
#*Polygon Shower - <br />In this game polygons will be falling from the sky and player has to identify their names in order to collect points. This game helps children to learn about different types of polygons in a fun way.
+
#*Polygon Shower - <br />In this game polygons will be falling from the sky and player has to identify their names in order to collect points. This game helps children to learn about different types of polygons in a fun way. Player loses a life if a polygon touches the ground.  
#*Compare to Conquer - <br />In this game the user is shown two expressions and an equality option. The player has to click on the expression which has greater value or the equals sign if the numbers are equal. Also player gets three lives and with each wrong answer one life is deducted.
+
#*Compare to Conquer - <br />In this game the user is shown two expressions and an equality option. The player has to click on the expression which has greater value or the equals sign if the numbers are equal. With each wrong answer one life is deducted. Also an another game can be implemented which shows different measuring units (example- gram and kilogram) to compare.
#*Math Operations - <br />In this game the player is given two mathematical operations simultaneously and a space racer is shown on the screen moving in space. To dodge the meteors one has to answer either the expression given on the left which makes the spaceship move left or the expression on the right which makes the spaceship move to the right. Also a simple vedic maths trick for multiplication of a two digit number with 11 can be included in this game by showing tutorial in the beginning and using expressions based on this trick in the game.
+
#*Math Ship - <br />In this game the player is given two mathematical operations simultaneously and a space racer is shown on the screen moving in space. To dodge the meteors one has to answer either the expression given on the left which makes the spaceship move left or the expression on the right which makes the spaceship move to the right. Also a simple vedic maths trick for multiplication of a two digit number with 11 can be included in this game by showing tutorial in the beginning and using expressions based on this trick in the game.  
 
#'''Reasoning and Understanding -'''  
 
#'''Reasoning and Understanding -'''  
 
#*Grammar Game-<br />A game which tests the grammatical reasoning of the player by showing a set of statement and a corresponding image. The player has to check the validity of the statement from the image and answer by clicking on true or false.
 
#*Grammar Game-<br />A game which tests the grammatical reasoning of the player by showing a set of statement and a corresponding image. The player has to check the validity of the statement from the image and answer by clicking on true or false.
Line 59: Line 61:
 
#*MindMath -<br />Random digits will be shown on the screen in random places. The player has to click the digits in ascending order and also add them as he/she goes. Finally clicking the correct sum will earn you points.
 
#*MindMath -<br />Random digits will be shown on the screen in random places. The player has to click the digits in ascending order and also add them as he/she goes. Finally clicking the correct sum will earn you points.
 
For development of these games I'll be using web development languages like HTML , CSS and Javascript for basic game shell. The framework I'll be using for game development is Phaser (<nowiki>http://phaser.io/</nowiki>). It provides a fast, free and fun open source framework for canvas and WebGL powered browser games. Along with these I'll  be using Inkscape or any other similar tool to produce artworks used in the games.   
 
For development of these games I'll be using web development languages like HTML , CSS and Javascript for basic game shell. The framework I'll be using for game development is Phaser (<nowiki>http://phaser.io/</nowiki>). It provides a fast, free and fun open source framework for canvas and WebGL powered browser games. Along with these I'll  be using Inkscape or any other similar tool to produce artworks used in the games.   
 
  
 
'''What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''
 
'''What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''
Line 68: Line 69:
 
| April 22-May 22
 
| April 22-May 22
 
(Community Bonding period)
 
(Community Bonding period)
|  
+
| Discuss the ideas of the games in the community.
 +
 
 +
Consider possible enhancements and improvised ideas that are suggested.
 +
 
 +
Produce and discuss about artworks for giving a common theme to the games. To make the games attractive and interesting for children. 
 +
 
 +
Implement a simple game like Motion Capture which comes in the Reasoning and Understanding Category. Share among the community for review.
 +
 
 +
Note possible improvements and UI changes depending on the review. So that rest of the games can be designed accordingly.
 +
 
 +
Develop a clear outline of the project and discuss other technicalities relevant for the project.
 +
 
 +
Build the activity front-end part and make links to different game pages which will be kind of a subactivity containing game area and instructions for the particular game.
 
|-
 
|-
 
| Week 1 (May 23-May 29)
 
| Week 1 (May 23-May 29)
| Mental Maths Activity - Polygon Shower
+
| Mental Maths Activity - Polygon Shower:
Start Grammar Game
+
Add Tutorial Screen for Polygons at the start.
 +
 
 +
Write the game activity in phaser. Use the artworks produced already, make new ones if required.
 +
 
 +
Write blog and share the activity through a github page for reviews.
 +
 
 +
Start working on - Reasoning Game - Grammar Game
 
|-
 
|-
 
| Week 2 ( May 30 - June 5)
 
| Week 2 ( May 30 - June 5)
| Reasoning Game - Grammar Game  
+
| Reasoning Game - Grammar Game:
Will require less time Quick TIme
+
Writing code to generate random questions by using the basic  sprites(Pre-designed artworks) and question strings.
 +
 
 +
Write blog and share the activity through a github page for reviews.
 +
 
 +
Start Quick Science Game - Quick Time
 +
 
 +
Add illustrations with example given in the activity description on the start screen of the game.
 
|-
 
|-
 
| Week 3 (June 6 - June 12)
 
| Week 3 (June 6 - June 12)
| Quick Science - Quick Time Finish Early
+
| Finish working on Quick Time
Try to Finish Flashing Numbers
+
Write the game activity in phaser. Write blog and share the activity through a github page for reviews.
 +
 
 +
Work on Memory Game - Flashing Numbers
 +
 
 +
Write the game activity in phaser.
 
|-
 
|-
 
| Week 4 (June 13- June 20)
 
| Week 4 (June 13- June 20)
| Memory - Flashing Numbers Finish
+
| Finish the code for Game Flashing Numbers.
Implement Compare to Conquer
+
Write blog and share the activity through a github page for reviews.
 +
 
 +
First Deliverable - Learn for Fun activity with five different games (at least one game under each category)
 +
 
 +
Start working on Mental Maths Game - Compare to Conquer
 +
 
 +
Prepare the activity for mid-term Evaluations.
 
|-
 
|-
 
| Week 5 (Midterm Evaluations)
 
| Week 5 (Midterm Evaluations)
| Implement Odd One Out
+
| Finish the code for Compare to Conquer.
Responding to Mid-Term Evaluations:
+
Share the game for review and write blog post.
Going through the evaluations and improving activities and fixing bugs accordingly.
+
 
 +
Reasoning and understanding Game - Odd One Out
 +
 
 +
Work on the code for generating random questions.
 +
 
 +
Share the completed game and write blog post.
 +
 
 
|-
 
|-
 
| Week 6 (June 29- July 3)
 
| Week 6 (June 29- July 3)
Line 96: Line 137:
 
|-
 
|-
 
| Week 7 (July 4 - July 10)
 
| Week 7 (July 4 - July 10)
|  
+
| Quick Science Game - Quick Temp
 +
 
 +
Add illustrations with example given in the activity description on the start screen of the game.
 +
 
 +
Write the game activity in phaser.
 +
 
 +
Write blog and share the activity through a github page for reviews.
 
|-
 
|-
 
| Week 8 (July 11 - July 17)
 
| Week 8 (July 11 - July 17)
|  
+
| Memory Game - Mind Math
 +
 
 +
Write the game activity in phaser.
 +
 
 +
Write blog and share the activity through a github page for Reviews.
 
|-
 
|-
 
| Week 9 (July 18 - July 24)
 
| Week 9 (July 18 - July 24)
|  
+
| Mental Math Game - Math Ship
 +
 
 +
Write the game activity in phaser. Write code for generating random mathematical questions and answers.
 +
 
 +
Write blog and share the activity through a github page for Reviews.
 
|-
 
|-
 
| Week 10 (July 25 - July 31)
 
| Week 10 (July 25 - July 31)
|  
+
| Reasoning and Understanding Game - Seesaw Time
 +
 
 +
Write the code for generating new random questions and displaying in the form of seesaw orientations.
 +
 
 +
Write blog and share the activity through a github page for Reviews.
 
|-
 
|-
 
| Week 11 (August 1 - August 7)
 
| Week 11 (August 1 - August 7)
|  
+
| Buffer Week
 +
 
 +
Host the activity on a github page and share the link in Sugar Labs community for feedback and bugs.
 
|-
 
|-
 
| Week 12 (August 8 - August 16)
 
| Week 12 (August 8 - August 16)
|  
+
| Address all the feedback and fix bugs.
 +
 
 +
Test all the games, clean and organize the code.
 
|-
 
|-
 
| Week 13 (Code Submission and Evaluations )
 
| Week 13 (Code Submission and Evaluations )
|  
+
| Clean the code, improve documentation, and submit code .
 
|}
 
|}
  

Revision as of 20:43, 16 March 2016

                                               Learn For Fun - Sugar Activity

About You

What is your name?

My name is Love Mehta. I am a Bachelor of Technology (B.Tech), Sophomore Year, Computer Science and Engineering undergraduate student at Indian Institute of Technology, Ropar.

What is your email address?

My Primary Email - lovemehta.me@gmail.com
Alternate Email - 2014csb1018@iitrpr.ac.in

What is your Sugar Labs wiki username?

Love Mehta

What is your IRC nickname on irc.freenode.net?

lovemehta

What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)

I am a native speaker of Hindi, But I am fluent in English as well.

Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)

I live in Punjab, India. And I tend to work from 11.00am to 9.30pm UTC on weekdays and 3.30 am to 9.30pm UTC on weekends but this is adjustable.

Have you participated in an open-source project before? If so, please send us URLs to your profile pages for those projects, or some other demonstration of the work that you have done in open-source. If not, why do you want to work on an open-source project this summer?

I am new in open source and I want to work in open source because I believe in software freedom. I use GNU/Linux for my day-to-day work and software development. I also use several other open source services like Libreoffice, Moodle, Mozilla-Firefox etc. Open-Source development has introduced me to a whole new world of software development which I was unaware of previously. It has been a great experience to learn new frameworks and to work on building something new using them from my sophomore year itself. I have enjoyed my journey of getting to know people on irc and mailing lists while applying for GSoC and learning from them. It's amazing how people from different time zones can come together to work as a community. I think it would be the best utilization of my summer holidays to work on an open-source project this summer.

About your project

What is the name of your project?

Learn For Fun

Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?

Among kids learning mathematics and taking up mental ability exercise is usually associated with anything but fun. But learning can be a lot easier if we move from learning to playing. When we play we level up , when we level up we get interested , when we are interested we grow , when we grow - that's when we learn.

The soul ambition of this project is to implement such games which can help children learn mathematical concepts and increase their reasoning capabilities using some well known techniques like vedic maths, abacus and various other game activities.

I will be implementing 11 different games under this activity. These games are divided further into subcategories like Mental Maths, Reasoning, Quick Science and Memory. Descriptions of these games are given below.

In all of these games the player gets three lives and the game ends if the player runs out of lives by answering incorrectly .

  1. Mental Maths -
    This section includes games based on mathematical operations like counting, addition, subtraction, multiplication, division, divisibility tests etc. I am going to add 3 games in this section.
    • Polygon Shower -
      In this game polygons will be falling from the sky and player has to identify their names in order to collect points. This game helps children to learn about different types of polygons in a fun way. Player loses a life if a polygon touches the ground.
    • Compare to Conquer -
      In this game the user is shown two expressions and an equality option. The player has to click on the expression which has greater value or the equals sign if the numbers are equal. With each wrong answer one life is deducted. Also an another game can be implemented which shows different measuring units (example- gram and kilogram) to compare.
    • Math Ship -
      In this game the player is given two mathematical operations simultaneously and a space racer is shown on the screen moving in space. To dodge the meteors one has to answer either the expression given on the left which makes the spaceship move left or the expression on the right which makes the spaceship move to the right. Also a simple vedic maths trick for multiplication of a two digit number with 11 can be included in this game by showing tutorial in the beginning and using expressions based on this trick in the game.
  2. Reasoning and Understanding -
    • Grammar Game-
      A game which tests the grammatical reasoning of the player by showing a set of statement and a corresponding image. The player has to check the validity of the statement from the image and answer by clicking on true or false.
    • Odd One Out -
      This is a game in which the player has to select the odd one out from the images shown on the screen. The participant must work out which of the three is the odd one out, solving as many problems as possible within given time.
    • Seesaw Time -
      In this game two seesaw orientations are given showing a certain relationship between three different items. The player has to identify which of the three items is the heaviest.
    • Motion Capture -
      Leaves of a particular color will be shown flying in a particular direction on the screen. For the green leaves the player has to answer the direction of motion while for the brown leaves player will have to answer the direction in which they are pointing. Each round shows one type of leaves flying in a random direction (up, down, left or right) and pointing in a random direction (up, down, left or right). Player has to reply according to the color of the leaves. This game helps enhance the presence and flexibility of mind.
  3. Quick Science -
    • Quick Time -
      This game teaches a nice and simple way to add hours and minutes together using simple vedic maths trick. It can help children to learn to tell time faster and in a fun way.
      For Example-
      To add 1 hour and 40 minutes to 3 hrs and 35 minutes. We write 1 Hour 40 minutes as 140 and 3 Hours 35 minutes as 335 and then add these two numbers.
      140 + 335 = 475
      Now just add time constant of 40 to the subtotal and reconvert the time to hours and minutes. The obtained time will be the answer. In our example if we add 40
      40 + 475 = 515
      we get 515 which is equivalent to 5 hours and 15 minutes (Correct Answer!!).
    • Quick Temp -
      This game teaches fast but approximate temperature conversion trick to children. To convert temperature from Fahrenheit to Celsius just subtract 30 and divide the answer by 2. And to convert from celsius to Fahrenheit we just have to do the reverse of the trick. Multiply the value by 2 and add 30 to it.Remember, the answer is not exact but it gives you a rough idea.
  4. Memory -
    • Flashing Numbers -
      Random digits will be flashed on the screen one by one and after all the digits are shown the player will have to enter the digits in the same order as flashed earlier to win the round. The number of digits flashed increases with each round.
    • MindMath -
      Random digits will be shown on the screen in random places. The player has to click the digits in ascending order and also add them as he/she goes. Finally clicking the correct sum will earn you points.

For development of these games I'll be using web development languages like HTML , CSS and Javascript for basic game shell. The framework I'll be using for game development is Phaser (http://phaser.io/). It provides a fast, free and fun open source framework for canvas and WebGL powered browser games. Along with these I'll be using Inkscape or any other similar tool to produce artworks used in the games.

What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.

Week Scheduled Work
April 22-May 22

(Community Bonding period)

Discuss the ideas of the games in the community.

Consider possible enhancements and improvised ideas that are suggested.

Produce and discuss about artworks for giving a common theme to the games. To make the games attractive and interesting for children. 

Implement a simple game like Motion Capture which comes in the Reasoning and Understanding Category. Share among the community for review.

Note possible improvements and UI changes depending on the review. So that rest of the games can be designed accordingly.

Develop a clear outline of the project and discuss other technicalities relevant for the project.

Build the activity front-end part and make links to different game pages which will be kind of a subactivity containing game area and instructions for the particular game.

Week 1 (May 23-May 29) Mental Maths Activity - Polygon Shower:

Add Tutorial Screen for Polygons at the start.

Write the game activity in phaser. Use the artworks produced already, make new ones if required.

Write blog and share the activity through a github page for reviews.

Start working on - Reasoning Game - Grammar Game

Week 2 ( May 30 - June 5) Reasoning Game - Grammar Game:

Writing code to generate random questions by using the basic sprites(Pre-designed artworks) and question strings.

Write blog and share the activity through a github page for reviews.

Start Quick Science Game - Quick Time

Add illustrations with example given in the activity description on the start screen of the game.

Week 3 (June 6 - June 12) Finish working on Quick Time

Write the game activity in phaser. Write blog and share the activity through a github page for reviews.

Work on Memory Game - Flashing Numbers

Write the game activity in phaser.

Week 4 (June 13- June 20) Finish the code for Game Flashing Numbers.

Write blog and share the activity through a github page for reviews.

First Deliverable - Learn for Fun activity with five different games (at least one game under each category)

Start working on Mental Maths Game - Compare to Conquer

Prepare the activity for mid-term Evaluations.

Week 5 (Midterm Evaluations) Finish the code for Compare to Conquer.

Share the game for review and write blog post.

Reasoning and understanding Game - Odd One Out

Work on the code for generating random questions.

Share the completed game and write blog post.

Week 6 (June 29- July 3) Responding to Mid-Term Evaluations:

Going through the evaluations and improving activities and fixing bugs accordingly.

Week 7 (July 4 - July 10) Quick Science Game - Quick Temp

Add illustrations with example given in the activity description on the start screen of the game.

Write the game activity in phaser.

Write blog and share the activity through a github page for reviews.

Week 8 (July 11 - July 17) Memory Game - Mind Math

Write the game activity in phaser.

Write blog and share the activity through a github page for Reviews.

Week 9 (July 18 - July 24) Mental Math Game - Math Ship

Write the game activity in phaser. Write code for generating random mathematical questions and answers.

Write blog and share the activity through a github page for Reviews.

Week 10 (July 25 - July 31) Reasoning and Understanding Game - Seesaw Time

Write the code for generating new random questions and displaying in the form of seesaw orientations.

Write blog and share the activity through a github page for Reviews.

Week 11 (August 1 - August 7) Buffer Week

Host the activity on a github page and share the link in Sugar Labs community for feedback and bugs.

Week 12 (August 8 - August 16) Address all the feedback and fix bugs.

Test all the games, clean and organize the code.

Week 13 (Code Submission and Evaluations ) Clean the code, improve documentation, and submit code .

Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant.

You and the community

If your project is successfully completed, what will its impact be on the Sugar Labs community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Sugar Labs community, at least one of whom should be a Sugar Labs GSoC mentor. Provide email contact information for non-GSoC mentors.

What will you do if you get stuck on your project and your mentor isn't around?

How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project?

Miscellaneous

We want to make sure that you can set up a development environment before the summer starts. Please do one of the following:

  • Send us a link to a screenshot of your Sugar development environment with the following modification: when you hover over the XO-person icon in the middle of Home view, the drop-down text should have your email in place of "logout".
  • Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug.
It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.

If you plan to work on Sugar-Web projects we want to be sure that you're familiar with web technologies, so:

  • Clone the Sugarizer repository
  • Using instructions here develop your first Sugar-Web activity
  • Send us a screenshot of your new activity executed in Sugarizer

Describe a great learning experience you had as a child.

Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?

  • Please include the category tag at the bottom of your page the Category tag for 2016 GSoC applications.