機械です。
初めてしまって何を今更、という気がしないでもない
ですが、プログラミング未経験者に「どこから」プログ
ラムを教えるか、ということは、実は私にとっては毎回
厄介な課題です。
私自身はポケコンや MSX から始めたので、当然計算の
自動化から BASIC プログラムへと進みました。
ただ、途中で HyperCard など、オブジェクトを弄るよ
うなモノもやっているわけで、こっちのほうがいいかな
ぁ、なんていう考えも、無いではないです。
特に今小学生(でも、せめて3年生以上だな)にプロ
グラムを教えるなら、迷わず Squeak でタイルスクリプ
ティングでしょう。
「P は〜」が高校生を主人公にしてるのは、計算から
始めるプログラミングは、少なくとも中学生以上、でき
れば高校生以上を対象、ということを示すためでもあり
ます。
高校生以上でも、数式は全然ダメとゆー人は多いとは
思いますが、そもそもそんな人は自分から進んでプログ
ラミングなんて覚えようとしないのではないのかな、と
仮定しています。
「初めての Python」では、組み込み型の説明から、文
法の説明に入りますが、私は次はすぐに「関数」の話を
したいと思っています(あ、文字列の簡単な説明はしま
すが・・・)
それも、組み込まれている関数だけでなく、関数定義
まで進める予定です。
この場合、ホントは lambda による関数のほうがわか
りやすいと思うのですが、lambda 文はいずれ消える運命
ということで、def 文を使って定義することになります。
制御構文より先に関数定義というのも変な話だと思う
かもしれませんが、制御と関数定義を考えた場合、ただ
の式の置き換えという面を考えれば、関数定義のほうが
簡単ではないかと私は考えます。
関数 (function) の手続き (procedure) 的用法につい
ては、制御構造を学んだ後でいいので、ともかく「代入
以外の定義方法」を、早いうちに話しておきたいと思い
ます。
まぁ、制御文を先延ばしにしてるわけですけどね……
今悩んでいるのは、制御文と、リスト/タプル/ディ
クショナリ(辞書)などのコレクションの説明のどちら
を先に、ということですが、たぶんこれも、コレクショ
ンを先に話す方向で考えています。
ともかく、プログラミング→制御文→フローチャート
の恐るべき思考の流れは、できるかぎり断ち切る方向で、
進める予定です。
そう考えると、あまり古い考えでもないな、などと思
ったりするのですが、いかがでしょう?
/機械伯爵/