<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
"dtd/kdedbx45.dtd" [
  <!ENTITY kappname "&kturtle;">
  <!ENTITY turtlescript "TurtleScript">
  <!ENTITY logo "Logo">
  <!ENTITY % addindex "INCLUDE">
  <!ENTITY % English "INCLUDE"><!-- change language only here -->
  <!ENTITY using-kturtle SYSTEM "using-kturtle.docbook">
  <!ENTITY getting-started SYSTEM "getting-started.docbook">
  <!ENTITY programming-reference SYSTEM "programming-reference.docbook">
  <!ENTITY translator-guide SYSTEM "translator-guide.docbook">
  <!ENTITY glossary SYSTEM "glossary.docbook">
]>

<book id="kturtle" lang="&language;">

<bookinfo>
<title>The &kturtle; Handbook</title>

<authorgroup>
<author>
<firstname>Cies</firstname>
<surname>Breijs</surname>
<affiliation>
<address><email>cies AT kde DOT nl</email></address>
</affiliation>
</author>
<author>
<firstname>Anne-Marie</firstname>
<surname>Mahfouf</surname>
<affiliation>
<address><email>annma AT kde DOT org</email></address>
</affiliation>
</author>
<author>
<firstname>Mauricio</firstname>
<surname>Piacentini</surname>
<affiliation>
<address><email>piacentini AT kde DOT org</email></address>
</affiliation>
</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>


<copyright>
<year>2004</year><year>2009</year>
<holder>Cies Breijs</holder>
</copyright>

<copyright>
<year>2004</year><year>2007</year>
<holder>&Anne-Marie.Mahfouf;</holder>
</copyright>

<copyright>
<year>2007</year>
<holder>Mauricio Piacentini</holder>
</copyright>

<legalnotice>&FDLNotice;</legalnotice>

<date>2021-01-20</date>
<releaseinfo>Applications 20.12</releaseinfo>

<abstract>
<para>&kturtle; is an educational programming environment that aims to make learning how to program as easy as possible. To achieve this &kturtle; makes all programming tools available from the user interface. The programming language used is &turtlescript; which allows its commands to be translated.</para>
</abstract>

<keywordset>
<keyword>KDE</keyword>
<keyword>KTurtle</keyword>
<keyword>education</keyword>
<keyword>language</keyword>
<keyword>native</keyword>
<keyword>programming</keyword>
<keyword>TurtleScript</keyword>
<keyword>Logo</keyword>
<keyword>turtle</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title>Introduction</title>

<para>&kturtle; is an educational programming environment that uses <link linkend="what-is-turtlelang">&turtlescript;</link>, 
a programming language loosely based on and inspired by &logo;. The goal of &kturtle; is to make programming as easy and accessible as possible. This makes &kturtle; suitable for teaching kids the basics of math, geometry and...
programming. One of the main features of &turtlescript; is the ability to translate the commands into the speaking language of the programmer.</para>

<para>&kturtle; is named after <quote>the turtle</quote> that plays a central role in the programming environment. The student will usually instruct the turtle, using the &turtlescript; commands, to make a drawing on <link linkend="the-canvas">the canvas</link>.</para>

<sect1 id="what-is-turtlelang">
<title>What is &turtlescript;?</title>
<para>&turtlescript;, the programming language used in &kturtle;, is inspired by the &logo; family of programming languages. The first version of &logo; was created by Seymour Papert of MIT Artificial Intelligence Laboratory in 1967 as an offshoot of the LISP programming language. From then many versions of &logo; have been released. By 1980 &logo; was gaining momentum, with versions for MSX, Commodore, Atari, Apple II and IBM PC systems. These versions were mainly for educational
purposes. The MIT is still maintains <ulink
url="https://el.media.mit.edu/logo-foundation/">a website on &logo;</ulink> containing a list of several popular implementation of the language.</para>
<para>&turtlescript; shares a feature found in many other implementations of &logo;: the ability to translate the commands to suit the native language of the student. This feature makes it easier for students that have no or little understanding of English to get started. Besides this feature &kturtle; has <link linkend="features-of-kturtle">many other features</link> aimed at easing the students initial experience with programming.</para>
</sect1>


<sect1 id="features-of-kturtle">
<title>Features of &kturtle;</title>
<para>&kturtle; has some nice features that make starting to program a breeze. See here some of the highlights of &kturtle; feature set:
<itemizedlist>
<listitem><para>An integrated environment with &turtlescript; interpreter, <link linkend="the-editor">editor</link>, <link linkend="the-canvas">canvas</link> and other tools all in one application (no extra dependencies).</para></listitem>
<listitem><para>The ability to translate the &turtlescript; commands using the translation framework of &kde;.</para></listitem>
<listitem><para>&turtlescript; supports user defined functions, recursion and dynamic type switching.</para></listitem>
<listitem><para>The execution can be slowed down, paused or stopped at any time.</para></listitem>
<listitem><para>A powerful <link linkend="the-editor">editor</link> featuring intuitive syntax highlighting, line numbering, error markers, visual execution and more.</para></listitem>
<listitem><para>The <link linkend="the-canvas">canvas</link>, where the turtle draws, can be printed or saved either as an image (PNG) or a drawing (&SVG;).</para></listitem>
<listitem><para>Context help: help where you need it. Just press <keysym>F2</keysym> (or see <menuchoice><guimenu>Help</guimenu><guimenuitem>Help on: ...</guimenuitem></menuchoice>) to get help on the piece of code currently under your cursor.</para></listitem>
<listitem><para>An error dialog that links the error messages to the mistakes in the program and marks them red.</para></listitem>
<listitem><para>Simplified programming terminology.</para></listitem>
<listitem><para>Integrated example programs to make it easy to get started. These examples are translated using &kde; translation framework.</para></listitem>
</itemizedlist>
</para>
</sect1>
</chapter>

&using-kturtle;

&getting-started;

&programming-reference;

&glossary;

&translator-guide;

<chapter id="credits">

<title>Credits and License</title>

<para>
&kturtle;
</para>
<para>Software copyright 2003-2007 Cies Breijs <email>cies AT kde DOT nl</email></para>

<para>Documentation copyright 2004, 2007, 2009
<itemizedlist>
<listitem><para>
Cies Breijs <email>cies AT kde DOT nl</email>
</para></listitem>
<listitem><para>
&Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail;
</para></listitem>
<listitem><para>Some proofreading changes by &Philip.Rodrigues;
&Philip.Rodrigues.mail;</para>
</listitem>
<listitem><para>Updated translation how-to and some proofreading changes by
Andrew Coles <email>andrew_coles AT yahoo DOT co DOT uk</email></para>
</listitem>
</itemizedlist>
</para>

<!-- TRANS:CREDIT_FOR_TRANSLATORS -->

&underFDL;

&underGPL;

</chapter>

<!--&documentation.index; -->
<index id='command-index'>
<title>Command Index</title>
</index>
</book>
<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:
-->
