コンピュータは不器用である

プログラミングは、コンピュータの性質を知るために一番よい方法だと言える。

でも、その性質は決して人間にとって、楽で助かる側面だけではないはずだ。

プログラミングは、どこかの誰かが決めた「型」で、その型の通りに命令を与えないときちんと動かないか、冷酷にエラーを返してくる。

デバックは、その不器用で(愛おしい)性質を知るために必要なエラーを直す手続き。

コンピュータは「またエラーかよ!」なんて反応はしない。

だから、子どもたちは、何度でも何十回でも、トライアンドエラーをする。その中で、コンピュータとの付き合い方を体得していくわけだ。

楽で便利で困らないような、簡単な開発環境はいくらでもある。

でも、楽で便利で困らない開発環境では、コンピュータの性質に触ることは難しいし、その経験の先でコンピュータの不器用さと向き合った時、子ども達は逃げ出さず、真摯に向き合うことができるだろうか。

不器用さを十分知った上で、楽な環境に行ったって、問題はない。
でも、楽な環境から、その先に進めるか?


例えば、レトルトカレーやカップ麺だけで育った子がいたならば、進んで料理をするようになるだろうか。

小学校のプログラミング教育では「子どもができないから」という論で「楽」な活動が溢れている。

でも、それは「子どもができないから」ではなく、「大人ができないから」ではなかろうか。

プログラミング教育(教育とつけたのが失敗なんだな)が必修化されるが、「教科の内容理解のためにプログラミングを使う」となった段階で、不器用な性質を扱う事は排除されがち。


それで、本当に大丈夫なんだろうかと思う。
デバックの面倒臭さを通る事はかなり大事な事。

今までの教員研修会や講師として話す場でも伝えてきたが、これかもこの辺りは外さず、先生方に伝えていきたい。

0 コメント

プログラミングができるようになる事は楽器ができるようになる事と似ている

プログラミングができるようになる事は、楽器ができるようになる事と似ている。

プログラミングも楽器も、それぞれ様々な種類がある。
プログラミングだったらC言語・BASIC・Java・SonicPiやProcessing・Logo・ScratchやVISCUITなどなど。
楽器だったらリコーダー・鍵盤ハーモニカ・バイオリン・トランペット・ドラム・テルミンなどなど。
どれも、狙いも、機能や役割が違う。
そして、やろうとする人の好みがある。

好きで上達しちゃうものもあるし、やっても上達できないものもある。
上達できる理由は、適性だったり、タイミングだったり、きっかけをつくった先生の影響もあるかもしれない。
上達できない理由は、モチベーションの低さだったり、そのものの難しさだったり、困った時のサポート体制が無かったり。
 
さて、
プログラミング教育で、自分は、コンピュータ科学(イングランドで言う教科コンピューティング)のアプローチが必要だという立場だ。
 
楽器を習熟する時、楽器ができるようになる事と並行に、音は空気の振動だという事や、周波数や、音階やら、原理的な事、合奏やオーケストラの事などを、子どもたちの発達段階に応じて学んでいる。

プログラミングもできるようになる事と並行に、身の回りで使われているという事や、コンピュータは電気で動いているとか、0と1の組み合わせで処理をしているという事や、CPUの仕組みやら、小学生でわかる粗さで学ぶことが大事になる。
サンドイッチにしないとツールが使えるようになるだけ。プログラミング教育の価値が担保できない。
 
指導要領で言えば、プログラミングは技能。コンピュータ科学は知識。新指導要領では「知識」及び「技能」と幾度も出てくる。

知識と技能、両方を使い、試行錯誤して問題解決をし、新たな問いをつくる事で「深い学び」「豊かな人間性」に結びつけるという指導要領の考え方は、プログラミング教育でも十分に適用できるはずだし、現状の実践例に足りないコンピュータ科学の「知識」をもっと重んじるべきでないだろうか。

参考:文部科学省 新しい学習指導要領が目指す姿

 

わからない学校の先生でも大丈夫。という文句が出たりするが、新しい内容であるプログラミング教育を教える教師は、先に述べた小学生でもわかる「粗さ」のコンピュータ科学の「知識」は学んでおく必要がある。「技能」と「知識」を学んだ教師は、プログラミング教育をするときの言葉の重みが変わってくるはずだ。

(楽器が広くとても浅くできる自分が、楽器店に立ち寄って考えていた事を残してみた。)
1 コメント

小学校 新指導要領解説でプログラミングについて書かれている事をシンプルにまとめた。

この夏は、論文発表やら、、そして、明後日の区の教員研修をはじめ、レクチャー的な場面で話す機会を頂いていて、プログラミング教育について学習指導要領解説を何度も何度も何度も読み返しています。(スライドスライド・・)
解説編のP83からP87までの解釈で、様々な人が、様々な解釈をしているんだが、自分はこう読みます。参考になれば。というか、ホントは自身の忘備録としてノートに残します。
ーーー
文部科学省は
●情報活用能力にプログラミング(論理的思考力)は位置づけられていますよ。
●コンピュータや情報技術は児童に便利だと実感させ、児童が活用できるようにしましょう。
●児童と各教科の特性を踏まえて、教科の知識技能等が身につくためにプログラミングを工夫して取り入れましょう。
●プログラミングスキルが目標にならないように注意し、教科の目標の達成を通して、プログラミングスキルも身に付けさせましょう。
ーーー
前置きが長い文の主述をシンプルに読んでいくと、こうとしか(私は)読めないです。
特にプログラミングのスキルについては、実はそれが主だったはず(議論のまとめまでの流れや、英国や豪州の事例が参考になっている事実とコンピューティングの文脈では)だが、各教科からの批判があったため、文科省は穏やかな表現にせざるを得なかったと考えられる。
そして、移行措置でプログラミングの内容が2018年からのマストではないと出されました(7月7日)。これは、過去にプログラミングについて小学校の授業で実践された例が皆無かつ、分析もきちんとされていない内容だという性質と、実践例が少ない内容を教科書にねじこむのは厳しいだろう(昨年から今年度は実践例を出す事がより求められている)という点から、2018年からのマストには入れなかった?と私は考えています。これは、現場の状況や制度的な部分を考えると、スムーズな離陸のためには賢明な判断だったのではないでしょうか。
現状の整理としてはこんなところです。みなさんそれぞれで、読み方が違うかもしれませんが、是非、批判も含めてご意見をください。
↓次期 学習指導要領 解説編
0 コメント

新指導要領解説からプログラミング教育を読む

先月、文部科学省から新指導要領の解説が公開されました。プログラミング教育の扱いについて、それぞれの研究者の皆さんや学校関係者などが様々な解釈をしています。今回は私の考えを書きたいと思います。

  

まず、新指導要領解説からプログラミング教育に関して抜粋し私見を添えます。


1.プログラミング教育は「情報活用能力」の中に位置付けられている

 「情報活用能力」は「言語能力」の次に書かれた「学習の基盤となる資質・能力」の1つとして示された力です。言語能力が1番目に来るのは、コミュニケーションの基本となる記号として言語があるわけで当然と言えます。2番目に示された「情報活用能力」は「各教科の学びを支える」力と書かれています。ここには情報と情報技術という単語が出てきます。プログラミングはこの情報技術に位置付けられていると読むことができます。

 

2. 「プログラミング的思考」という造語

 この言葉は、文部科学省?が作った造語で、プログラミングを学ぶのか?という批判が出たあとに、急に生み出された単語だと私は認識しています。各教科でその思考を育むと書かれているからには、プログラミングやコンピューティングだからこそ育むことができる内容を考えなければいけないという事です。「料理や図工の工作の手順、音楽の楽譜などで、十分に育めるのでは?」という出て来るであろう批判に理論武装をしなければいけません。


3. 全ての教科や活動で導入できる
 指導要領では、算数、理科、総合的な学習の時間で活動例が示されていますが、指導要領解説では、「例示以外の教科や内容でも学習活動として実施可能」と明記されている。教科書会社さんが大変なことになっているということです。

 

4. 民間(総務省・経済産業省)との協働

 社会に開かれた教育課程というコンセプトがあり、文部科学省と総務省と経済産業省との「未来の学びコンソーシアム」も立ち上がりました。学校の先生を助けてくれるプロとどのような協力体制を作っていくのか?は今までの学校教育にはない取り組みなのでコンソーシアムのお手並み拝見です。

 

↓未来の学びコンソーシアム

https://miraino-manabi.jp/

 

 

 

次に、実際に学校教育現場でプログラミング教育をどう扱うか?についての現在の私の考えを書きます。

 

①各教科の観点と、プログラミング教育の観点を分ける

 

 これは、単純な話で、各教科で求められる資質・能力が現在各方面で詰められています。ここにプログラミングの活動を当てはめたとしても、新指導要領の観点が出され日が浅い段階でプログラミングを活用した活動の検証は不可能です。おそらく教科書会社が強引にプログラミングを扱う内容を入れてくると思いますが、各教科が定めた規準とプログラミングの規準を混ぜてしまうのは、授業検討時にも混乱を招き、視点を失うことになると考えています。ですので、各教科の観点とは別にプログラミングの観点を設けるべきです。

 

 

②情報活用能力の情報技能としてのプログラミング教育の観点「知識・技能」と「思考力・判断力・表現力」を設定する。


 「プログラミングで学ぶ」というバズワードも、「プログラミング的思考」と同時期に出てきた単語です。噛み砕けば、思考力・判断力が大事と述べているのですが、そもそも「知識・技能」と「思考力・判断力・表現力」は相互に行き来するなかで、高め合うものだと書かれています。また、「知識・技能」をどう使うか?が「思考力・判断力・表現力」だと最初に述べられている部分も「プログラミングで学ぶ」の論を揺るがしている部分です。(最近はこの言葉もあまり聞かなくはなってきていると感じています。)
 プログラミング教育は、元々はイギリスや北欧の国で先行実施されている「プログラミング」「コンピューティング」などの「プログラミングを学ぶ」教科が元になって産業競争力会議から提言されて導入に至りました。各教科からの反発もあり、その扱いがあいまいになっている状況があるのが実情です。そこで、今回の指導要領解説に沿ってプログラミングの観点を設定してみます。

 

ーーー

 

情報活用能力

 情報技術

 ●プログラミング:各教科の中で学校の環境や児童生徒の実態に応じて効果的に導入すること

(知識・技能)

 コンピュータやプログラミングの基本的な知識、コマンドの入力・実行ができること。

(思考力・判断力・表現力)

 プログラミングが活用されている事を想像できること。プログラミングを使って課題解決や表現ができること。入出力のモデル化。

 

 

これらが相互に行き交う主体的な活動の元で、他教科の内容の理解に活かされたならば「深い学び」となる。

ーーー

→思考力・判断力・表現力の詳細を見れば、計算機的思考や、実験や計測、表現のツールとしてプログラミングが各教科で活用できる可能性が十分にあることがわかると思います。


③カリキュラムの大域を設定し実践し検証する

 

前提

・(知識・技能)が先だと、詰め込み・プログラミングを学ぶのか?という批判に耐える連関を示す。
・(知識・技能)と(思考力・判断力・表現力)の相互関係を示す。


大域の提案

 

A アンプラグドなどを活用して、身の回りの生活を豊かにする一助となっているコンピュータに着目(思考力・判断力)
B コンピュータの基本的な知識(知識)
C コマンドの入力・実行(技能)
D プログラミング(知識・技能)
E 課題解決や表現(思考力・判断力・表現力)
Z 他教科で活用(深い学び)

 

上記項目の相互関係は

A⇄B→C→D=E⇄Z

 

こんな感じでしょうか。特にEとZの関係で「深い学び」を目指します。

何より、授業で確かめること!!に尽きますね。


とりあえず、今回の解説に関する私見はここまでとします。

 

ーーー
慶應大学で行われるPCカンファレンスで今年度のプログラミング教育の研究成果を発表してきます。
本投稿記事の内容について、みなさまからも色々な意見を頂ければと思います。

 

来週中には堀田先生の本も届くので、じっくり読みたいと考えています。

0 コメント

プログラミング教育における使用言語・環境について

中学校では必修化されているプログラミング教育ですが、小学校ではどのようなプログラミング言語・環境を採用すればよいのでしょうか?学習指導要領や過去の実践などを交えて書きます。

これまで

 過去も現在も、プログラミング自体が小学校学習指導要領に明記されたことはありません。ですので、公立小学校においてプログラミングを習得する授業が行われた例は非常に少なく、小学生に対して実施された実験授業はとても少ない状況があります。実施できたのは、学習指導計画に裁量をもたせられる附属小学校や私立小学校などで、私の知る限り一番古い実践は大阪教育大学附属小学校の算数の授業でプログラミング環境BASICが使用された事例です。その後をざっくり言えば、BASICが広まり、LOGOが登場して扱われるようになり、HTMLなどが割り込み、Scratchが隆盛している状況だと言えます。

 様々な言語・環境が扱われるようになるのですが、大事なのは「プログラミング教育が必修化になるかも・・」という政府の計画が出た頃から、「道具(手段)としてのプログラミング」から「内容(目的)としてのプログラミング」へと、プログラミングがプログラミング教育と変容した事だと言えます。


どのプログラミング言語・環境を採用すればよいのか

 この件は、永遠のテーマだと言えますし、慎重に判断すべき点です。例えるならば、プログラミングはコンピュータを動かすための操作盤のようなものです。なので、操作盤を作った人によって、ハンドルやレバーの位置やデザインなど、仕様が違って当然です。トヨタとVWではハンドルやダッシュボードなどのデザインやボタン配置、ブレーキの深さなどが違うわけです。ATとMTの違いもあります。その違いは、言語・環境を作った人の意図が反映されたものです。おそらく「もっと便利に」という熱い思いは共通しているのだと思います。
 全ての言語・環境で共通していることがあります。それは「コンピュータを動かす」という目的があるという事です。コンピュータの仕組みは、CPUの仕組みと言い換えることができます。私は教育学出身で専門ではありませんが、CPUの概念的な仕組みについて文献で読んだのですが「実は非常に単純な仕組み」だという事に驚かされました。ここでは割愛しますが、興味のある方は様々な文献がありますので読んでみてください。(ダニエル・ヒリスの著書はオススメします)
 話がちょっと逸れましたが、どのプログラミング言語・環境がよいか?についてですが、2点がポイントになると思います。


 1 学習の目標を達成するために適した言語・環境を選択する

 2 学習指導者の好み

 

 「なんだ、そんな事か」と思うかもしれませんが、1については、小学生に対する授業を考えると、学習の内容を吟味した上で、言語・環境を選択するべきだと考えます。教科教育ではごく当たり前の流れです。十進位取り記数法を1年生で扱おう→マグネットブロックを採用。のようなものです。
 ですが、ここ最近のプログラミング言語は何がよい?の議論では、まず言語・環境がありきで、それで何を教えるのか?という逆の流れが見受けられるように思います。それぞれの言語・環境は、先にも述べたように得意不得意があり、何か1つの言語・環境に浸かり過ぎるのも危険だと考えています(この件はまた別の記事で書きます)。
 ポイントの2で「好み」と書きましたが、指導する側が扱いやすいという事もとても重要だと思っていますが、もっと様々な言語・環境に指導者が触れて、作ってみることが必要ではないでしょうか。食べず嫌いをせず、色々な言語環境に触れることで、指導者側がプログラミングとは?について迫った上で、「これが美味しい!(良い)」と判断することが大事なのではと思います。何より指導する人が楽しんでプログラミングしている事を子どもたちに見せるのが一番大事です。


0 コメント


名  前 : 佐藤 正範  Masanori Sato

所  属 : 東京学芸大学 附属小学校

研究テーマ: 「小学生に対するプログラミングの学習」「STEM教育」

専門分野 : 初等教育,教育方法,技術教育,情報教育,プログラミング教育,メディア教育

       ハードウェア工学,科学技術コミュニケーション(CoSTEP7期本科修了)

         研究団体 : CIECコンピューター利用教育学会  情報処理学会

業  績 : 

佐藤正範 2017  小学校の教科に位置付けたテキスト入力型プログラミング言語の導入についての考察

 PC Conference2017,論文集,pp.149-150,2017.

 

     佐藤正範 2015  小学生へのプログラミングの学習における「足場かけ」の適用 [スライドはこちら]
      PC Conference2015,論文集,pp.165-166,2015.

 

  Masonri Sato 2014  Preliminary study of teaching a programming language in elementary education

 北海道大学 ソウル大学 台湾師範大学 ジョイントシンポジウム台北ポスター発表,12/2,2014.

 

   佐藤正範 2014 小学生のプログラミングの学習における 言語環境についての一考察 

   PC Conference2014,論文集,pp.168-171,2014.

 

   佐藤正範 2012 ものづくりコミュニケーションの可能性  

 PC Conference2012,論文集,pp.149-150,2012.

 

   竹本寛秋・佐藤正範・功刀基 2012 サイエンスコミュニケーター養成課程におけるデジタルゲーム制作実習の構築 

 PC Conference2012,論文集,pp.267-268,2007.

 

   佐藤正範 2007 私教育におけるロボットと教育の融合 

   PC Conference2007,論文集,2007,pp.215-218 

 

お問合せ : satonori(a)u-gakugei.ac.jp  "括弧aを@に変えてください" もしくはお問合せフォーム


ヘッダーフォト - Kano - http://www.kano.me/