Somewhere over the last few decades a basic form of learning and intuition building called tinkering was lost then rediscovered (Brown, 2007; Foster, 2002). Digital technology has played a critical role in reopening to the world what was once fundamental. Slowly the creators of the tinkering forms of learning are enticing children and educators to re-activate this basic form of learning and intuition building that we also call play and doing so through programming. For example, the "turtle" drawing on the left was created by tinkering or playing with Logo geometry programming which can be learned in minutes. The process focused nature of programming has enabled it to integrate with all content areas. The explorative nature of such work is increasingly used to attract learners to areas of science and mathematics.
The Partnership for 21st Century Skills has noted the importance of teaching the foundational grammar of 21st century thinking (2007). Programming is unfortunately one of those most neglected of cyberspace skills in the general school curriculum and tinkering is all but invisible during the school day. However, there are many fun web sites, serious toys and downloadable programming applications that teachers can use to show students something new to them yet so basic to the 21st century, and to encourage and support inquisitive learners in this area. Such activity can have direct relevance not just to STEM topics in math and science but to any other content area.
If you pull together a collection of sensors, mechanical devices, and programming languages you generate many high interest topics for students, from basic electronics to robotics. You also create new reasons to learn to read and write better. These topics lead to important career skills for many and important scientific and intellectual knowledge for the rest.
Because most adults and students have had so little to exposure to actually programming a computer, the first step in showing its relevance is to demonstrate how easy and fun it can be to learn a few simple programming commands which can do interesting things.
Explore Bill Kendrick's Web Turtle web site.
Use this site to create and test simple programming ideas to see the relationship between numbers, patterns, geometry, direction following and programming skills. Just this one simple web site and the geometry of its Logo programming language can be used to teach a wide range of math concepts that must be taught in grades K-8. These features include a random number generator and an input button on the home page.
When you visit this site, follow the directions there. It is easier to follow the directions on the first screen by printing it. Then under the table with the examples is a direction to "Start a New Drawing." Do this, then type in the directions from the print of that previous screen. Next, change the numbers to make the turtle draw different shapes, such as triangles, hexagons and octagons. Do these steps at least once.
There are many examples at this site of different programs and programming features to try and to modify. Explore the "Play with an Example" link and the "Available Commands" link.
The first activity that should be carried out at the Web Turtle site
follows a set of six "primitives" in a loop that repeats itself four times
to draw a square. Change the numbers in this example, then click the Draw It button to see how this works. This is so easy. Next, try making a triangle or hexagon. Next, return to the first Web Turtle
page and visit the Examples page. See the second example, called Squares.
This set of directions is a procedure that can be given a name, such as
square as seen is the Web Turtle page's example. The computer can remember this and later
simply giving the command "square" will cause the steps to be recalled and
completed where ever the turtle is located. That is, in these simple examples, several major programming concepts
have been introduced. The image to the right was made by using this composition model of the Squares to instead create a triangle and rotate it until the rotation completes the shape.
So what? This example is important because it demonstrates a fundamental idea in problem solving. The capacity to create a named special set of directions is similar to the capacity to create a lego brick or any other unit, item or activity that needs to be used repeatedly yet in creative ways to solve a problem. This intellectual skill is critical in solving many problems, whether completing a design or saving the world. Other commands extend this capacity in powerful ways.
The concept of branches introduces another key concept, "what if?" Branches use command sets that begin with IF and set the value for some condition. For example, when the loop has been completed five times, drop out of the loop and move on to the next command. To see a programming example of a branching command that can be typed in, click the Available Commands button on the opening page of the Web Turtle site.
If you are interested in an extra credit challenge, here are a couple of options:
The IF command is also where a sensor's input would be used. There are
many possible examples that a wide range of students can understand
. IF the sensor reports that the robot has stopped at a wall, turn the robot's wheels
90 degrees and try to move again. IF the sensor detects smoke particles,
direct the buzzer to sound the alarm. IF the sensor reports a temperature
that has climbed over 103 degrees, call the doctor.
Here's one last thinking/programming concept, arrays. Arrays are containers for holding a large set of variables. As an example, a spreadsheet is a two-dimensional array in which each cell name is a variable name that can hold some value, whether number, formula or text. Arrays could be one dimensional, two, three or more. Arrays are not covered in the directions at the Web Turtle site.
The analytical thinking required for effective programming is also very close to the types of thinking required for effective teaching. Programmers carry out plans of actions in a process that would seem very familiar to anyone who has every planned instruction for a class or an individual. Programmers break a problem down into sets of procedures (analysis), much as a teacher breaks an instructional event down into a six point lesson plan or an IEP (Individualized Educational Prescription). Programmers then type up the steps for the computer to follow using language that the computer can understand (synthesis). Teachers type up or talk out the steps for students to follow using language that they can understand. Programmers watch the computers operation to see where the computer fails to do what was intended and then they continue to change its directions until the computer can meet their goals. Teachers do something very similar. Programmers have the advantage in that computers do not have independent minds or wills of their own. Computers will follow the directions that they are given precisely and promptly; this is not so with those human beings that we teach. Educators have additional challenges that involve leadership and motivation skills. With proper motivation and skills, human beings will invent new commands for themselves that enable them to work around bad directions and keep going.
Scratch.
Javascript and Seaside
At a slightly higher level of skills, many web page creators are inserting javascript programs directly into their web pages or building highly interactive web applications with Seaside.
The ability to run javascript programming language is built in to most web browsers, including Netscape Navigator and Internet Explorer. Numerous sites are available for teaching the basics of javascript. Western Carolina University now teaches Javascript in its Computer Science 130 course. Javascript skills were essential in creating the thousands of online calculators at Martindale's site. For more, search the web and libraries for "javascript" and "javascript tutorial" to find further helpful information on the topic of javascript programming.
- About.com's http://javascript.about.com/
- Javascript Source "The JavaScript Source is an excellent JavaScript resource with tons of "cut and paste" JavaScript examples for your Web pages. All for free!" http://www.javascript.com/ with cut and paste scripts.
There are other good beginner programming resources as well:
Robotics
Over ten-thousand teams from around the world participate in team competitions which use programming and robot systems to directly involve K-12 students in different age level divisions.
One of the most famous is FIRST League, for children ages 9-14. A new theme is created for the competition each year. For the coming 2008 season the theme will be climate change. As seen in the picture on the right, the robotic playing field mat and Lego bricks are used to created a 4' by 8' creative play space to try out various programs designs for the robot. (Clicking the picture leads to a more detailed story.) This space is also used to compete in time trials to show how well their robot designs have been programmed to carry out a range of tasks. Teams must also research the topic and prepare a skit or presentation that describes a solution for the theme of the year, and demonstrate to judges their teamwork based problem solving skills.
Bibliography