軌跡は自分で起こすもの

きむら(K) さんち経由、

Squeak って単語に ピクピクっと反応。Squeak Etoys と Squeak Smalltalk のどちらなのかな〜とか思ったり。

質問者:s09856tm

(1) 螺旋(大きさは任意)の奇跡を描くスクリプト(Squeak)を作成して答えよ。なお、螺旋の描く方向を

  • (a) 外側に螺旋が広がっていく(最初の奇跡よりも外側に螺旋を描く)
  • (b) 内側に螺旋が狭まっていく(最初の奇跡よりも内側に螺旋を描く)

の2つについて作成すること。スクリプトは実際のSqueakの命令文と同じものとすること(動かしたものを書くことを推奨する)。なお螺旋の幅は等幅とする。

http://okwave.jp/qa5440158.html

「螺旋」といっても「螺旋階段」のほうじゃなくて「渦巻き」の方。となると、2次元キャンバスに軌跡をお絵かき――は、Etoys の十八番です。

他にも「アクセルとブレーキにおいて、足が、両方に触れた場合でも、ブレーキが優先して作動するようなスクリプトを作成せよ」ですとか、Squeakじゃないですが「順次・分岐・繰り返しで日常の何かを説明せよ」ですとか、バリバリの情報系というよりは、プログラミングを通じて自身の考えをデバッグする学習法や論理的な考え方を身につけようみたいな、そんなカリキュラムぽい。

なので、うん、これは Squeak = Etoys ってことで、タートルをグルグル回しちゃえってことですね、たぶん。


* * *


もちろん質問に回答してあげるつもり、とかじゃなくって、単純にこの問題、自分だったらどう解くかなぁと。わたし、数学は苦手なので、渦巻きを描く式とか、全然頭に入ってません。そんな 普通の文系チックなスタート地点からやってみました。


さて、Logoでもおなじみのタートル幾何学的は、図形をタートル主体&微分的に考えます。「円を描く」は、「毎回同じ量だけ『ちょっと向きを変えて、ちょっと進む』を繰り返す」になります。

とすると渦巻きは、毎回ちょっとづつ進むその量、または変える向きの量が、変わっていく・・という方法で描けそうに思えます。まぁ、「ちょっとづつ」って、等差?等比?・・という疑問も浮かぶのですが、そこは レッツトライ、やってみてから考えよう、ですね♪

まずはなんとなく楽そうなの等差のパターンで、ペタペタっとタイルスクリプティングして、実行。


綺麗にドリームキャスト渦巻きです。これで OKそう? でも一応 一定比率で減っていく方もやってみます。

*1


こっちはカタツムリの殻のようになりました。というわけで、書くべき渦巻きは「螺旋の幅は等幅とする」なので、前のパターンが正解でした。


* * *


プログラミングをしない人でも、これなら簡単そうに見えるでしょう?実際超簡単です。だからわたし、この問題は普通の小学生ならほとんどみんな出来てしまうんじゃないかな?と、思いました。目をつむればわたしの脳裏に、学校の教室で子供達がワイワイガヤガヤと、いろんな渦巻きが描いている光景が浮かびます。「せんせーっ、みてみて!できましたーっ!」(←幼児退行してエントリーを書くわたし)

なのにその一方で、同じ問題が大学とか専門学校とかで出題されると、尻込みして「わからない」と固まってしまう人がでるのも、よくわかる気がするのです。この質問主がクラスの中で特別ズバぬけてダメダメ・・というわけじゃなくって、それなりの比率で「わからない!お手上げ」な子がいるような。何も試さないで、全然わからない、と固まってしまう。そんな光景が目に浮かびます。


苦手な人も得意な人もいる、というんじゃなくて、小学生の頃は簡単で大学生になると難しくなる、ひとりの人が何かを苦手になる様というか。――上手くは言えないのですが、そういうのを感じました。

たとえば「綺麗に解かなきゃダメ症候群」というか、答えという着地点がやけにナローで、それだけでなく、そこにたどり着く過程にも「正解」があって、その道筋を辿って美しく到達しなければいけない・・みたいな。そんな「問題の解き方」に慣らされていくうちに、使われなくなって錆び付いていくような能力、そんなのがあるとかないとか、そういうかんじ。あ、はまちちゃんちのコレなんかも同類かもしれない。


なぁんて、そんなモヤモヤを感じたよ、というエントリーでした。(根拠があっての話じゃないです。そう思ったよ、というだけのチラシの裏なエントリー)


おまけ

渦巻きの間隔が等間隔であるのを見た目で「それっポイ」でスルーしてしまったけれど、「本当に等間隔なの?どんどん図を大きくしてったら間隔変わってきたりしない?」みたいなのを説明してみようって課題も面白いかも。

大きさかえて間隔を計ってみたり、とか

みたいなのを足がかりにキチンと頭のなかのマイクロワールドに反映する、とかとか、色々出てきて面白そうかも。

*1:Testブロックは要らないとか、/1.002 とか何だよ、とか、色々つっこみどころ満載でごめんです