Tuesday, December 5, 2017

Teaching Coding with Turtles

On the second day of Tech-Mas my true love gave to me… two turtle coders.

Note: This post is part of my "12 Days of Tech-Mas" series for 2017. You can see all of the posts for each day as they get released in the main post here: "12 Days of Tech-Mas 2017".

Over the last few years coding has become a much more common topic in schools. Students of all ages are learning about coding thanks to the rise of Hour of Code, STEM programs, robotics, and more.

One of the most popular coding tools for kids is Scratch from MIT . In the Scratch programming tool students use block coding to move and manipulate Scratch the cat to create games, stories, and animations.

Well you may know about the cat, but do you know about the turtle?

Back when I was a student (in the 70's and 80's) I loved computers (big surprise) and especially coding. At that time, one of the main options for coding in schools was Logo. Basically Logo was a programming tool where you wrote commands to move a "turtle" around the screen to draw pictures and learn the basics of coding. Logo was a direct influence on the development of Scratch many years later (so the turtle is actually the parent of the cat!)

This year is Logo's 50th anniversary, and with this being "Hour of Code" week, it is the perfect time to revisit one of the first programming languages ever developed specifically to teach children how to code. Below we will take a look at a brief overview of Logo, as well as two online tools for your students to learn and use Logo today.


What is Logo?

Logo was created back in 1967 by several people including Seymour Papert. It was designed specifically to teach children about coding, logic, critical thinking, and spatial awareness. The Logo system basically works as follows:

  • There is a blank canvas with a "turtle" in the center. Sometimes it looks like a real turtle, but might just be a triangle on simpler systems.
  • There is a command box where you can type in your code.
  • The commands give instructions on how to move and manipulate the turtle.
  • There are very basic commands, and much more sophisticated commands involving variables and loops.
  • When you run the code, the turtle follow your commands and the results are shown on the screen.



Logo Commands

The are actually several versions of Logo, so the commands may differ a bit based on the version of Logo you are using. However, for the most part, the basic commands should include the following:

  • Forward N - Move the turtle forward N steps
  • Right N - Turn the turtle to the right N degrees
  • Left N - Turn the turtle to the left N degrees
  • Clearscreen - Erase everything on the canvas
  • Penup - Have the turtle pick up the pen so it does not draw when moving
  • Pendown - Have the turtle put the pen down so it does draw when moving
  • Hideturtle - Hide the turtle so it does not show up on the canvas
  • Showturtle - Show the turtle on the canvas
  • Home - Move the turtle to the center of the canvas at coordinates (0,0)
  • Setx N - Move the turtle to coordinate N on the X-axis
  • Sety N - Move the turtle to coordinate N on the Y-axis
  • Setxy N M - Move the turtle to coordinates (N,M) on the canvas
  • Seth N - Point the turtles head to N degrees
  • Arc N M - Create an arc of N degrees at a radius of M
  • Repeat N [commands] - Repeat the commands N times
  • Print pos - Display the turtles position as coordinates
  • Print xcor - Display the X-coordinate of the turtle's position
  • Print ycor - Display the Y-coordinate of the turtle's position
  • Label N - Print the text N at the turtle's current location and direction
  • To N [commands] end - Teach the turtle a set of commands named N
  • Setcolor N - Change the color of the turtle's pen to one of 15 colors
  • Random N - Choose a random number up to N
  • Make N M - Create a variable named N and set it to the value M
  • For [N M O P] [commands] - Perform the commands in a loop with variable N that starts at value M and ends at value O incrementing in steps of value P
  • Setcolor N fill - Fill a space with one of 15 colors
  • Make N readword - Ask the user for input and assign their response to variable N
  • Do.while [commands] condition - Repeat a set of commands as long as a condition is true

These commands can be combined together to create programs that are very simple or very sophisticated including user input, variables, loops, conditionals, and more.

So how can your students learn Logo and create their own programs? See below for two Logo tools that are web-based (so nothing needs to be downloaded) and totally free.


Tool #1 - Turtle Academy

The Turtle Academy website is a wonderful resource for students to learn and create with Logo. The website can be accessed at:

https://turtleacademy.com/


On the site you will find the following resources:

Lessons - 20 levels of step-by-step interactive lessons. These are perfect for teaching a student how to code with Logo. They take the student from the beginning and work up through all the commands. For each lesson the student is taught a new command or idea, shown how it works, and then can type in the command themselves to test it out in the live Logo system. Hints and solutions are provided for every lesson if a student gets stuck.


Programs - A large collection of thousands of Logo programs written and submitted by other users. This is a great way to see what others have created with Logo and the exact code they used.


Playground - A Logo sandbox to write and execute your own programs.



Tool #2 - TurtleOnline

The second web-based Logo tool is TurtleOnline. This tool does not have the helpful lessons like Turtle Academy, but does have extensive and useful help pages that clearly explain each of the different commands. The syntax for the commands is a little different than previously mentioned, but is still very similar. The website can be accessed at:

https://www.turtle.ox.ac.uk/online/

The site contains two main sections:

Home - This is the Logo sandbox where you can type and execute your program.


Help - This is the detailed help guide. There are several sections covering commands, basics, structures, operators, user inputs, and constants. You can even select between simple, intermediate, and advanced for the commands you wish to display, which could be very helpful to differentiate this by age or experience level.



Conclusion

Coding is a powerful skills for students to develop at any age. It helps with critical thinking, problem solving, and logic, while letting them be creative. In addition to the wonderful new tools available to help students learn about programming, let's not forget about Logo, a tool that helped start it all and is still relevant for schools today.

Thanks to Logo for the last 50 years, and here's to moving "Forward 50" more!


Post by Eric Curts. Bring me to your school, organization, or conference with over 50 PD sessions to choose from. Connect with me on Twitter at twitter.com/ericcurts and on Google+ at plus.google.com/+EricCurts1

2 comments:

  1. I'm showing my age, but I LOVED learning Logo in 3rd grade on our classroom Mac! My first intro to coding as well. Great share!

    ReplyDelete
  2. Oh Logo! I can't believe it is still around and I can't believe others loved it. I have too many memories of moving that turtle around in a computer lab in the 80s in primary school. I think it could have turned me off computing for life! Luckily a few years later I found out there are other things you can do with computers.

    I guess this shows we need to introduce students to a wide variety of things as what one student loves (you) could spark zero interest in another (me). Or maybe it also shows that a teacher can make all the difference.

    Nonetheless, this is a very clear and engaging post and it almost makes me want to give Logo another try! Thanks, Eric :)

    ReplyDelete