プログラミングの原点!教育用言語「Logo」を徹底解説
Logo Programming Language
Logo Programming Language
Logoは、1967年に開発された教育用プログラミング言語です。「タートルグラフィックス」で知られ、画面上の亀を命令で動かして図形を描くという直感的な学習体験を提供します。現代のプログラミング教育や、再帰処理の概念を学ぶためのシンプルかつ強力なツールとして、今なお根強い人気を誇っています。
ポーランドの中学1年生相当の時期にLogoのプログラミングコンテストで優勝できなかったのが、いまだに悔しくてたまらない。
小学校でLogoを習ったときのことを今でも覚えてる。母親に頼んで3.5インチのフロッピーディスクを買いに行ってもらって、そこにプログラムを保存してたんだ。
Logoの全データがそのディスクに保存されていて、家でもタートルを動かして遊べると気づいたときは、本当に感動したよ。
ちょっとした図形を描いて、繰り返しの処理が多いことに気づいて、それを小さな関数に分割して簡単に描画できるようにする。プログラミングの基本を、無意識のうちに学んでいたんだね。
発展途上国の子供だった私が90年代初頭にLogoに触れられたこと、そしてそれが今の自分につながっていることに、永遠の感謝を感じている。
私が初めてつづれるようになった英単語は「REPEAT」だったよ。
LogoはSeymour Papertによって作られたんだ。彼の著書『Mindstorms』を強くおすすめするよ:https://en.wikipedia.org/wiki/Mindstorms_(book)
1980年に書かれた本だけど、今でも十分通用する内容だ。教師の誤解や数学・テクノロジーへの恐れ、そして時代の課題に適応しようとしない頑固さなど、当時と同じ問題が今も残っているからね。
今、HNのトップに上がっているのに、最高傑作とされる本『Turtle Geometry』がオープンアクセスになっていることに誰も触れていないなんてね。
https://direct.mit.edu/books/oa-monograph/4663/Turtle-Geomet...
ぜひ読んでみてほしい。本当に素晴らしいから。もっとも、この本の序文で予測されていた教育革命が結局一度も起きなかったことを思うと、かなり気が滅入るけどね。
いろんな記憶がよみがえってきた……。
80年代初頭、地元のApple製品を売る店でLogoとBASICを学んだんだ。「The Logical Choice」という店名で、隠し壁の裏に教室があって、店にはアイザック・ニュートン卿と名付けられたイングリッシュ・シープドッグがうろついていたのを覚えてる!
おっ、ちょうどその店の記事を見つけたよ。ソースの5ページ目だ。
[1] https://mirrors.apple2.org.za/ftp.apple.asimov.net/documenta...
自分も8歳か10歳の頃、学校でLogoを使ってプログラミングを学んだよ。本当に楽しくて、存在してくれていて感謝しかない。
驚いたことに、博士課程で学生に演習を教えていたとき、あえて慣れ親しんだ言語ではなくLogoを使ってみたんだ。すると、学生たちがプログラミングを深く理解する助けになったみたい。特に、再帰を扱う最新の演習では、それがフラクタルとしてすぐに視覚化されるのが良かったんだと思う。
試してみたいなら、コードはこれ:
HIDETURTLE
PENUP
SETXY -200 0
RIGHT 90
PENDOWN
to dragon :degree :size
setpensize 1
if :size>5 [setpensize 2]
if :size>10 [setpensize 3]
if :size>20 [setpensize 4]
if :size>40 [setpensize 5]
ifelse :degree=0 [
fd :size
][
left 45 dragon (:degree-1) (size/4)
right 90 dragon (:degree-1) (size/2)
left 90 dragon (:degree-1) (size/4)
right 45
]
end
dragon 6 3000
macOSでお気に入りのLogo環境はこれかな:https://www.alancsmith.co.uk/logo/
多くの人と同じように、私もApple ][でタートルグラフィックスに魅了されてLogoをいじり始めたのが最初だよ。
長年、私たちの学生たちは[0]、数学サークル形式[1]の授業の一環としてLogoを活用してきた。始めた当初、Logoの共同作成者であるWally Feurzeigが、私たちが目指していた型破りな問題解決にLogoの概念を組み込む手助けをしてくれたんだ。タートルジオメトリは、動的な幾何学を探求するための非常に有用な「思考の道具」だよ。共同設立者のVictor Gutenmacherが書いた「Geometry in motion」に関する素晴らしい本[2]は、学校で教わるのとは全く違う幾何学の視点を提供してくれて、学生たちはLogoを使ってそれを探索することができた。多くの学生、特に数学に対する不安を抱えていた子にとって、Logoはその不安を克服し、考えることや試行錯誤することの喜びを発見するきっかけになった。今のプログラマーの多くはLogoからプログラミングの世界に入った良い思い出を持っているだろうけど、技術が凄まじいスピードで進化している今でも、これほど優しくて優れた問題解決や計算論的思考の入門は他にないと思う。
[0] https://www.gentleknowledge.com/
[1] https://en.wikipedia.org/wiki/Math_circle
[2] https://www.amazon.com/dp/0817641610
MSWLogoへの言及がないのが寂しいな!ダイアログボックスやUIを作れるのが最高に楽しかった!
あと、『The Great Logo Adventure』は子供がLogoを学ぶのに最適な本だよ。自分が学んだのもこの本だったし、今は無料のPDFで手に入るみたい!