Here is a recommended programming language learning path for children based on Logo/Lisp
Lisp is the second oldest family of computer languages in use today, and as such has a host of dialects and implementations at a wide range of difficulties. Lisp was originally created as a practical mathematical notation for computer programs, based on lambda calculus, which makes it particularly well suited for teaching theories of computation. As one of the earliest programming languages, Lisp pioneered many ideas in computer science, including tree data structures, automatic storage management, dynamic typing, object-oriented programming, and the self-hosting compiler all of which are useful for learning computer science.
The name LISP derives from "LISt Processing language". Linked lists are one of Lisp languages' major data structures, and Lisp source code is itself made up of lists. As a result, Lisp programs can manipulate source code as a data structure, giving rise to the macro systems that allow programmers to create new syntax or even new domain-specific languages embedded in Lisp. So Lisps are useful for learning language design, and creating custom languages.
A reasonable learning path would be Logo followed by any educational variant such as Scheme or newLISP, followed by a professional variant such as Common LISP.
Logo is a language that was specifically designed to introduce children to programming. The first part of learning Logo deals with "turtle graphics" (derived from turtle robots used as early as 1969 with proto-Logo. In modern implementations, an abstract drawing device, called the turtle, is used to make programming for children very attractive by concentrating on doing turtle graphics. Seymour Papert, the inventor of Logo, was a major thinking in constructionism, a variety of constructivist learning theory. Papert argued that activities like writing would naturally be learned by much younger children providing that they adopted a computation culture.[7] Logo was thus designed not only to teach programming, and computation concepts but to enhance a child's entire well being in a culture increasingly dominated by technology, "more important than having an early start on intellectual building is being saved from a long period of dependency during which one learns to think of learning as something that has to be dished out by a more powerful other...Such children would not define themselves or allow society to define them as intellectually helpless." [7] It has been used with children as young as 3 and has a track record of 30 years of success in education. Since Logo is actually a streamlined version of LISP with more advanced students it can be used to introduce the basic concepts of Computer Science and even Artificial Intelligence. Brian Harvey wrote a series Computer Science Logo Style[8] for self study of computer science based on Logo. Logo is widely available on virtually every platform, in both free and commercial versions.
Scheme was originally designed in 1975 to serve a tutorial purpose[9] see also LISPs of the day used non-recursive control structures to implement lambda calculus, primarily since LISPs were still being implemented for efficiency reasons in hardware. Guy L. Steele, Jr. and Gerald Jay Sussman constructed Scheme as a fast interpreted language on top of an underlying LISP with cheap procedure calls.[10] Pedagogically this allowed for teaching programming in terms of domain-specific languages and meta-circular evaluators. The publication of Structure and Interpretation of Computer Programs in 1984 incorporated this educational philosophy into a canonical textbook, which changed the predominance of Pascal as the university programming language.
The publication of Abelson and
Sussman’s Structure and Interpretation
of Computer Programs (sicp) (Abelson
et al., 1985) revolutionized the
landscape of the introductory
computing curriculum in the 1980s.
Most importantly, the book liberated
the introductory course from the
tyranny of syntax. Instead of
arranging a course around the syntax
of a currently fashionable programming
language, sicp focused the first course
on the study of important ideas in
computing: functional abstraction,
data abstraction, streams,
data-directed programming,
implementation of message-passing
objects, interpreters, compilers, and
register machines. Over a short
period, many universities in the US
and around the world switched their
first course to sicp and Scheme. The
book became a major bestseller for MIT
Press. Along with sicp, the Scheme
programming language (became widely
used. It was no longer the subject of
a few individual courses at Indiana
University, MIT, and Yale, but the
language of choice in introductory
courses all over the world.[11]
Since then the Scheme community has introduced several pedagogic programming environments for less advanced courses of particular notes it the PLT Scheme outreach effort with its DrScheme environment, freely available text How to Design Programs and TeachScheme! educator training.[12]
newLISP aims to provide a fast, powerful, cross-platform, full-featured scripting version of the Lisp programming language which uses only a modest amount of system resources such as disk space and memory. It is particularly suited for learners because of its simple, consistent, streamlined, Lisp environment that minimizes the learning curve and maximizes programmer productivity and pleasure.
Common Lisp
Common Lisp is a general-purpose (professional), multi-paradigm programming language. It supports a combination of procedural, functional and object-oriented programming paradigms. As a dynamic programming language, it facilitates rapid development, with iterative compilation into efficient run-time programs. Common Lisp is different from most other professional languages in the use of S-expressions to denote both code and data structure. Function and macro calls are written as lists, with the name of the function first. Developed to standardize the divergent variants of Lisp which predated it, it is not an implementation but rather a language specification. Several implementations of the Common Lisp standard are available, including proprietary products and open source software.
Source: http://en.wikipedia.org/wiki/Educational%5Fprogramming%5Flanguage