プログラミング教育について4

さて、前回はすみませんでした。深夜テンション怖いですね(現在02:00)。

前回の補足ですが、アンプラグドな授業ってのが話題によく上ります。それはそれで全然ありです。むしろ大好きです。でもプラグも使ってください。謎の縛りプレイ(PC使用不可)とかいりません。限られた時間で可能な限り効果的・効率的に指導するのが理想だと思ってます。特に情報科ですから。我々・・・。

さて、いよいよプログラミング的思考ですね。次の資料を見てみましょう。

//なお、小学校段階における話で進めます。そのうち中学校と高校の範囲もやりたいんですが、またいずれ。

小学校段階におけるプログラミング教育の在り方について日本の役所って本当に・・・非効率的なのが分かってるのに「慣習」に負ける。そりゃあ、この合理的が至上主義となりつつある国際社会じゃ生き残れないよね。

 

・プログラミング教育とは

子供たちに、コンピュータに意図した処理を行うように指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育成するもの。コーディングを覚えることが目的ではない

さて、問題のプログラミング教育です。ここら辺について私も理解を深め、他の先生方にお伝えしなければならないとは思っているんですが、なかなか能力が足りてない。(時間が無い部活動至上主義を本当に何とかしてくれ。)

要は人間がすべき事って何だ?が話の中心だと思うんですよね。仕事量の削減というか。自動化できる作業は自動化して、その時間を使ってより生産性の高い・もしくは娯楽性の高い、などの体験をして、有限な時間を効率的に使っていこうよ。という話だと思っています。

例えば、日本に住んでる誰かが、ブラジルの写真を欲していたとする。ブラジルってこんな国だよ!って説明したいから。

それ、それわざわざ地球半周して撮りに行くの・・・?行かないよね・・・?

「インターネットで落とせばいいじゃん!」 ← 違います

要は、物理的な移動時間がもったいない、費用対効果で採算が取れないので。代わりに「ブラジルにいる人」「写真を撮ってもらい」「通信ネットワークとコンピュータの活用」によって「瞬時(!)に届けてもらう」わけです。現代人であれば、すごく簡単な話だと思います。

ちなみに、「インターネットで落とす!」とお答えになった場合。そいつの構造(ブラジルから~瞬時に届けて~)をきちんと把握する能力が、「プログラミング教育」の醍醐味なんだと思って頂きたい。感覚的な理解を、構造的にきちんと把握させるための教育。それがプログラミング教育なのかなって。そりゃあコーディングなんてどうでもいいわ。C言語だろうとJAVAだろうとVBだろうと以下略。構造化できればそれでいい。//構造化とオブジェクト化の違いは高等学校もしくは大学の範囲とさせて頂きたい。小学校段階でそこまで突っ込むのは鬼すぎる

・プログラミング的思考とは

自分が意図する一連の活動を実現するために、どのような動きの組合
せが必要であり、一つ一つの動きに対応した記号を、どのように組み合
わせたらいいのか、記号の組合せをどのように改善していけば、より意
図した活動に近づくのか、といったことを論理的に考えていく

さて、様々な場所で様々な解釈をさせるプログラミング的思考ですが、おおよその内容を上で述べてしまいました。要は、「ブラジル写真を得る手段」を段階分けして考えるための力だと思っています。これ、「コンピュータに命令を出す」作業と相性がいいんですよね。

たとえ話。

今あなたは家の椅子に座って仕事をしています。
3メートル先にある資料は欲しい。そこで家族に言うんです。
「そこの資料取って」

高度な理解力をもつ人間は、その一言で見事欲しい資料をあなたの手元に持ってきてくれるでしょう。でも、コンピュータ相手だとそうはいかない。

仮に音声で命令できるロボットがいて、そいつに言ってみます。
「そこの資料取って」

ロボットは言います。
「そこ とはどこですか?」
「資料 とは本ですか?」
「どんな内容の本ですか?」
仮に資料が分かっても、取得した時点でこう言います。
「資料を取得しました」 //持ってきてはくれない

機械相手には厳密に、正確に命令しないといけない。
「3メートル先にある青い本を、私の手元においてほしい。」
「タイトルは「プログラミング教育について」だ」

AIやセンサーを搭載していなければこのようになる。
「座標x,y,zにある物体を掴んでくれ」
「そのまま座標をy軸方向に持ち上げて固定」
「次に3メートル移動」
「座標x,y,zに達したら固定を解除し起動地点に戻ってくれ」

 

とまあ、随分と面倒くさいですが、これが段階分けとか構造理解に役立つ力なんだと思っています。よく、プログラミング的思考はコンピュテーショナル・シンキングと混同されるというか同一視されると思うんですけど、私の中ではちょっと違う解釈なんですよね。

コンピュテーショナル・シンキングってのは、計算機用の思考、計算機の特性を理解していかに効率よく使うかって話。

プログラミング的思考ってのは、プログラマ的思考というか、物事の構造を理解して活用する力。

まあどっちも活用してるって面では同じなんですが、なんていえばいいんでしょう。私の感覚ではコンピュテーショナル・シンキングまで行くとそれは高等学校もしくは大学レベルの話になってくると思うんですよね。アルゴリズムや処理能力の領域が強いイメージです。それよりは、論理的に考える力に重きを置くのがプログラミング的思考なのかな、なんて。別に計算機じゃなくてもいいよってことですかね。

//プログラミング的思考って名前が良くないですよね。いや的を得ている名だとは思いますが。

 

さて、やはり長くなりました。(現在0248)

Next:プログラミング教育を通じて目指す育成すべき資質・能力
参考資料:小学校プログラミング教育に関する概要資料 (PDF:508KB)
http://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1375607.htm

プログラミング教育について3

いい感じで混沌としてきました。
ぶっちゃけ誰かに伝えるってよりも、自分のアウトプットとして書いてます。
いつか見るかもしれない人に対して謝っておこう。ごめんなさい。

さて、いよいよ小学校編です。私は高等学校の教員なんですけども、この「義務教育との考え方の違い」みたいなやつに結構悩まされています。世界が全然違うんですよね。いつかどこかで、小学校の先生でかつ、情報教育について関心のある人と出会えれば色々話をしてみたいんですが、なかなかそんな機会もなくて。

 

小学校段階におけるプログラミング教育の在り方について

前述の資料に

各教科等の特質に応じて、児童がコンピュータで文字を入力するなどの学習の基盤として必要となる情報手段の基本的な操作を習得するための学習活動や、プログラミングを体験しながらコンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動を計画的に実施することを明記(小学校学習指導要領総則)

なんてことが書いてあります。

・まずはキーボード使えってことかと。

「情報学」の歴史ってまだまだ浅いっていうか、生まれたばかりなんですよね。著名な先生方が必死に(?)定義している最中です。で、その有識者会議みたいな所に顔をだしては色々話をしてくるんですが、よく言われるのが「高校でキーボードを習得させてくれ」なんですね。お偉い所に行けば行くほど言われる気がします。ちなみに高校教員である私からすると、「高校に入る前にキーボードくらい慣れてくれ」です。

要はですね、情報学だとか、プログラミングだとかいう前にですね、入力デバイスの一つや二つ使えないと話にならないんですよ。数学とか英語とか、理科でも社会でも、なんでもいいんですけど。鉛筆・シャーペン使えないのに、どうやって勉強するの?という感覚です。PCに限らず、人類は今後間違いなく計算機を頼ります。ありとあらゆる場面で頼ります。それが通信技術だったりAIだったりロボティクスだったりとまあいろいろあるんでしょうが。絶対使います。現時点で恩恵にあやかっていない人類なんて、どこぞの民族ですらまずいません。携帯持ってます。

だってのに、日本にはいまだ「キーボードなんて覚えても仕方ない」なんていう人がいる。

・音声入力になるだろう
・フリック入力になるだろう

いや別にその流れは否定しませんけど。この記事だってスマホとGoogleに頼れば音声のみで書けますけど。じゃあ音声デバイスの環境が整ってるの?タッチパネル環境が整ってるの? あなたの学校にすらその環境は無いでしょうよ、と。
別に鉛筆だろうかシャーペンだろうが、万年筆だろうが、なんでもいいんですよ。入力デバイスさえ使えれば。最低限、読み・書き・計算が出来るように、読み・書き・そろばん・キーボードという感じで、覚えさせてきてほしいんですよ。

長くなってしまいましたが、キーボードにおいては

小学校では「触っておいてね」
中学校では「普通に使えるようにしてね」

になってくるんじゃないですかね。ちなみにそれでも配列が~とか音声が~とかいう人もいるんでしょうが、本当に何でもいいんですって。コンピュータに指示が出せれば何でもいいです。キーボードが汎用性に優れてるだけですから。別にQWERTY配列じゃなくてDvorak配列だろうがAZERTY配列 だろうが親指シフトだろうが。なんでもいい。鉛筆のメーカーなんて気にしないし、芯の硬さも気にしない。求めるのは「書ける事」

熱が入ってしまいました。

・プログラミングを体験しながらコンピュータに意図した処理を行わせるために必要な論理的思考力

とありますが、熱が入りすぎた(長くなりすぎた)ので次回に回します。

 

Next:プログラミング的思考
参考資料:小学校プログラミング教育に関する概要資料 (PDF:508KB)
http://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1375607.htm

プログラミング教育について2

このサイトってとりあえずWordpressでも使っておくかみたいな時代に取り残されつつある考えで作ったんですけど、改行バランスとか気を付けないとすごく見辛いですね。つまりデザインが ヒ ド イ 。 これなら2000~2008年?頃に流行した日記サイトのほうが100倍マシな気も。

小難しいことはさておいて、まずは下の画像をご覧ください。文科省が発表している新学習指導要領(H29年3月告示)の資料です。相変わらず日本の役所ってのは・・・

情報教育・ICT活用関連部分のポイント

仕方ないんですけど、言い回しとか。もうちょっとこうなんか、何とかしてほしい。まあ細切れにして考えていきたいと思います。

・情報活用能力を、言語能力と同様に「学習の基盤となる資質・能力」と
位置づけ

総則において、児童生徒の発達の段階を考慮し、言語能力、情報活用能力(情報モラルを含む。)等の学習の
基盤となる資質・能力を育成するため、各教科等の特性を生かし、教科等横断的な視点から教育課程の編成を
図るものとすることを明記。

まずはここから。いやこれ、判ってましたけどすごく面倒くさいですね・・・深夜だから出来る作業だ・・・(現在01:25)

【学習の基盤となる資質・能力】 ってのは「児童生徒の発達の段階を考慮し、言語能力、情報活用能力(情報モラルを含む。)等」のとこですね。書いてあるし。じゃあそれは何だってことですが。

教員になってよく、「言語能力」って言葉を聞くようになりました。これ凄いアバウトでもうちょっと明確に定義してくれよって良く思うんですが。私の理解ですと下記のとおりです。

・哲学などでよく言われますが、大抵の思考は言語を通じてなされます
・新たな情報を読み取り、既存の知識と結びつけるにも言語を利用します
・他者との通信も基本的には言語を介して行われます。

要は思考のレパートリーを増やしていこうみたいな感じでとらえてます。言語能力の育成。(違っていたらごめんなさい。むしろ指摘して下さい本当。誰か私を教育してくれ!)

で、そのあとの【情報活用能力】ですが、得た情報をいかに効率よく使っていくか。という意味合いが強いのかなと思っています。「活用」というのがそのままオブジェクト指向のメソッドに近いものがあるのかなと。別にKJ法のジャンル分けとかでもいいです。整理術みたいな。なんとなく感覚であーすればこうだよね。みたいな所を能力としてしっかり把握していこうよ、みたいな。日本語ってなんでこんなにあいまいなんでしょうね・・・

 

ICT環境整備については以下略で。

Next:小学校段階におけるプログラミング教育の在り方
参考資料:小学校プログラミング教育に関する概要資料 (PDF:508KB)
http://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1375607.htm

プログラミング教育について1

プログラミング教育というワードについて今後様々な場面で説明出来るようになっておかねばということで、自分用にまとめていきます。

なお、この記事を投稿する前段階において、私の理解だと

・プログラミング教育とは(物事を)構造的に理解する力を鍛えることだと思っています。

ありとあらゆる事象において、~~はこんな仕組みで動作している、という事を想像ないし把握する力。把握出来れば改変も出来るわけで。また、それらを組み合わせて応用することも出来るわけで。ここら辺はオブジェクト指向や関数と相性がいいよねって感覚です。

・コーディングを通じてロジックを鍛える。
・メソッド(method)を通じで活用する力をつける。
・ソートを通じてオーダー(作業量)の考え方を身に着け、短期・長期的な運用時の効率を考える。
・様々なコードに触れ、柔軟な(多種多様な)発想に慣れる。

とか。

まあこんな感じで探せば色々出ては来るんですが、ポイントは「発達段階」と「教育課程」にあるかなとも思っています。情報科に所属している自分にとっては、上記のスキルが私生活で私を助けてくれているかなんて、考えるまでもないんですが。

それをどう伝えるかっていうと難しいんですよね・・・だって感覚ですし。こちとら物心ついたころからこの界隈にドップリ浸かってましたし。
子どもたちの発達段階に応じて、どのように伝えていくのが良いのか。
また学習指導要領における位置づけと照らし合わせて、他の先生方にどのように理解してもらえばいいのか。

そこら辺をこれからしっかり考えていかないとなあ(遅い)。なんて思いながら。

Next:新学習指導要領をベースにいろいろ考えていきます!
参考資料:小学校プログラミング教育に関する概要資料 (PDF:508KB)
http://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1375607.htm