LogoForKids Documentation

Table of contents:
  1. Program overview
  2. User Interface
  3. Build-in commands
  4. Personalization
  5. Extensions
  6. Contact
  7. Download

  1. Program overview
Motivation:

  LogoForKids is dedicated for children who want to learn computer programming. It is based on "old" Logo concept but it is less advanced (simpler). I made this program for my daughter - Madzia. She is 4 years old now. At the moment she can draw simple shapes with it.

Technology:

  The program is a .NET 3.5 application (it requires .NET Framework 3.5 to run). Thank to that I was able to create it in a short period of time (less then week, 2 hours a day). Program overall performance is satisfactory for me.

Concept:

  My daughter asked me what is my job. As I am a programmer, I described her a few computer langauges. I also mentioned about one computer language designed specially for kids and she wanted to see it. Unfortunately I cound't find Logo interpreter with Polish synax so I decided to do it myself.
  This programming language is all about drawing. You have a small turtle which will listen to your commands and execute them. If you don't like turtles you can change it to some other "painter". Your program will still generate the same paintings.

  1. User Interface
LogoForKids ScreenShot
LogoForKids main window

  As you can see the program's UI is very simple. It consists of 4 panels:

  1. Build-in commands
  There is a set of commands which you can use to construct your programs. Most of them works as a single command (go, turn, home, ...) but some works in pairs (repeat-times, repeat-while). The table bellow describes all supported commands:

Command
Description
Example of use
Home
Move turlte to the centre of the screen
Home
Clear
Remove all drawing and move turlte to the centre of the screen Clear
Go _step_
Move forward by given _step_
Go 100
Left _angle_
Turn turtle left by _angle_
Left 90
Right _angle_ Turn turtle right by _angle_ Right 45
PenDown
Start drawing
PenDown
PenUp
Stop drawing
PenUp
PickColor _color_
Select color for turtle's pen. Turle will use this color from that moment on.
You can specify _color_ in two ways:
1) provide color name like Red, White or
2) provide color Red, Green and Blue components in the form of #RRGGBB
    RR, GG, BB are hexadecimal values from 00 to FF
PickColor #FF0000
Repeat
This is a loop command which works in two variants:

1) Repeat - Times. This variant allowes you to execute the loop specified number of times.
    For example:
    Repeat
       Go 100
       Left 90
    Times 4

2) Repeat - While . This variant executes the loop as long as the condition which is just
    after While is true. For example:
    A = 10
    Repeat
       A=A+1
    While A<100
# executes 10 times
Repeat
  # some commands
Times 10

# infinite loop
Repeat
 # some commands
While 1
If _condition_ Do _command_
Check if given _condition_ is true. If so then executes given _command_
A=4
B=2*2
If B=A Do Go 100
_Variable_=_Expression_
Assign _Expression_ value to a names _Variable_
X=5*5
Y=X/2
OutText _X_,_Y_ _Text_
Write _Text_ under location given by _X_ and _Y_ coordinates. _Text_ can be a combination of text and math expressions. For example:
"Some Text"5*2      this will produce         SomeText10
OutText 10, 10 "Hello World!"

_label_:
You can tag some part of your code by giving it a label. You canthen go to such lable using command Goto _label_
my_label:
Goto _label_
If there exists a label named _label_ then this command will move execution to this label.
Goto my_label
Function _Name_ _Params_
You can create named blocks of code which you can then re-use many times. Such blocks should have Name and they also can have parameters. Every block Starts with the word "Function" and ends with the word "EndFunction". Bellow are examples:
# example 1
Function Rect
  Repeat
   Go 100
   Left 90
  Times 4
EndFunction
# example 2
Function Rect X
  Repeat
   Go X
   Left 90
  Times 4
EndFunction
# example 3
Function Shape X,Y
  Repeat
   Go Y
   Left 360/X
  Times X
EndFunction
Function Rect X
  Repeat
   Go X
   Left 90
  Times 4
EndFunction
Call _Function_ _Params_
Executes previously created function. For example:

Function Shape X,Y
  Repeat
   Go Y
   Left 360/X
  Times X
EndFunction

Call Shape 8, 100
Call Shape 8,100

  Important note: Commands and Variables are case sensitive. It means that there is no command "repeat" (starts with lower 'r') but there is command "Repeat" (starts with upper "R").

  Most of this commands are available throght Commands Panel but more advanced commands are available only in Code Editor. Code Editor (picture bellow) is a simple window where you can freely edit your code. You can use a combo box at the bottom of the window to check what is the syntax of commands. You can also use this combo box to insert selected choice to your code.

Code Editor
Code Editor

  1. Personalization
  Program persionalization is available through two options. I found that my daughter wants to be able to quickly change the "painter" so I decided to make it easy to do so. You can do it by clicking on [Pick Painter] button. You will see a new window with the list of available "painters".

Pick Painter window
Pick Painter window

  You can add your own "painters". To do so you will have to create a PNG file with dimensions 50x50. Then copy it to Painters folder inside the LogoForKids folder and start the application.

  You can also change background and wallpaper of every part of main window. To do so please click button [Options]. You will see the following window:

Options window
Options window

  Here you can change visual style of most of the elements of the application main window. Experiment with it to make it comfortable for you.

  1. Extensions
   As you might notice on the picture above - Options window has two settings related to Language. They give you the possibility to change the language of User Interface and the language of the Logo interpreter. The first one relates to the language which will be used by the program to communicate with the you (the user) while the second one relates to the langauge of commands which will be used to communicate with the turtle. For example all the commands described in "Build-in commands" relates to the English version of Logo language but there is also a Polish version of Logo language.

Creating you own version of UI:

  Currently only English and Polish versions are available. If you are interested in creating you own version please contact me at _tomsiw_@_gmail_.com (remove underscores). I will ask you for the list of translations and I will prepare a new version of LogoForKids.

Creating your own version of logo:

  You can easly add your own version. It is as simple as creating a new file named _YourNationalLanguage_.txt within Languages folder (where _YourNationalLanguage_ should be replaced with the name of your national language like e.g. German, Spanish, ...) and copy the contents of English.txt into it. Then replace every line which starts with "Command:" and "Syntax:" so that it match your language. Keep "Mnemonic:" unchanged. Lines with "Command:" contains a command description which will be displayed on buttons related to the command (in Commands Panel). Lines with "Syntax:" contains the actual command syntax which will be used in Code Editor. "Mnemonic" is used to provide intermediate code which is the same for all versions of Logo language (and therefore can be interpreted by the interpreter). Some commands can also have "Advanced: true" which basically means that such command should be available only in Code Editor (not in Commands Panel). If your file is ready you can test it inside the application. If you think it ready and it should be attached in the project please send it to me at _tomsiw_@_gmail_.com (remove underscores).

  You can also join the project and start changing it. If you want to be the active developer of the project please contact me.

  1. Contact
  Any suggestions, questions, detected bugs can be sent to me at _tomsiw_@_gmail_.com (remove underscores).

  1. Download
  The product is available in two forms: