また、『図解 プログラミング教育がよくわかる本』〔石戸 奈々子, 講談社, 2017.〕のp. 14にはこのような箇所がある:
| なぜ? どうして?
| ロボットをつくり、「まっすぐ歩く」という動きをプログラミングしたの
| に、その通りに動かない。理由を考える
また、p. 15には明確にこうある:
| 自然に試行錯誤ができるという特徴もあります。
ここは本文にあるこの部分に対応すると見ていいだろう:
| 自分が意図する一連の活動を実現するために、どのような動きの組合せ
| が必要であり、一つ一つの動きに対応した記号を、どのように組み合わ
| せたらいいのか、記号の組合せをどのように改善していけば、より意図し
| た活動に近づくのか、といったことを論理的に考えていく力
これは一面において試行錯誤とも言えるだろう。だが、すくなくともプログラミングにおいては必要な試行錯誤と、不要な試行錯誤が存在する。
さて、プログラミングにおいては試行錯誤は悪だ。単純なミスはなくならないだろうから、その分の試行錯誤は除いてだ。また、モデルが明確でない場合というのもある。モデルそのものを検討する際の試行錯誤は必要だが、まともにモデルが作れていないための試行錯誤は悪だ。
では、「自然に試行錯誤ができるという特徴」というのは、いったいどれを指しているのだろう。すくなくとも『図解 プログラミング教育がよくわかる本』の例であれば、それはデバグの範疇であり、不要な試行錯誤の一例であると思える。
プログラミングにおいて試行錯誤ができることを勧めるのは、プログラミングについての根本の理解ができていないからとも言える。プログラミングにおいては、試行錯誤がないことが最善だ。そのためには、試行錯誤によって、かつ「プログラムが動いたことでよしとする」という立場ではなく、「プログラムが意図のとおりに動くことを論理的に証明」する/できるという立場に立つ必要がある。
もう一度繰り返しておこう。プログラミングにおいては試行錯誤は悪だ。
* * * *
公開して急なおしらせになりますが、2017年 10月 9日、13:30〜16:30に、「コンピュータを使わない、コンピュータとプログラミング入門」という講習を試験的に行ないます。
主な対象は小中学生ですが、高校生以上、大人も受講していただけます。
場所は、山梨県 大月市 市立図書館 会議室です。
参加の予約は不要です。ただし、申し込みをしていただくと、準備に際して助かります。
また、見学も歓迎いたします。
詳細というほどのものではありませんが、こちらのページを参照していただければと思います。