«前の日記(2005-02-22) 最新 次の日記(2005-02-24)» 編集

Matzにっき


2005-02-23 父の誕生日 [長年日記]

_ [言語] Teaching my kids to program

子供にプログラミングを教える時にどんな言語を選ぶかって話題。 DanDon Boxってのはすごく有名な人らしい(ごめん、知らないの)。

私だったらどうするかなあ。私の4人の子供たちは、 あいにく(さいわい?)プログラミングに関心がないので そういうことを考えたことがない。 プログラミングってのは自分で学びたいと思って身につけるものだと思ってるし。

でも、いざ彼らが「学びたいんだけど」と言ってきたら、なにを与えるかなあ。

Ruby
やっぱり父親が一番詳しい言語だから(当たり前)。 でも、Rubyってばどっちかっていうと「ハッカーの道具」で素人向けではないような気もする。 ま、そういう点は触れないで教えればよいのだが。
Squeak
やっぱ、一番見栄えがいい処理系といえばSqueak周辺ではないかと。 ただねえ、次につながるかといえばなんか違う気がする。
LOGO
元祖タートルグラフィックス。 子供にプログラムの結果がはっきり見えるのは良い。 でも、ちょっと古めかしい。今でも処理系は入手できるんだろうか。 「次につながるか」という不安はここにもある。
Dolittle
ドリトル先生にお願いしようか。 が、父親もよく知らない言語は教えられないなあ。
ひまわりなでしこ
これも同様。日本語プログラミングにはずっと前から懐疑的なのだ。 ただ、「シンボルを日本語の単語にして構造は通常言語」というのはアリかもしれない。

なんかコレというものがないねえ。

....作るか(ぉぃ)。

_ [Ruby] Probe Object

sshiさんの日記から。

まあ、Rubyを含め動的型言語には、

Rubyでは動的型付けの悪影響で、ライブラリなんかの関数に何のオブジェクトを渡せばいいのかさっぱりわからないことがある。ソース読んでも関数定義だけでは仮引数の個数と名前くらいしかわかんない。

  • 変数宣言に型を書かなくていいなんて、なんて書くのが楽なんだ、ビバRuby!
  • 変数宣言に型を書かなくていいなんて、なんて読むのがつらいんだ、ガッデムRuby!

てなかんじ。

という傾向があるのだが、それに対する対応策として、 「じゃあ実行してみちゃえ」というアイディア。 動的言語万歳。

使い方のわからないメソッドにProbeというオブジェクトを引数にして渡すと、method_missingを活用して

  • そのオブジェクトに対して呼び出されたメソッド
  • その引数
  • メソッドの戻り値の使い方

などを記録してくれるという仕組み。詳しくは元のエントリを参照のこと。

結構いいかも。逆転の発想だ。

本日のツッコミ(全19件) [ツッコミを入れる]
_ kitaj (2005-02-24 01:49)

イマドキはなでしこでは? > ひまわり<br>特殊変数「それ」が素敵杉.

_ まつもと (2005-02-24 01:54)

ご指摘ありがとうございます。直しておきました。<br>いや、「なでしこ」と書こうと思ってたんですけど、「ひまわり」って名前のインパクトが大きくて、つい。

_ なひ (2005-02-24 06:58)

Dan→Don。DanはKogaiさん。

_ まつもと (2005-02-24 07:55)

また、まちがえた。

_ MMX (2005-02-24 09:23)

なでしこの質問掲示板などを眺めるだけで、初心者言語は作らないほうが身のためと思います。「要求」の範囲の広さは初心者だからと言って狭くはありません。<br>プログラムの概念も 「画面を読み取り+マウス操作+キー送信発行」 のようなAi操作者のようなものを考えてたりします。

_ babie (2005-02-24 09:30)

Rubyでやるかはともかく、メソッド宣言時の引数で型でなくModule(というかメソッドの集合を表わす何か)を指定する方法ってどうでしょうか?

_ (2005-02-24 10:13)

「それ」!<br>HyperTalkみたい。

_ 大島芳樹 (2005-02-24 10:33)

Squeak (のeToys)でやっておけば、10年後ごろ当たり前になっていなければいけない(はずの)並列プログラミングを、子どものときから書く練習ができる、かもしれません(と無理やりな宣伝)。<br><br>後は、次世代SqueakであるTweakでしょうか。まだちゃんと使えませんが。

_ まつもと (2005-02-24 11:41)

やっぱみんな関心があるんだなあ、初心者言語。<br><br>eToysが出たら原田さんのビスケットも候補に入れないといけませんね。<br><br>http://www.viscuit.com/<br><br>でも、それはそれとして、並列って10年くらいで当たり前になるかなあ。10年前も同じようなことを聞いたような気がするけど、実際にはそうなってないし。20年たっても一般人は使いこなせないような気がします。玄人がライブラリの奥で使ってる割合が増える程度ではないでしょうか。<br><br># 「近い将来でははずれる方に賭ける方が有利」の例。

_ Classiclll (2005-02-24 12:54)

いまさらですが、私のWebでHyperCardによるTurtleGraphicスタックを作っています。<br>子供へのプログラミング教育として考えた場合、言語としての発展性は二の次(というより子供自体の柔軟性を信じて)、「子供の入りやすさ」と「自然な発想との親和性」が最も重要なポイントではないかと思います。<br>#言語自体は単なる道具でしかないのではないでしょうか?

_ 大島芳樹 (2005-02-24 13:36)

僕自身がこういうシナリオを信じているかというと微妙ですが、例えば冷蔵庫と電子レンジとガスコンロにコンピュータが入って、冷蔵庫上のパッドでちくちく設定(これが(広義の)プログラム)しておくと、ある条件がそろったときになにかする、みたいな2, 3並列のものがありうるかなあと。<br><br>「10年前に言われていた未来の家」か、と言われると、うーん^^;

_ 兼宗 (2005-02-25 02:02)

Dolittleの兼宗です。言語はRubyで(が)いいんじゃないかなあ。よいサンプルとアドバイスできる身近な存在が一番です。

_ 兼宗 (2005-02-25 02:10)

LOGOは設計が古いので何とも...。子供にDynamic bindingとrecursionを体験させるには適しています。:-)

_ Classiclll (2005-02-26 13:25)

>kitajさん<br>変数「it」はハイパーカードにもありますよ。<br>>兼宗さん<br>「recursionを体験させる」ではなく、「recursionを意識させずに自然な思考を身につけさせる」のがよい、と思っています。

_ Classiclll (2005-02-26 13:37)

↑言葉が変ですね、以下のように訂正します。<br>「recursionを意識させずに自然な論理として思考に織り込むことが出来るようにさせる」

_ 山路邦夫 (2005-02-26 14:27)

私は 文字列入れる 変数名の最後に _s とつけて 整数なら _i とつけてます 配列は 英語がわからないので 配列の _h つけてます。 子供用の言語つくるなら ですが 私の場合いまだに基本的なコマンドのスペルがわからないでマニュアル見なければいけないない 記憶できない体質なので 数字で書ける ものがいいのかなと 思って 携帯から使える 簡単ものを そんなので 作りかけてます

_ Tanabata (2005-02-26 18:19)

ロボット組み立てるのが楽しいなら、MindStormはどうですか。プログラミングの勉強にはならないでしょうけど。

_ Classiclll (2005-02-26 18:53)

>Tanabataさん<br>MindStormもOKです。「子供向け」のキーワードは、言語構想の理解というよりは、思考の枠組みの構築に重点があるように思えます。<br>制御、スコープ、再帰、動的型付け等の用語は、大人が後付で大人の理解のために命名しただけのように思っています。

_ 原田 (2005-03-25 00:06)

なんか,1ヵ月も前の話題にすみません.僕は自分の子供のためにViscuitを作りました.何を教えるかという議論をはじめたら,それはその人がどんなコンピュータ感を持っているか,に尽きるわけです.そこで合意がとれないかぎり話は交わることはありません.他人を説得するのは面倒なので,自分の子供のため,というのは非常に楽な問題設定です.それから,プログラム言語を作れる人はそんなに多くありません.<br>ですから,まつもとさんもぜひご自分のお子さんのためにお作りになってください.Ruby/Kidsとか.

お名前:
E-mail:
コメント:
[]

«前の日記(2005-02-22) 最新 次の日記(2005-02-24)» 編集

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.