Summer of Code/2015/Beyond Flashcards Programming to Read JS

 About you  

What is your name? My name is Gaurav Mishra, and I am a 3rd year undergraduate student at IIIT Hyderabad.

What is your email address? My gmail is gauravm043@gmail.com

What is your Sugar Labs wiki username? My Wiki nick name is Gauravm043

What is your IRC nickname on irc.freenode.net? My IRC nick name is gauravm043

'''What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)''' My first language of communication is English and I am also comfortable with Hindi.

'''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.)''' Since I reside in India, the time difference in UTC and IST being +0530 Hrs, I usually work from afternoon to midnight but is adjustable,I will try to be mostly active when most of the mentors come on IRC.

'''Have you participated in an open-source project before? If so, please send us URL's 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? ''' Nowadays majority of the softwares that we are using are open source eg- Linux kernel, Mozilla Firefox, etc. I had known about GSoC via my college. I think contributing to open source is very good opportunity for a person as he get to understand how things work, Now, that I am more involved in software development and practices, I thought of giving it my level best to contribute towards FOSS and get involved in it through SugarLabs. This is my first time contribution towards Open Source Development.

 About your project    What is the name of your project? The name of my project is Programming to Read.

'''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?  About my project:''' Programming to read is an Activity that will enable people to enhance their language skills and at the same time will motivate them to look at language not just as the means of communication but will allow them to understand what simple sentences can do when it comes to programming, in a very interactive manner like the current Turtle Block Activity. Flashcards for various subjects, verbs, nouns, pronouns, prepositions will be given to the user. Flashcard vocabulary will be extendible and there will be a plugin for handling major languages. Following figure will perhaps illustrate the purpose more: Who will use it: The Activity will attract people of all ages and most importantly children (4 - 7 years) as they will see how their simple sentences are forming shapes or what they have been imagining in their mind as a consequence of the sentence will become live on their screens. Why do they need it: Since this Activity will focus on doing programming via forming simple sentences, I think it will open a new dimension for learning how to write and speak sentences. For children, it will be an introduction of what computers can do and will motivate them to move further in the field. Technologies that I will be using: However the activity will be independent but I plan on using Turtle block JS framework to be the starting point of this project, blocks that are already present in turtle block will form the core back-end. Flashcards will be implemented as an abstraction layer over the combination of most of the blocks. Other than that: Technologies: 1.Javascript 2.Python (Planning to use nltk for checking grammar of sentence) Implementation Details: We will give the following primitive flashcards (as a starting step), each flashcard will be mapped to some blocks of Turtle block activity, eg: walked ---> forward, spoke ---> speak Flashcards: Example sentences formed from above flashcards: The turtle painted a red rectangle. The turtle slowly painted a red rectangle. The turtle turned right and walked forward. The rabbit said Hello. The turtle walked 5 steps and the bird sang a song. Steps: “More on project idea development and implementation at this link.” '''What is the time-line for development of your project? The Summer of Code work period is from May 26 - August 20; 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 (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then. '''
 * 1) Subject / Noun Here: Turtle, Bird, Rabbit
 * 2) Verbs: Walked forward, walked backward, turned left, turned right, sang, spoke, said, painted
 * 3) Object: Ten steps, song, (texts for speak), rectangle/other shapes.
 * 4) Conjunctions: and
 * 5) Adjectives: “red” turtle, “blue” bird, “big” rabbit …
 * 6) Adverbs: "slowly” walked ...
 * 1) At first the formed sentence will be evaluated for its grammatical correctness using NLP processing.
 * 2) The sentence will then be parsed to separate subjects, verbs and objects. also separation of adverbs if there are any.Part of speech and dependency trees will be used here.
 * 3) Parsed flashcards will then be handled by their corresponding mapping.
 * 4) We will have a function that will check for potential arguments like, walked will look for one/two argument (will use adverbs here) and will also have a default value.
 * 5) When the mapped blocks are recovered we will put them in an executing queue.
 * 6) If sentence contained prepositions like “and” both parts will be processed separately and will be executed one after the other.

'''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.'''

I have participated in many projects as a part of the college curriculum and being a research student over here some projects with my own interests also. Some of the projects that I have successfully completed are given below --

-- Built a Traffic-Sign-Identification-System which can be used to regulate traffic signs, warn a driver, and command or prohibit certain actions.The project presents a study to recognize traffic signs using Neural Networks. The system detects and recognizes 7 basic signs. Link - https://github.com/gauravm043/Traffic-Sign-Identification-System -- Built a terminal that is similar to the linux terminal with functions like opening files, basic linux commands like ls, cd, piping etc. I have used concept of processes, and C language to implement it. Link - https://github.com/gauravm043/Linux_Shell -- Built a 3D bike game in OpenGL consisting two levels. Link - https://github.com/gauravm043/OpenGl_3D_Bike_Game -- Built an Online Examination portal using python and Web2py. Link - https://github.com/gauravm043/Online_Exam_Portal -- Built a simple wave mixer application using Python GUI tools(tkinter) and pyaudio library, The mixer provides basic functionalities like time reversal, increasing the amplitude, modulating/mixing sounds etc. Link - https://github.com/gauravm043/Wave_Mixer Besides these projects I have been teaching ITWS course for past three semesters to my juniors in college as a teaching assistant of the course. The course mainly focuses on python, Javascript, HTML, php, Web technologies etc. I feel that I can grasp new things and use them to successfully complete the project.

 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.'''

My thoughts: As of now we have many Activities in Sugar that focus on enhancing education of children in many ways, for eg take Turtle Blocks, but as of now we need an environment that can teach Grammar, Vocabulary, pronunciation and can let children acquire reading and language skills. Programming to Read Activity will do that in a very interactive manner.

Walterbender: The significance to Sugar is that we are a bit thin on constructionist literacy activities.... this has the potential to open up an entire arena where kids can construct within the context of acquiring reading and language skills. plus it will be fun!! ClaudiaU: Email: callaurrea@gmail.com I think we are in need of more constructionist Activities in Sugar that promote the development of important cognitive skills through programming. Programming to Read Activity falls in that category, inviting children to develop and formalize their language as they program their own language cards. I encourage you to read this paper by one of the students of Seymour Papert, “Teaching A Turtle How to Spell, Using Computer Programming to Encourage and Enhance Children’s Linguistic Play.” I think you can use her work and background, extend it and make it available to many children around the world.

What will you do if you get stuck on your project and your mentor isn't around? In such a scenario I will first try to figure it out myself on the web but if unsuccessful I will get in touch with other contributors like ignacio, walterbender, gonzalo, tch, that are present on IRC and seek their help, if the problem still persists then I will send a mail to the mailing list, so that the mentor can see it whenever he comes online. Till then I will try to get involved in some other aspect or part of the project. 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? Well usually i have a habit of keeping records to work/contributions i have been doing eg: For getting familiar with the project i am regularly keeping a log of the suggestions provided by my mentor and what i learned from it/future plans etc at this discussion link.For the project progress purpose i will maintain a blog and will keep the community updated via it, if asked to maintain the record in the wiki, I will accordingly do so.

 Miscellaneous  

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. Bugs Solved 1.  Created an ArgumentError class that handles exception raised by functions on entering wrong arguments, simultaneously fixed erroneous behavior of functions like inv, factorial, asin etc.    #4807     #4808 Pull Request 2.  Definition of b10bin updated #4811 Pull Request 3.  Incorporated Ctrl+C and Ctrl+V for url toolbar in browse activity #4642 Pull Request 4.  Reported and solved the bug but there was no such bug in the newer version of Clock Activity so closed the issue. #4815 5.  Also out of interest I ported Spiro laterals activity (currently in python) to Java-script, current port is at: Spiro-laterals

Describe a great learning experience you had as a child. When I was in my seventh or eighth class I was usually afraid to take part in debate/speech competitions, at that time when my parents came to know about that they taught me a very important lesson of life which is: “God has given all of us same body and same mind. What we make out of it is up to us. If any other person in the world can do a task so can we”. and “It is never too late to start anything new one should only have the willpower to do it”.

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? First of all I would like to say that I feel humbled to be be a part of such a good project, where we have to design a framework that enhances children's mind in an interactive way.Teaching students has always been my passion and I have been walking on the path for a while so at first sight I decided that I have to do this project, to excel in my limits and to encourage small children to do more.