--still need to add rest of references--

Literature Review

In the past several years, there has been an increasing desire to teach children about concepts in computer science in an active and engaging way. From robotics competitions to computer programming environments to electronic toolkits, children have an ever-growing number of tools for not only using, but creating their own technology.

This brief literature review examines the methodologies and advances in the tools made available to children, with an emphasis on identifying opportunities for improvement. Specifically, this literature review begins a discussion (if just barely) on how we can extend creative programming tools to introduce children to concepts in artificial intelligence beyond what is used in robotics.

Constructionism

Inspired by Piaget's notions of Contstructivism, the theory that children create new knowledge via meaningful experiences, MIT professor Seymour Papert began exploring a new, modified theory of Constructionism. Constructionism extends Constructivism even further, suggesting that children learn concepts better by physically exploring them, talking about them, and explaining them to others. Furthermore, Constructionism embraces the idea that children might express different styles when exploring said topics. For instance, some children might approach topics like computer science in a logical and methodical manner, while others might wield a programming language more like an artist wields a paint brush. Papert was especially motivated by the enthusiasm and persistence a child expressed when creatively motivated by a project. In his observations of children using Logo, he witnessed children being motivated by their personal interests to create specific types of programs.

Just as children may have different programming styles, they will undoubtedly have preferences when using the tools available to them for programming. We will explore several available programming tools in the following sections.

Programming Environments

Created in the late sixties, the Logo language (a version of Lisp) was championed by some as being a revolutionary tool to change the way children think about mathematics, problem solving, and learning. Today's programming tools empower children to program and create without many of the traditional frustrations of a novice programmer. Visual programming languages such as Scratch, Alice, Lego Mindstorms, and PicoBlocks provide a more intuitive, drag-and-drop method of writing programs that enables even children without keyboard mastery to create projects.

The Scratch language, created by the Lifelong Kindergarten Group at the MIT Media Lab, is a media-driven programming environment that simplifies programming with drag-able blocks of code . Children control events and sprites on a virtual 'stage', allowing them to create a wide variety of programs including games, tutorials, animations, and simulations. Scratch users (or Scratchers) are able to create their own media for their programs, either by importing images, drawing them in Scratch, or recording sounds from their computer's microphone.

Perhaps one of the biggest advantages to Scratch is what John Maloney calls its “tinkerability”. Scratchers don't have to compile or run a complete program to see how it might work. Double-clicking on a block (or several connected blocks) immediately causes the script to be executed on the Scratch stage. Scratchers can constantly test and swap new blocks, all the while learning how the changes affect their program. This form of immediate feedback promotes constant experimentation. It also allows Scratchers to discover the functionality of new or unfamiliar Scratch blocks (Maloney et al., 2010).

Scratch takes a similarly hands-on approach to variables and data structures. Instead of being an abstract concept, variables and lists are manipulate-able objects, just as any sprite on the Scratch stage. Scratchers are also able to use variable and lists “monitors” to see in real-time how their actions affect the state of the variables. Variables and lists allow Scratchers to create more complex programs with changing environments.

In general, Scratch does a nearly seamless job of merging the creative process with programming. Students think about what they want to make before they worry how they will make it. The desire to create something they care about fuels how they write their programs. Scratch is also highly-appropriate for students with artistic interests. Scratchers often spend a significant amount of time drawing and perfecting sprites and backgrounds. Scratchers interested in creative writing and storytelling often develop complex storylines in Scratch, even going so far as to create multiple Scratch programs to tell multiple episodes of a story.

In terms of teaching concepts in artificial intelligence, Scratch does not provide support besides allowing ruled-based programs to be constructed. However, because of its ease-of-use, popularity, and creatively-geared interface, it may be an ideal candidate for allowing children to explore topics in visual processing. Additionally, because Scratch is used on a computer, it would potentially be able to interface with webcams and harness additional processing power.

A.I. And Robotics Education

Aside from being used to create software programs, the Logo language was also used to create “turtle robots”. Each Logo turtle was Logo equipped with a retractable pen – children could write programs to make the turtle draw different geometric patterns on paper. Since that point, there have been various other robots that are marketed towards children. Several of these robots have the potential to teach concepts in artificial intelligence, albeit in a way that is generally predisposed towards robotics.

The Aibo robot, first released by Sony in 1999, was a brand of robotic pet that could be trained by its owner. Capable of walking and possessing sensors corresponding to sight, sound, and touch (including a webcam), the Aibo robot was a self-contained robotics platform designed to emulate an actual dog. Though they were designed to be intelligent pets rather than tools for construction, Aibo dogs found an amount of popularity within the AI community. Aibo dogs were used for speech recognition projects (Kaplan) and several robot-gait projects using neural networks, reinforcement learning, and evolutionary algorithms.

Lego Mindstorms (now Lego NXT) are a popular choice for beginner roboticists. The Mindstorms kit consists of a physical programmable “brick”, and several sensors and actuators as well as parts for creating a robot chassis. Children can write programs controlling the NXT “brick” in a visual blocks-language released by Lego. More advanced users can program NXTs in a text-based language such as RCX or even Python or Java.

Lego Mindstorms are a great way for children to explore basic computing programming in a hardware context. They have also been used to teach more advanced concepts in the field of artificial intelligence. In 2002, Klassner integrated Lego Mindstorms into an AI-based course at Villanova University. In the beginning of the course, students were asked to implement ruled-based behaviors on the Lego Mindstorms robots. For instance, students programmed the robot to navigate through an obstacle course – the robots were instructed to ignore obstacles such as random objects or walls during their journey. By the end of the course, Klassner's students used search algorithms to allow the robots to solve puzzles.

Klassner mentioned the fact that the Lego Mindstorms kit's AI capabilities were severely limited by their on-board memory. In addition to this technical limitation, Lego Mindstorms and other robotic toolkits are very specifically geared towards the field of robotics. Unlike Scratch, which encourages more open-ended , visually-creative projects, Lego Mindstorms projects are generally associated with familiar topics in robot control (navigation, etc.). Lego Mindstorms also less frequently (if at all) engage children who wish to express themselves artistically.

Sources

Papert, Seymour (1991). Situating Constructivism. Papert, Seymour and Harel, Idit (Eds.), In Constructionism, Ablex Publishing Corporation.

Papert, Seymour and Harel, Idit (1991). Software Design as a Learning Environment.

Papert, Seymour (1971). Teaching Children Thinking.

Resnick, Mitchell, 2002. "Rethinking Learning in the Digital Age," In: G. Kirkman (editor). The Global Information Technology Report: Readiness for the Networked Word.. Oxford: Oxford University Press.

Zhang, J. and Chen, Q., Learning Gait-Based Evolution for an AIBO Dog

Klassner, Frank, A Case Study of Lego Mindstorms Suitability for Artificial Intelligence and Robotics Courses at the College Level