Changes

Jump to navigation Jump to search
m
typo
Line 1: Line 1: −
My name is [[User:Marion Zepf|Marion Zepf]] and I would like to work on the project [[Summer_of_Code/2013#Python_export_functionality_for_Turtle_Blocks|Python export funtionality for TurtleBlocks]]. Please find my application below.
+
My name is [[User:Marion Zepf|Marion Zepf]] and I have been accepted to work on the project [[Summer_of_Code/2013#Python_export_functionality_for_Turtle_Blocks|Python export functionality for TurtleBlocks]]. Please find my project proposal below. An up-to-date progress report on this project can be found on [[Summer of Code/2013/Turtle Blocks Python export project|its wiki page]].
    
== Abstract ==
 
== Abstract ==
Line 33: Line 33:  
''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?''
 
''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.
+
This is my first open-source project. In the past, I have benefited from open-source software countless times. Now I want to give something back to the community.
    
== About my Project ==
 
== About my Project ==
Line 45: Line 45:     
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 <code>ast</code> module<ref>http://docs.python.org/2.6/library/ast.html</ref> 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 <code>codegen</code> module<ref>http://dev.pocoo.org/hg/sandbox/file/b2aea937f5bb/ast/codegen.py</ref><ref>https://gist.github.com/mattbasta/791312</ref> or the <code>unparse</code> module.<ref>http://svn.python.org/view/python/trunk/Demo/parser/unparse.py?view=markup</ref>
 
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 <code>ast</code> module<ref>http://docs.python.org/2.6/library/ast.html</ref> 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 <code>codegen</code> module<ref>http://dev.pocoo.org/hg/sandbox/file/b2aea937f5bb/ast/codegen.py</ref><ref>https://gist.github.com/mattbasta/791312</ref> or the <code>unparse</code> module.<ref>http://svn.python.org/view/python/trunk/Demo/parser/unparse.py?view=markup</ref>
<!--TODO: decide for one-->
      
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.
 
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.
Line 73: Line 72:  
** September 9 – September 15 (1 week)
 
** September 9 – September 15 (1 week)
 
*** Multiple turtles and custom turtle shells from the 'Extra options' palette<ref name="requires-add-imports" group="note" />
 
*** Multiple turtles and custom turtle shells from the 'Extra options' palette<ref name="requires-add-imports" group="note" />
*** Display management (hide/ show blocks, toggle full screen) from the 'Presentation templates' palette, and printing and loading blocks and palettes from the 'Extra options' palette:<ref name="requires-add-imports" group="note" /> These are very specific to Turtle Blocks. We need further discussion how this should look in the output of the exported Python code.<!-- TODO report results of discussion -->
+
*** Display management (hide/ show blocks, toggle full screen) from the 'Presentation templates' palette, and printing and loading blocks and palettes from the 'Extra options' palette:<ref name="requires-add-imports" group="note" /><!-- These are very specific to Turtle Blocks. We need further discussion how this should look in the output of the exported Python code. --><!-- TODO report results of discussion -->
 
* September 16 – September 23 (1 week): Test exporting different kinds of blocks in combination. Fix the last bugs. Clean up.
 
* September 16 – September 23 (1 week): Test exporting different kinds of blocks in combination. Fix the last bugs. Clean up.
   Line 81: Line 80:  
</references>
 
</references>
   −
=== My Backround ===
+
=== My Background ===
 
''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.''
 
''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.''
   Line 91: Line 90:     
Through my linguistic education, I can draw on substantial experience with grammars, parsers, and syntax trees.
 
Through my linguistic education, I can draw on substantial experience with grammars, parsers, and syntax trees.
This experience will help me with anaylzing the block code and transforming it into Python code.
+
This experience will help me with analyzing the block code and transforming it into Python code.
    
My interest in educational software was sparked during my work on [http://purl.org/icall/view VIEW] (Visual Input Enhancement of the Web), an online language tutoring system.
 
My interest in educational software was sparked during my work on [http://purl.org/icall/view VIEW] (Visual Input Enhancement of the Web), an online language tutoring system.
Line 127: Line 126:  
My old primary school has an immigrant rate of about 80%, and many kids are socially disadvantaged. This results in a big difference in learning speed between individual children in one class, which is problematic for traditional "chalk and talk" teaching methods. I think that Sugar would enable each child to learn at its own pace without feeling left out if they are slower than their classmates. Faster learners can easily move on to other activities when they are done and no longer disturb the lesson because they are bored.
 
My old primary school has an immigrant rate of about 80%, and many kids are socially disadvantaged. This results in a big difference in learning speed between individual children in one class, which is problematic for traditional "chalk and talk" teaching methods. I think that Sugar would enable each child to learn at its own pace without feeling left out if they are slower than their classmates. Faster learners can easily move on to other activities when they are done and no longer disturb the lesson because they are bored.
   −
In the first year, the school often faces the difficulty of teaching children who do not speak the class language (German). With its clean graphical interface and recognizable icons, Sugar could help these children understand the material without the need to translate everyhing into their mother language.
+
In the first year, the school often faces the difficulty of teaching children who do not speak the class language (German). With its clean graphical interface and recognizable icons, Sugar could help these children understand the material without the need to translate everything into their mother language.
    
I can set up contact to the school and act as an interpreter if necessary.
 
I can set up contact to the school and act as an interpreter if necessary.
Line 158: Line 157:  
=== Additional information ===
 
=== 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?''
 
''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?''
 +
 +
My project will also make Turtle Blocks more attractive for older learners (youths or adults). It allows them to learn the basic concepts of programming first, without having to hassle with the syntax of a text-based programming language. Once they have understood the basics, they can move on to learning the syntax of Python. This way, my project can help increase 'programming literacy' all over the world.
     
51

edits

Navigation menu