views:

369

answers:

7

I remember way back when that the programming language LOGO was widely used for teaching about computers in primary schools, back before PC's arrived on the scene and turned the computer lessons into "how to write a word document".

I would like to know what kinds of LOGO implementations are out there, for either of the main 3 operating systems (Windows, MAC OSX, UNIXlike) that support both the GUI interface but also allow for some real programming, not just turtle moves.

As I remember it, LOGO originated as LISP without the parentheses, so I'm looking for a LOGO implementation that can be used for simulations, AI stuff, and has some modern features like the ability to use the network for communication.

Commercial or non-commercial implementations, but remember, the focus is on teaching a young child how to write computer programs.

+3  A: 

I suggest you have a look at www.squeak.org

There is a free book for it too

There is also something called Scratch that has been called - Scratch - Logo meets Squeak Smalltalk?

epatel
Thanks, that's a good point. However I still want to get a good modern LOGO.
Michael Dillon
Well, if you have set your mind to it why not have a look at http://www.terrapinlogo.com/terrapin-logo.php who also have integrated their LOGO with Lego Mindstorm http://en.wikipedia.org/wiki/Lego_Mindstorms That's so cool I almost got to get a set myself :)
epatel
+1  A: 

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

Chris Ballance
+2  A: 

You may want to take a look at Small Basic from Microsoft:

"Small Basic derives its inspiration from the original BASIC programming language, and is based on the Microsoft .NET platform. It is really small with just 15 keywords and uses minimal concepts to keep the barrier to entry as low as possible."

"Small Basic allows third-party libraries to be plugged in with ease, making it possible for the community to extend the experience in fun and interesting ways."

Pawel Lesnikowski
Could you please at least explain the down vote?
Pawel Lesnikowski
Downvote or not, your post actually lead me to find this good software. Please continue to post information where you feel it needs to be said. Even if that didn't help the OP, it will help a lot of late visitors, and many will find that helpful. One upvote for you.
CDR
+1  A: 

Teach your kids python. There are some books out there that use the approach of building a game to keep them interested and the only language that is simpler that python is smalltalk.

Ron Smith
+2  A: 

The best source for LOGO appears to be the page of Brian Harvey, the developer of Berkeley LOGO. He recommends two more modern implementations of Berkeley LOGO, the open source FMSLogo for Windows or aUCBLogo for Windows or Linux. Brians homepage also has three books which are downloadable for free called Computer Science Logo Style, and the first book of the series is could even be used with younger children who are keen on the topic.

Elica is a 3D OOP version of Logo that is widely used in Eastern Europe. The site has an archive of papers presented at various European Logo and educational conferences covering the use of Logo in education in Bulgaria, Slovakia, Hungary, Poland and elsewhere.

NetLogo is an offshoot of StarLogo that is still under development. It is useful for doing simulations and the site has numerous downloadable models in Art, Biology, Physics, Earth Science, Social Science, etc. It works on Macintosh and on Windows

And yes, Scratch is not LOGO, nevertheless it seems to be a useful way to educate young kids in how to program computers.

There are also still commercial Logo implementations around like Terrapin, Microworlds and Imagine Logo.

And if you want to try a graphical LOGO implemented in Javascript, to draw complex figures, try LOGO in your Browser.

Michael Dillon
A: 

It's not Logo, but have you considered processing?

If you prefer something with dynamic types there's also pyprocessing - which is the same idea but inside python instead.

Michael Sparks
+1  A: 

Python is generally suggested as a great modern language for beginners while Logo had been traditionally used in the past to teach those of a young age programming.

How about the best of both worlds?:

Python's turtle module

It is a native package in Python so just:

import turtle

If you have IDLE installed it will display the turtle graphics and movements in another screen.

Ray Vega