疫病対策に大仏を建立したり,祇園祭を始めたり,あぶり餅を普及させたりと,奈良や京都では昔から工夫をこらし,その成果が観光資源として現在まで続いている。疫病の社会に対するインパクトはこれほどまでに大きい。このたびの新型コロナ疫でも後世に残るような文化資産につながる対策を考案する必要があるのではないかいな。

写真:あぶり餅の一和(2020年3月3日撮影)
芥川龍之介が「蜘蛛の糸」を発表して百年。高二の秋の文化祭,クラスの仮装行列のテーマが 蜘蛛の糸だった。お釈迦様の極楽タワーの竹を近所から切り出し,地獄の焔と煙の絵を描いた。犍陀多に続いて蜘蛛の糸(登山部の赤いザイル)に群がる地獄の亡者だったころ。
昭和40~50年代、泉丘高理数科で行われた計算機プログラミング教育の資料を、当時の担当教諭が収集している。授業内容の記録、使った機器がほとんど地元に残っていないことから、現在は理工各分野で活躍する教え子から授業の感想文を募ってまとめる。今年4月から小学校でプログラミング教育が必修化されるのを前に、当時の「最先端」教育現場の記憶を次代に伝える考えである。はい,この感想文を送ったうちの一人が私です。1969年に石川県立金沢泉丘高等学校の理数科1年(第2期生)でした。CASIOのAL-1000でプログラミングを学んだ。さらに,アナログ計算機で微分方程式を解いてレポートをまとめるなど。楠先生には1年から3年まで数学(甲と乙があってその片方)の授業を受け,理数科の2年のときはクラス担任だった。おととし,先生のリクエストに答えてお送りした返事が次の文章である。
資料をまとめているのは、楠(くすのき)禎一郎さん(93)=金沢市金石西1丁目=。旧制四高、東大理学部地球物理学科出身の楠さんは1958~77年に泉丘高で勤務し、68年にできた理数科を受け持った。
同校は69年、世界初のプログラム機能付き電子計算機「AL1000」3台を導入した。プログラミングのできる計算機が大学、研究機関などでようやく普及し始めた時代、プログラミングによる「ユークリッド互除法」「素因数分解」などを課題として生徒に学ばせていたという。
自宅を整理していた楠さんが、理数科で出題した課題やコンピューター実習室の配置設計図といった資料を見つけた。2018年に開かれた理数科の同窓会で授業の感想文を募集。東京工大教授や企業の技術者を含む教え子から多数の返事が寄せられた。
平成30年9月23日
私が,金沢泉丘高等学校の理数科の2期生として入学したのは昭和44年(1969年)のことです。3年間クラス替えのない8組として,40人のクラスメートとともに学びました。もう50年も前のことになるので,記憶もかなり怪しくなっているのですが,とりあえず,自分の中の物語を憶えている範囲で記してみます。
理数科の二期生ということもあって,2年の担任だった楠先生なども授業を手探りでつくられているようでした。数学や理科?の授業が多く,その分,体育の授業が少ない中で,理数科向けの数学の授業では,同値関係?とεδ論法?とイデアル?とアフィン幾何?という言葉だけが,まったく分からなかった講義の中の微かな残像で残っています(記憶違いかもしれません)。
コンピュータについてはニキシー管が並んだ,カシオ計算機のプログラミング電卓があって,4メモリ26ステップ?のプログラムが組めるというものだったと思います。こちらの方はとても興味をもって取り組むことができました。最後の課題として「整数の階乗を求める」というのがありました。がんばって考えてできた!と思ったのですが,土田君のプログラムのステップ数が最短だったということで,負けて残念だったという記憶が強く残っています。
また,これとは別に,アナログコンピュータで微分方程式を解いてグラフを出力するという課題にも取り組みました。一人で残って作業しているときに,配線を間違えて,警告ブザーが鳴り響いて肝を冷やしたことを憶えています。単振動,減衰振動,強制振動のグラフを出力して,かなり丁寧なレポートを提出しました。
その後,大阪大学理学部の物理学科に進んで,原子核理論を専攻し,大型計算機でFORTRANを走らせ,当時のベクトル型スーパーコンピュータの初期モデルと格闘しました。就職先の大阪教育大学では,情報教育の立ち上げに係わることになります。Macintosh40台でMathematicaの授業をやっていると,高校時代の情報教育の黎明期からたいへん遠くまで来たなと感慨深いものがありました。
P. S. 15年前に大阪教育大学の附属高校でお話しした際の資料(自分史のようなもの)を別添します。
本事業は,「思考力等」や「主体性等」を評価する大学入学者選抜改革を進める上での具体的な課題・問題点を整理するとともに,多面的・総合的な評価を行うための実践的で具体的な評価手法を構築し,その成果を全国の大学に普及することにより,各大学の入学者選抜の改革を推進することを目的としている。人文社会分野(国語科),人文社会分野(地理歴史科・公民科),理数分野,情報分野,主体性等分野の5事業が選定され,それぞれの分野で代表大学の元に,複数の国立・私立大学等が参画した。
学力の3要素の「主体性等」をより適切に評価するため,教育委員会,高等学校等と連携し,調査書・提出書類や面接等を実践的に活用する方法,高校段階でのeポートフォリオとインターネットによる出願のシステムの構築, 「主体性等」の評価尺度・基準の開発等を行う。
計算論的思考は,コンピューターが効果的に実行できるような方法で問題を定式化し,その解決策を表現することに関与する思考プロセスとして定義できる。それは,問題を解決し,システムを設計し,人間の行動を理解する方法であり,コンピューターサイエンスの基本概念に基づいている。今日の世界で繁栄するには,計算論的思考が,人々がものを考え,世界を理解する方法の基本的な部分でなければならない。ジャネット・ウイングは2006年のエッセイで計算論的思考を次のように表現している。
計算論的思考は,児童生徒にとって不可欠であり,K-12カリキュラムの一部である必要があるが,最初にそのルーツとコンテンツ開発の基礎となりうる教育学的モデルを検討する必要がある。
計算論的思考の本質は,心の拡張としてのコンピューターと対話しながら創造し発見できることだ。このような概念は,パパート著書マインドストームで次のように想定されていた。
パパートは,計算の2つの側面に注目した。1つは計算を使用して新しい知識を創造する方法,もう1つはコンピューターを使用して思考を強化し,知識へのアクセスパターンを変更する方法だ。最近では,ウィングが,計算論的思考に修正されたアプローチと新しい注意をもたらした。
ウィングは,計算思考を,読み,書き,および算術と並ぶ,我々みんなの分析能力の基本的なスキルと見なしている。ウィングの論文は,すべての階層のコミュニティ,特にK-12で歓迎された。K-12コミュニティは反応が早く,ティーンエイジャー向けのアプリケーションの開発を開始し,進行中である。パパートの基本的なアイデアにアクセスしながら,計算論的思考を浸透させる手段としての問題解決に進む。
・計算論的思考は計算プロセスの能力と限界の上に成立しているもので,計算の主体が人間であるか機械であるかは問わない。
・計算論的思考は,コンピュータ科学者だけではなく,すべての人にとって基本的な技術である。
・計算論的思考は問題解決,システムのデザイン,そして基本的なコンピュータ科学の概念に基づく人間の理解などを必要とする。
・計算論的思考とは再帰的に考えることであり,並列処理であり,命令をデータとし,データを命令とすることである。
・計算論的思考とは巨大で複雑なタスクに挑戦した り,巨大で複雑なシステムをデザインしたりすると きに,抽象化と分割統治を用いることである。
・計算論的思考とは予防,防御,そして最悪のシナリオからの復帰という観点を持ち,そのために冗長 性,故障封じ込め,誤り訂正などを用いることである。
・計算論的思考はヒューリスティックな推論により解を発見することである。
・計算論的思考は超大量のデータを使って計算を高速化することである。
パパートは,コンピューテーショナル・シンキング(計算思考)とデジタル教育学を,ピアジェが始めた教育の現代的アプローチに結び付けた。
ピアジェは、構成主義として知られる学習理論の先駆者としてよく知られている発達心理学者である。簡単にいうと,彼は,学習者の経験と既存の知識の相互作用が,学習者の心に新しい知識を構築するとした。
パパートは,構成主義の理論を発展させ,学習者が「意味のある産物を構築する」ことに取り組んでいるときに学習が強化されるという概念を追加した。
我々は,パパートの問題解決法に基づいて計算思考を検討する。つまり,計算思考は,批判的思考と計算能力を組み合わせて,現実の問題に対する革新的なソリューションの基盤とするものだ。
計算思考には,次の4段階の問題解決過程が含まれる。
・分解:問題を分析し,より小さい部分に分割する。
・パターン認識:データのパターン,傾向,規則性を観察する。
・抽象化:認知されたパターンを生成する基本原則を特定する。
・アルゴリズム設計:問題解決のための段階的な手順を開発する。
実験的な問題解決の「遊び場」をつくって,これに各段階を接続する。
このモデルでは,遊び場は簡単にアクセスできる場所であり,学習者はフロー,パターン,対称性,パリティ,不変量,再帰などを探しながら,単純または類似のケースでモデリングやバックトラックすることにより,数値的,幾何学的および手続き的に実験できる。遊び場は,強制的な学びでなく認知的な学習を促進する環境を与える。
たくさん出てきていますプログラミング的思考というものについて,議論の中で出てきたのが,定義が分からないものですから,簡単に教えていただければということと,海外ではComputational Thinkingというのがかなりキーワード的に使われているんですが,それと何か関連した概念なのか,それとも,全く別に,今回の議論から出てきたものなのかということで,御確認お願いいたします。文部科学省の大杉教育課程企画室長が堀田主査と相談した結果として,例の定義をつくったようで,「1回目,2回目の議論の中で,複数の先生方から,Computational Thinkingの重要性を御発言いただいたことを踏まえて,それをプログラミング的思考という形で,しかも,小学校教育ということを踏まえて,少し表現を工夫しながら,御相談しながら置かせていただいているものでございます」と答弁し,堀田主査も「よろしいですか」でとばしている。それ,あかんやろ。
あとは,Computational Thinkingというのは,前回の私の発表の中でも用いさせていただいた言葉なんですけれども,参考情報としては、よく日本語では、コンピュータ的思考というような言い方をされます。でも、事務局の皆さんがこの言葉を使わなかったのは、「コンピュータになれと言ってるの?」というような誤解を生むのかなという懸念があるのも容易に想像できます。一方,プログラミング的思考という言葉も、耳当たりはいいんですけれども,内容がComputational Thinkingとイコールなのかというとそうでもなく,Computational Thinkingは,アメリカでは比較的頻繁に用いられている言葉ですので,例えば,Computational Thinkingの中では,データの収集・分析・表現というのはものすごく言われるんですけれども,そういうところはこの取りまとめの中では余り触れられていません。という観点から言うと,プログラミング的思考というのは、Computational Thinkingと比べて,例えば、データに関しては触れていないんですよということなのか,ここは言葉の定義をしっかりとする必要があるなというのは,私も後から見て感じました。やはり,違和感ありありである。 堀田主査はこれも華麗にスルーして議論を収束させた。
子供たちに,コンピュータに意図した処理を行うように指示することができるということを体験させながら,将来どのような職業に就くとしても,時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育成するものプログラミング的思考とは
自分が意図する一連の活動を実現するために,どのような動きの組合せが必要であり,一つ一つの動きに対応した記号を,どのように組み合わせたらいいのか,記号の組合せをどのように改善していけば,より意図した活動に近づくのか,といったことを論理的に考えていく力この言葉が,登場したのは平成28年(2016年)に開催された,小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議である。
プログラミング教育の本質が何であるかというと,御存じのとおり,コーディングというよりは,プログラミング的思考,先ほどもありましたが,コンピューテーショナル・シンキングと言われているところがプログラミング教育の本質ではないかと考えておりまして,この部分を強めるのが,プログラミング教育のあるべき姿だと感じているところです。さらに,
少しまとめますと,いわゆるコンピューテーショナル・シンキング,プログラミング的思考というのは,日本の算数では,ある意味,既に内包されていまして,これ自体がプログラミング科目と言ってもいいんじゃないかというのが我々の結論です。なお,この場で最初に,コンピューテーショナル・シンキングという言葉を持ち出したのは, その前に発言したマイクロソフト業務執行役員シニアディレクタ ーの中川哲さんだ。
コンピューターをよく理解している方がコンピューター屋とお話をして新しいインダストリーを作っていくということも,十分有効なことではないかなと思います。これをコンピューテーショナル・シンキングという考え方で分類されていて,アメリカの方ではよくお話をされていらっしゃいます。こんな風にして,コンピューテーショナル・シンキング=プログラミング的思考がプログラミング教育の柱になる考え方として取り入れられていくことになる。 最後のほうにだめおしで,帝京大学教育学部で数学教育の清水静海さんが,次のようにまとめた。
論理的思考力や創造性,問題解決能力等の育成という大変広い視点からの整理と,それからコーディング,プログラム言語の方に寄り添った二つを例示されておりますけれども・・・プログラミング思考とかコンピューテーショナル・シンキング,これをこの二つの間に入れるべきではないかと。コンピューテーショナル・シンキングが17回,プログラミング(的)思考 が8回登場した。