コンピュータ科学の扉を探して – 執筆の裏舞台02

01

教職コアカリキュラム対応のテキストの執筆に参加した。その執筆にまつわる裏舞台の第2回。

教職向けテキストでプログラミング教育を扱ったものは多くない。特に単独の章を設けてまで扱ったものは数少ない。あとは部分的に触れるに留めているものがほとんどである。

小学校へのプログラミング体験が導入されたことをきっかけとして、プログラミング教育を題材にした書籍は多々刊行された。それらの中には教員の研修を意識したものもある。

しかし、今回の執筆にあたって、参考・参照すべきものは、慎重に検討する必要があるだろう。

プログラミング教育に関する言説を乱暴に振り返ると、次のようなものが考えられそうだった。

  • 情報処理・計算機科学分野のもとで展開するプログラミング教育
  • 大学におけるプログラミング教育
  • MITの取り組みを源流とするプログラミング教育
  • パーソナルコンピュータブームにともなうプログラミング教育
  • ネットワークとフリーソフトの文脈におけるプログラミング教育
  • 中等学校段階におけるプログラミング教育
  • モバイルデバイス時代のプログラミング教育
  • STEM・Makers教育の文脈におけるプログラミング教育
  • 小学校におけるプログラミング教育
  • AI時代のプログラミング教育

プログラミング教育というよりも、そのときどきのプログラミング学習の動きを捉えた部分もある。たとえば、パソコンブームの際に子どもたちがBASIC言語などを触れたり習得したりした文化が存在したが、これはある種の学習活動だったし、そこにプログラミング教育的な言説が成立していたと考えられる。

さて、先達原稿は、どちらもSTEM・Makers教育の文脈や小学校におけるプログラミング教育の導入あたりを射程にして執筆されたことがわかる。これは時節を反映した原稿としては当然だっただろう。

確かに文部科学省「小学校プログラミング教育の手引」を無視することができないとはいえ、私たちはこれを乗り越えるためにも参照範囲を拡げる必要がある。

板垣原稿がそうしていたように、中等教育におけるプログラミング教育の言説を参照することは大事なのかも知れない。

「プログラミング的思考」なる用語において強調される「順次」「分岐」「反復」は、すでに中学校で扱われていることを根拠に引っ張ってきているところもあるし、共通教科「情報」に至るまでの高等学校情報科にも様々な蓄積がある。

たとえば、情報科教育に関しては次のような文献がある。

現行学習指導要領を対象としたものはこの3冊になる。また、旧学習指導要領を対象とした文献が他にも流通しているので適宜参照してもよいだろう。

高等学校情報科に関する書籍は、情報科学分野の執筆者が関わっている率が高く、そういう意味ではプロパーによるプログラミングの言説が読めるのではないかと期待された。

しかし、「プログラミングとは何か?」という問いを解消するには至らなかった。

誤解無きよう、これらの文献がプログラミングについて書いていないというわけではない。

どちらかといえば、プログラムやプログラミングについて丁寧に解説をしてくれている。モデル化とシミュレーションも扱っている。アルゴリズムとプログラミング指導のポイントさえ載っている。

にもかかわらず、そこには学習指導要領をがっちりと意識した縛りのようなものが敷き詰められており、それに沿うように専門知識が展開してしまっていた。

おそらく私が「プログラミングとは何か」という問いでみつけたいのは、プロパーの人々が素でプログラミングを語っている様子なのだ。その語りの印象をうまく翻訳して原稿に載せたいと考えている。

高等学校情報科について理解するには意義ある文献たちだけれども、そもそもの原点を知るためには、もっと源流に近づく必要がありそうだった。

つまり、コンピュータ科学の扉を探してまわることだ。

読んでいるあなたは、少し呆れ始めているかも知れない。

教職課程向けテキストのプログラミング教育を扱う原稿で、こんな回りくどいことをする必要があるのかと。

あらかじめ断っておけば、行きつく先に意外な答えはない。

回りくどいことをしてもしなくても、おそらく出来上がる原稿に違いはない。

それでも、コンピュータ科学の扉を探して覗き込もうとする必要があると考えているのは、プログラミング教育の領域で出会った方々を理解したいという欲求があるからだ。

たとえば、Scratchの日本での普及に伴走している阿部和広先生や、Viscuit開発者である原田康徳先生と、直接お話した経験がある。ご両人ともソフトウェア工学やコンピュータ科学の専門家であり、様々な語りや記述の端々に、そうした専門性がにじみ出ているのを感じられる。

文系起点の学際学徒である私からすると、同じコンピュータを語るにしてもその方々との大きな差を感じずにはいられない。

埋められる差ではないが、埋める努力をすることが誠実な向き合い方だと思う。

プログラミング教育に関する原稿に携わるのであれば、コンピュータ科学について自分なりにでも探索を経ておかなければ、記述の強度は保てない。

無駄な我流に過ぎるが、そういう流儀で原稿執筆の準備をした。

とはいえ、「プログラミングとは何か」をコンピュータ科学関連の文献に尋ねるのは、また違った難しさにぶつかることになった。

コンピュータ科学の世界で、プログラミングとは何かという素朴な問いに答える意味がないからである。

そりゃプログラムをつくることでしょう…と。

プログラミング(Programming)とは,いうまでもなくプロムグラム(program)を作成することである.そして現実世界におけるプログラムは,まとめられてソフトウェアとなり,コンピュータ(電子計算機)をただの電子部品の集合体から,きわめて強力で高速な情報処理システムへと変身させる.

プログラミングの方法 – 岩波講座ソフトウェア科学』(岩波書店)まえがき

プロセッサが計算機のときには,アルゴリズムはプログラム(program)と呼ばれる形で表わされる.プログラムはプログラム言語(programming language)で書かれる.また,アルゴリズムをプログラムとして表現することをプログラミング(programming)という.

計算機科学入門〔第2版〕』(近代科学社)7頁

プログラミング(programming)とはプログラム法,あるいはプログラムするということである.何をどうプログラムするのか,それが問われる.

コンピュータサイエンス入門(第1版)』(サイエンス社)100頁

定義的な説明としては、これらの引用に準ずることで十分だろうと思う。

語用的な理解としては、まだこれだけでは不十分である。プログラミングに対してどのような解釈の幅があるのかを理解するには、もっと渉猟する必要がある。

そんなことを思いながら紐解いていたのは、竹内先生と玉井先生の著書だった。

この2冊は、専門家の立場からプログラミングやソフトウェアの世界に誘ってくれる貴重な著作である。

「ソフトウェア」などの言葉の語源といったところから興味深い話を展開している。

プログラミングについて…

プログラムとプログラミングの違い
 どっちも同じようなものだと言わないでください.名詞としてのプログラムとプログラミングには,楽譜と作曲ぐらいの違いがあります.

『プログラミング道への招待』(丸善出版)55頁

プログラミングとは、プログラミング言語という人工言語でプログラムを記述するという仕事である。だからその作業は、小説や詩や論文や戯曲を書くという言語による創作行為と似ている面がある。

『ソフトウェア社会のゆくえ』(岩波書店)17頁

どちらも創作的なイメージを用いて、ずいぶんと一般向けにかみ砕いている印象に読めるかも知れないが、これらの記述以降もプログラミングとプログラム(ソフトウェア)に関する興味深い記述が続いている。

文芸(芸術)としてのプログラミングやプログラミングの美学といった話題に至ると、これはもうプログラミング教育の範疇を越えてしまいそうだけれども(その文脈に構造的プログラミングの話もあるけれども),こうした景色の存在を意識しながら、そろそろ出発点に戻った方がよさそうだ

「プログラミングとは何か」という問いを設定したところまで戻り,一旦それを置いておくことにしよう。

プログラムとは何か、プログラミング言語とは何か、コンピュータとは何か…などなど。

こうして広がっていく問いを包括するであろうコンピュータ科学全般について、これを読み手に意識化させることが大事なのだろうという思いが強くなった。

第14章の最初のページで「コンピューテーショナル」(Computational)、続くページで「コンピューティング」(Computing)という用語をあらためて持ち出したのは、こうした回り道の結果である。

学びを育む 教育の方法・技術とICT活用』(北大路書房)は全国の書店からも注文できますし、オンライン書店でもご購入いただけます。

第14章の執筆にまつわる裏話はまだまだ続きます。