Summer of Code/2013/Turtle Blocks Python export

From Sugar Labs
< Summer of Code‎ | 2013
Revision as of 04:37, 30 April 2013 by Marion Zepf (talk | contribs) (t-shirt size, formatting)
Jump to navigation Jump to search

My name is Marion Zepf and I would like to work on the project Python export funtionality for TurtleBlocks. Please find my application below.

About me

What is your name?

Marion Zepf

What is your email address?

marion.zepf@gmail.com

What is your Sugar Labs wiki username?

Marion Zepf

What is your IRC nickname?

I do not have a fixed nickname, but I try to use "mzepf" if it is available.

What is your primary language?

(We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)

My native language is German, but I am more comfortable in English when it comes to computers and programming.

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 am located in Stuttgart and Tübingen, Germany. My time zone is Central European Summer Time (CEST) or UTC+02:00 during summer.

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?

This is my first open-source project. In the past, I have benefitted from open-source software countless times. Now I want to give something back to the community.

About my Project

Project description

What is the name of your project? 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?

Turtle Blocks Python export lets the user export their programming project from the Turtle Blocks activity to a Python script. The generated Python code can be run outside of Turtle Blocks, for example from the command line or in the Pippy IDE.

This tool is designed for users who are already proficient Turtle Block programmers and want to move on to text-based programming. It helps them transfer their knowledge and skills from block-based to text-based programming, as they can see their own creations in a new programming language. Thus, they can focus on the new language rather than the content of the program.

The Python export functionality will be implemented in pure Python, drawing on the internal block code interpreter of Turtle Blocks to convert the blocks to a representation of the program flow. I will then use the ast module[1] to build the Python syntax tree from this representation. In order to serialize the syntax tree to a string, which can then be written to a file, I plan to use either the codegen module[2][3] or the unparse module.[4]

The exported Python code will need to import a few classes from Turtle Blocks to set up a window etc. I will isolate these classes from the Turtle Blocks code, so it can easily be imported into the generated code.

What is the timeline for development of your project?

The Summer of Code work period is June 17 - September 23; 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 (August 2); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.

My Backround

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.

Me and the Community

Impact on the Sugar Labs 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.

Sugar pilot deployment

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?

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

Keeping the community informed about problems and questions

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

Screenshot of my Sugar development environment

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.

What is your t-shirt size?

(Yes, we know Google asks for this already; humor us.)

S (female)

Describe a great learning experience you had as a child.

Additional information

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?


References