kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

プログラミング教育はコンピュータを動かすためだけじゃない

プログラミング覚えて億万長者になろうとか
Scratchで勉強しても役に立たないからちゃんとした言語でやろうとか
そういうの聞くとそういうものかなあなんか違うなあ、と感じます

自分が思い浮かぶのはこれ
こういう考え方でプログラミング教育をしてくれないかなあ、と

SICPのPreface to the First Editionより

First, we want to establish the idea that a computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read, and only incidentally for machines to execute.

Welcome to the SICP Web Site 

日本語訳 

一つ目は、コンピュータ言語はただコンピュータに操作を実行させる方法であるにとどまらず、方法論についての考え方を表現するための今までにない形式的媒体であるという考え方を打ち立てたいということでした。ですから、プログラムは人間が読めるように書かなくてはならず、それがたまたま機械によって実行できるというだけのことです。

GitHub - hiroshi-manabe/sicp-pdf: SICP PDF with Texinfo and LaTeX source

方法論とか形式的媒体とか難しいことを考えてるわけじゃないんですけど
プログラミング教育っていうのはなにかやりたいときに結果を想像しつつ手順を考える、ってことを訓練するってことだと思うんですよね
こうすればこうなるはず、もしこうなったらこうする、みたいなのは
何にだって役に立つ考え方なはず

旅行の計画とか天気が良ければ○○行って、集合の時間まで△△して、みたいなのは
コーディングを考えるのに似てるし
料理の段取りは並行プログラミングみたいなものだし
ディズニーランドのアトラクションをいかにうまく回るかなんて最適化みたい

ただ訓練の手段としてコンピュータは最適だとは思います
すぐに試してみることができるし
失敗しても事故になるわけじゃないし
コンピュータで練習して何にでも生かす、みたいな感じで

数学者にならない子だって算数勉強しますよね
それと同じようにプログラマーにならない子にもプログラミングの考え方に
触れておいてほしいと思います
だからアルファベットだとかキーボードだとかそういうのが障害にならない方が
いいんじゃないかな

もちろんすごいプログラマーも育ってほしいですが
そういうひとたちはどうも教育なんかしなくたって
モノが使える環境さえあればすごい勢いで勝手に学習していく気がします

そういう子もいっしょに習うっていうのは先生にとってはなかなか
大変でしょうね

なにしろプログラミング教育自体には大賛成なので大いにがんばっていただきたい