Summer of Code/2010/Language Primer

From Sugar Labs
Jump to navigation Jump to search

About you

  1. What is your name?
    • Yao Zhang
  2. What is your email address?
    • Saturntoad@gmail.com
  3. What is your Sugar Labs wiki username?
    • Saturntoad
  4. What is your IRC nickname?
    • Saturn
  5. What is your primary language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)
    • Chinese & English
  6. Where are you located, and what hours do you tend to work? (We also try to match mentors by general time zone if possible.)
    • I'm located in Shanghai, China( "UTC+8" ).
  7. 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 have participated in the open-source project "Cairo-Dock(a.k.a GLX-Dock)" by doing some translation work.(URL: https://launchpad.net/~saturntoad) And now I think it is time that I should make more contributions to the open-source to do some critical and technical stuff because I think I am capable of it. It is the excellent experience of using open-source softwares as well as my current programming knowledge and skills that makes me want to work on an open-source project this summer.

About your project

  1. What is the name of your project?
    • Language Primer
  2. 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?
    • In general, my project is to provide a simple and intuitive language learning activity for children who are either pre-school or low-grade elementary school students.
    1. What am I making?
      • A simple and intuitive language learning activity.
      • It helps kids to learn a language from the basic letters, words to common daily usage of the language.
      • Intuitive images should be heavily included in it to make it easy and interesting for kids to use.
      • It has a language database, where entries can be easily added, removed or modified.
      • To make it adapted to a new language should be easy, as most of the images can be reused without modification and the replacement of corresponding text can be done by using things "Google Translate" automatically.
      • It should also have the potential to add new language learning methods to it.
    2. Who am I making it for?
      • Mainly for kids who are either pre-school or low-grade elementary school students (between the age of 5~10 approximately) in less-developed and developing countries.
      • Can be used by teachers to help teaching, they can add, remove or modify any entries in the database.
      • Can also be used by elder students as a easy-to-use vocabulary enhancing tool.
    3. Why do they need it?
      • Because it is a critical time period for kids to get a good sense of language when in their early childhood.
      • Can form a solid foundation of language for those kids, which is important for their further study.
      • When used to learn a native language, it can help reduce illiteracy rate in those countries.
      • When used to learn other languages like English, it can give those kids a better chance to meet their future challenge of the globaliztion and internationalization
    4. What technologies will I be using?
      • I will use my favourite programming language Python since Sugar is also written in Python so it should integrate well and my project do not need a huge amount of resources to run.
      • For the UI part, I will use PyGTK as I have some experience with it.
        My little game using PyGTK..
      • For the database part, I will use the sqlite module as the whole db does not need to be very large and the performance on a XO should be taken in consideration as well.
      • For the learning methods used in this activity, I will not only add my own learning experience of a student from a developing country to it, but consult some professors in the School of Foreign Language in my university as well. Also, some sophisticated commercial language learning softwares could be good reference for this activity, and I will try my best to simplify them to be suitable for kids.
  3. What is the timeline for development of your project? The Summer of Code work period is 7 weeks long, May 23 - August 10; 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 (July 6-13); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.
    • Before the summer begins: Finish a draft for UI design. Consult language professors for proper learning methods and think about an approach to implement it. Set required environment and build a HelloWorld activity.
    • Week 1:Discuss with mentor and have a total plan for the whole project. Decide and clarify all key details to implement the project.
    • Week 2:Code the UI part. This should be easy once the design is done before the summer begins.
    • Week 3:Code the db part. This may be a little sophisticated and can take up a bit more time.
    • Week 4:Finish all the main framework by connecting the frontend and the backend as well as any rest part of the procject.
    • Week 5:Add basic images and entries to test if it works. Debug and solve problems.
    • Week 6:Add more images and entries to db.
    • Week 7:Writing documentation files.
  4. 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.
    • First, I am capable of doing the project. I have had many computer science courses in university and have the programming experience in Python. Here is some of my work before.
      • Fingers-to-9 ("http://fingers-to9.appspot.com/") - A small game originally written in PyGTK due to my personal interests. And later on I re-wrote it in Java to put it on the "Google App Engine" so that my friends who do not have Python and GTK installed can also play it online.
      • MobileRave - An application written in PyS60(Python for S60) to prevent RSI(repetitive strain injury) caused by consistent use of mobile phones. I submitted it to participate in "Nokia CallingAllInnovators" event.
        MobileRave - An application written in PyS60(Python for S60) to prevent RSI(repetitive strain injury) caused by consistent use of mobile phones.
    • Second, I have the time to do the project. I am an undergraduate student now and I do not have the burden of other heavy research work in the summer. And I am always enthusiastic about coding own creative stuff.
    • Third, I come from a developing country. That makes me know well the society and what kind of help those kids need most.
    • Most importantly, I really like open-source and regard the OLPC plan a wonderful and meaningful thing to do. After enjoying so much from the open-source communities and going through a little difficult childhood, I want make my own contributions to the open-source world as well as making other children's life better.

You and the community

  1. 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.
  2. Sugar Labs will be working to set up a small (5-30 unit) Sugar pilot near each student project that is accepted to GSoC so that you can immediately see how your work affects children in a deployment. We will make arrangements to either supply or find all the equipment needed. Do you have any ideas on where you would like your deployment to be, who you would like to be involved, and how we can help you and the community in your area begin it?
    • I live in Shanghai, where there are many special schools for children whose parents are immigrant workers(people who used to work as farmers and then went to big cities to seek opportunities of earning more money). In those schools, they don't have much modern teaching facilities and most of the students come from the poorest families in the city. I think those schools are where the deployment could be.
  3. What will you do if you get stuck on your project and your mentor isn't around?
    • Ask the community for help, e.g. on IRC, mailing list
    • do some googling, and look up in SugarLabs's wiki
    • Turn to those professors in my university for help
    • Discuss it with my fellows
  4. 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?
    • I will report my progress to my mentor weekly, and post the progress report to the mailing list at the same time. I will also write blog posts to record those problems, questions and my own experience of taking part in the course of the project.

Miscellaneous

My version for the little challenge. There is no "Restart" in the newest version of Sugar..
  1. We want to make sure that you can set up a development environment before the summer starts. Please 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 "Restart." See the image on the right for an example. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.
    • Done. I've managed to find the corresponding source code on my own, but I can not find the "Restart" text at first. And then I was informed of the fact that there is an update of Sugar, and "Restart" has been removed :( by Mr.McNamara through email contact. So I replaced the text of "Logout" with my email address, build it and got the screenshot :)
  2. What is your t-shirt size? (Yes, we know Google asks for this already; humor us.)
    • XL :)
  3. Describe a great learning experience you had as a child.
    • When I was child, I was lucky enough to have my own PC at the age of
  4. 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?