20190119_Sat サーバー整理とプログラミング教育

センター試験担当ではなく休日。

さすがに職場に入構することは出来ないので文献資料を持ち帰って自宅で過ごす。研究会発表の原稿を書きたいのに,頭の中で熟成が追いついておらず,なかなか文字にならない。現実逃避が続く。

インターネット・サーバーを何らかの形で管理している研究室は多い。

このブログも職場外のレンタルサーバーを借りてサイトを構築し,ドメイン名を確保して公開・情報発信をしている。いろいろ実験もしたいので,複数のサーバーやドメイン名を確保していたりする。

当然のことながら経費はかかる。そして,経費節約のため見直しは大事。

稼働しているものを確認して,サーバー整理出来ないか検討を始めた。

ブログのWordPress,WikiのMediaWiki,メーリングリストのMailman,SNSのMastodonなど,それに付随するものも含めて,あれこれサービスを設定してきた。これを機会にアップデート作業もしておこう。

アマゾンWebサービス(AWS)に構築したサーバーを最小モデルで動かし続けているが,これはさすがにコストがかかる代物なので,愛おしいコンテンツたちを退避した上で他に統合することにする。

小学校段階のプログラミング教育に関して,さまざまな捉え方がある。

もっとも「学習指導要領が示した情報活用能力育成の一環としての小学校におけるプログラミング教育」という限定的文脈で考える場合は,同じ小学校での取り組みを考えるにしても,学習指導要領改訂の経緯に沿わなければならないところもあって,議論をする際にはどういう前提なのかを明確にする必要がある。

学習指導要領が示す前提を無視するなら,小学生でWordPressを使ったエントリー記事作成やら,ブログ更新アプリを利用した積極活用なんてことをすると,それはもしかしたらサーバーサイドのアプリケーションプログラミングに役立つかも知れないから,長い目で見た場合のプログラミング教育の入口(体験)の一つなんじゃないかと言えないこともない。

Raspberry Piで自分コンピュータを構築するという作業だって,そういう体験の一つになり得るんじゃないの?と言うこともできる。いっそのこと図画工作室にメイカースペースを作れば,フィジカルなプログラミング体験の推進だと叫ぶことだって出来るやも知れない。

学習指導要領が示す前提を踏まえるなら,いくらサーバーアプリを活用しても,自分コンピュータを構築しても,メイカースペースを確保しても,それはねらっているプログラミング教育ではない。

とはいえ,学習指導要領が示す前提を踏まえたプログラミング教育の実像が何であるのか,何にするのがベターなのかは,数少ない例が示されている以外はこれから積み上げていくことになる。その部分に関して言えば,まだ多様な姿があり得る部分だし,学校にかかわる人々の間でどんどん発想していけばよい。

プログラミング的思考については,定義と呼ばれるものが置かれたものの,それをどういう文脈に配置して展開させるのかは曖昧なままである。そういう文脈が何なのかを模索する部分なら知恵を出し合う余地が残されている。いろいろなアプローチが登場しているが,これといったものはまだない。

そんなことを考えながらサーバーのメンテナンスをしていたら,自分でWebサービスを構築してみたい気持ちになってしまった。

スマートフォンアプリは開発したことがあるが,Webアプリケーション開発には本格的に取り組んだことがない。プログラミングというよりはアプリケーションフレームワークをカスタマイズするといった方が近いようにも思うが,さて,どうだろうか。

プログラマブルであることと,カスタマイザブルであることの境界線はすでに曖昧化しているが,そういう技術変化の中では,もはや「プログラミング教育」という言葉で考えること自体が難しくなっているのかも知れない。

20181217_Mon

センスメイキング』(プレジデント社)を手にした。

実はほぼ同じ主張をしている同じ著者の本『なぜデータ主義は失敗するのか?』(早川書房)を少し読んだことがあった。

簡単に書けば,データサイエンスといった自然科学的な手法に圧倒されるばかりでなく,人文社会科学的なセンスメイキングもお忘れなくという主張である。もう少し踏み込んで書けば,センスメイキングの方がより重要だということだ。

実はどちらの本にも,プラグマティズムの創始者として知られるチャールズ・S・パースが整理した「アブダクション abduction」(仮説形成)のことが触れられている。これは推論方法の一種で,よく知られている「帰納法」(induction)と「演繹法」(deduction)に並ぶ第3の方法とされている。

もともとは近代科学の方法を探究していたベーコンによって,単純枚挙による帰納法ではない「真なる帰納法」として模索されていた手法であり,その日本語訳が想起させるように,問題に対する仮説を形成した上でそれを検証するというものだ。単なる帰納法とも演繹法とも違う。

それで宿題を思い出した。

以前,ブログに「プログラミング的思考と論理的思考」を書いた。

そこで「問題解決に際して,帰納的思考を展開するのか,演繹的思考を展開するのか。そういう観点からプログラミング的思考と論理的思考を位置づけて論じること」もできるかも知れないと書いて,そのままにしていたが,ここに「アブダクション」(仮説形成)が登場する展開になるであろうことは容易に想像がつく。

端的に書けば,プログラミング的思考とはアブダクション(仮説形成)による思考のことである。

「プログラミング的思考」なる言葉を持ち出した人々が意図しているのは,プログラミング的思考の育成によってアブダクションにもとづく思考方法や手法が育成されることだといえる。

ところが,そのことを明確に意識して論じたものがほとんどないため,プログラミング的思考を論理的思考として検討する際に,帰納法的に捉えたり,演繹法的に捉えたりする視点が混在してしまい,議論が迷走してしまうのである。

たとえば,プログラミングにおける「順次」「分岐」「反復」という要素について,これらを用いてアルゴリズムを考えることが重要であるといった理解は,プログラミング的思考の演繹的な部分だけを見ているだけに過ぎない。

また,意図する動きを実現する方法に[いくつかの模範解答があると考えて、それらから記号や組み合わせを学ぶといった捉え方も帰納的な部分を試みているに過ぎない。]正解はないのだからどんな命令や記号でもよい,といった多様な方法を許容するという考え方は,逆に単純枚挙な(帰納的)態度が行き過ぎたものにも似たように捉えられる。コンピュータプログラミングには,計算処理コストなどの現実的な制約が存在する。(訂正:当初書いた内容だと、むしろ「真なる帰納法」に」近いものになってしまうことに気づく。アブダクションは発見の方法であり、仮説をどんどん形成することにこそ意味があるのだから。)

ここに第3の方法である「仮説形成」手法がプログラミング的思考を指向する際の基調になり得る余地が見出される。

もともと,教育学でお馴染みのジョン・デューイによる問題解決学習に関する言説を見れば,プラグマティズムの考え方があり,よってアブダクションの考え方も自ずと反映されている。問題解決としてのプログラミング的思考にそれを重ね合わせる考え方もそれほど目新しいものではないだろう。

しかし,いまだ「プログラミング的思考」にまつわる論説や議論において,明確な特性を示しえていない状態が続いているため,プログラミング的思考を「どのように扱うのが妥当であるか」の基準を個々の教員に持たせられないでいる。

ここではっきりと「プログラミング的思考とはアブダクションによる思考である」と措定し,問題解決の文脈で展開されてきた仮説形成と検証の蓄積を土台にしてコンピュータや情報通信技術の課題に取り組んだ方が,同じ悩むとしてももっと明確に悩めるのではないかと思う。

20181205_Wed

研究室の段ボール整理。

スチール書棚を追加し,引越用段ボールに入ったままの文献資料を取り出したものの,まだ段ボールは残っている。中身を確認して廃棄作業に取りかかる。

旧い教育関係の新聞が溜まっているので,興味深いIT/ICT関連記事が掲載されている号を除くために駆け足で紙面を参照する。ちょうど10年くらい前のものだが,あまり進展が感じられない内容も多く,日本の教育の不易の安定性に呆れを通り越して感心すらしてしまう。

そんなタイミングに,職場にもかかわらず新聞勧誘がやってきて,新聞紙を捨てようとしていた場で,流通関係の新聞紙を契約することになってしまった。一生懸命に可哀想な新聞社営業マンを演じていたのと,こちらもネットで新聞記事を活用させてもらっている後ろめたさもあり,3ヶ月だけの限定講読のボランティア。けれども,こんな勧誘するなら,これ以降は二度と新聞講読しないことを心に誓う。

学生たちがプログラミング体験活動。

児童研究という時間帯が確保されていて,学生たちの自主活動に充てられている。ある活動グループがプログラミング体験をしたいというので,iPadやSpheroとMESHを貸し出し。

あらためてSphero(ボール型ロボット)の掴みの強さを感じた。まずはリモートコントロールで自由自在に動かす体験で楽しんでから,設定されたゴールにプログラミングしたコードで到達する課題に挑戦する流れ。

使っているのがSphero miniということもあり,フローリングでは移動中のスリップも多くて,同じプログラミングコードでも毎回の動作結果が一致しないことがある。それも込みで楽しく試行錯誤していたが,教育となるとここからどう活動をデザインするかは課題かも知れない。

MESHは傾き/振動センサーとジェンガを組み合わせてゲームを楽しんでいた。こちらはセンサーをどのように組み合わせるのかで多様な活動デザインが可能だと思う。ジェンガ・ゲームに組み合わせるというのは,なかなか楽しいと思った。

今回は,プログラミングに抵抗感をいだく後輩学生たちに興味関心を持ってもらうための活動だったので,難しいことは考えるべきではないが,こうした導入からもう一歩先へ進むための道筋を考えることはとても大事だと思う。

20181102_Fri

卒業研究の指導など。

算数ドリルWebアプリケーションの開発に挑戦しているゼミ生たちが,研究室にやって来て開発作業に取り組んでいる。

といっても数カ月前からHTML5やらWeb開発やらを取り組み始めたばかりだから,とにかく見様見真似状態で試行錯誤が続く。初めてプログラミングに取りかかろうというのだから,エディタソフトの選定やら,開発と実行環境の違いやら,そういうところの理解をするのもなかなかのハードルであった。

HTML5でWebアプリを組むといっても,HTML, CSS, JavaScriptは当然として,JQueryやBootstrapといったものライブラリの利用が混ざったサンプルなんかも出てくるから,それを紐解くだけでも大変である。さて,どこまで実現できるかは彼らの努力次第といったところ。

私もせっかくだからGoogle App Scriptを勉強がてらいじってみることにした。昨今は参考書として『詳解! Google Apps Script完全入門 ~Google Apps & G Suiteの最新プログラミングガイド~』や『Google Apps Script Webアプリ開発 超入門』といったものが発刊されたので取り組むのに良い機会だ。

専門ゼミナールでは,3年生達と卒業研究の話。

そろそろテーマについて考え始める頃となった。どんなことに関心があるのかを出したもらって,絞り出したり絞り込んだりしよう。

20181031_Wed

小学校でプログラミングをどう取り組めばいいか。

プログラミング体験が必修事項となったとはいえ,初めての先生方にとっては何から手を付ければいいのか分からないのが実際です。

この日も出張先の会議で素朴に問われました。何から読めばいいでしょうかと。

文部科学省は新たな学習指導要領に併せて「小学校プログラミング教育の手引」(2018年11月6日に第二版)を公表し,プログラミング体験を導入した経緯や考え方等について解説しています。その内容をパンフレット化した「「小学校プログラミング教育必修化に向けて」パンフレット」が未来の学びコンソーシアムによって製作されています。またICT CONNECT21からは「小学校プログラミング教育導入支援ハンドブック2018」というパンフレットも出されています。

公益財団法人・中央教育研究所が「小学校プログラミング教育ガイド」というパンフレットを作成しており,裏面にあたる「プログラミング教育 実践事例+教材紹介」で様々な事例を手軽に一望できるようにしています。

巷には『間違えないプログラミング教育』(小学館)という先生たちの心理に付け込んだタイトルではありますが情報満載なガイドブックも登場していますし,『先生のための小学校プログラミング教育がよくわかる本』(翔泳社)といったその名もずばりの本も発刊されています。

先生向けではありませんが,保護者向けに『図解 プログラミング教育がよくわかる本』や『プログラミングってなに?親が知りたい45のギモン』といった本や,様々な子育て・家庭教育雑誌の情報発信も世間の空気を煽っているという点で気にしておいてもいいかも知れません。

プログラミングにいろんな学習の要素や意義があることはわかったけれども,現実的問題としてプログラミング体験事項を厳しい時間進行の中にどう取り込むべきか。

その問いに直接答えることは難しいですが,プログラミング体験を誘発させたり発展させやすくする下準備に何をすればよいかは答えられます。それは,先生が普段からプログラミングを道具として活用している姿を見せ続けることです。

たとえば,パソコンの画面上でアニメーションも作成できるプログラミングツールがありますが,それらを利用して教科の提示物を作成してしまうことです。

また,ボタンやセンサーが備わったプログラミングできる小さな電子機器も様々登場していますが,それらを使って,授業中の提示スライドの表示や順送り操作をすることです。

こういうプログラミングツールや電子機器を,そのものを勉強するために用いるのではなく,普段の授業や学習のために使いこなすということを先生たちが楽しんで挑戦している様子を見せることが大事だと思います。

学習指導要領における例示を踏まえて,算数や理科の新・教科書でプログラミング体験がどのように記述がなされるのか。そんなことばかりを気にしていても,プログラミング体験をうまく溶け込ませることはできません。

先生方がプログラミングの成果を実利用・活用しているその姿を見せることが関心を喚起する出発点になりえますし,そこから学習指導要領の例示を越えた様々なプログラミング体験を生み出せるかも知れません。これは,子どもたちが自らプログラミング体験を生み出すことも含まれます。

そうなったら,プログラミング体験という学習事項を時間進行のどこに位置づけるかという問題は,また違った見え方をするのではないでしょうか。