![見出し画像](https://assets.st-note.com/production/uploads/images/28359855/rectangle_large_type_2_ef1dbeab6a1cd90476292ed5f8cae21a.png?width=1200)
プログラミング学習と知恵の創発
うちの子ども(小2)が国立情報学研究所のオンラインイベントに参加しました。プログラミングを学ぶワークショップです。うちの妻が応募していて「当選したから一緒に出てあげて」とキラーパスが飛んできました。
実は、わたしの父がコンピュータのエンジニアでした。彼は「計算機」と呼んでいましたが。その影響もあって、小3くらいだと思いますが、家にパソコンがありました。「そりゃあるでしょ」っていう世代の人もいると思いますが、まだ任天堂のファミコン(あ、これも通じない?)が出たか出ないかくらいの頃です。NECのPC-6001というパソコン(マイコンって言ってた)で、BASICというプログラム言語で遊んでました。すがみつるさんという漫画家が書いた「こんにちはマイコン」という漫画で学んでいた記憶があります。なぜだか一生懸命やってたんです。友達少なそうですよね。
ゲームで学ぶプログラミング Code Monkey
今や簡単にプログラミング体験ができるコンテンツがネット上にあり、しかも、それをオンラインワークショップの形で学べるという時代なんですね。イベントで使っていたのが「Code Monkey(https://codemonkey.jp/)」です。大人がやっても面白い。「プログラミングってこうやるのか」ということが分かってきます。
うちのお兄ちゃんもちゃんと興味を持ってくれました。オンラインワークショップが終わってからも、Code Monkeyで遊んでました。やってたのは「コードの冒険」というものです。
画面内にいるお猿さんに指示を出して、バナナを集めさせるゲームが420面あるのですが(無料版は30面まで)、お猿さんへの指示を簡単なプログラムコードで書くのです。コードを書いて「実行」ボタンを押すと、書いた通りにお猿さんが動いてバナナを集めます。うちの子は一生懸命コードを書いては、実行し、お猿さんの動きに一喜一憂します。「どう動かしたいかを考えてコードを書いたら、途中でもいいから実行するんだよ。そうすればすぐ答え合わせできるでしょ。結果を見てコードを直せば良いんだ」てなことを伝えながら見守ります。これはまさにプロトタイピングだなと思いました。
プログラミング学習で得られるスキル
プログラミングと言うと頭で考えるもの、抽象的な思考、パターンを見出す論理思考、関数の知識といったイメージがあるかと思います。理数系でとても左脳的、というような。ところがCode Monkeyをやってみると感覚的なセンスが磨かれると感じます。わたしが幼いころやってたBASICは、手順・命令をプログラムで書くものでしたが、Code Monkeyはいわゆるオブジェクト指向。モノの作成と操作としてプログラムを構成します。モノを組み立てるイメージです。手を使って考えて、すぐに結果が目に見えるので「ここをシュッとやってバーン」みたいな長嶋茂雄さん的な直観センスで、抽象化思考が進められるというシロモノなのです。
Code Monkeyのwebサイト上のガイドによると以下のスキルが習得できるとあります。
- 変数、ループ、配列、インデックスや条件分岐、関数、イベントハンドラといった普遍的なコーディングの概念
- CoffeeScript や Python といった実際に使われているテキストベースのプログラミング言語
- 問題解決能力、分析的思考
- チームワーク
- 創造性
- 問題の一般化や抽象化
- 各問題の相違を探す
- パターンを見つけること
- オブジェクト指向の考え方
- 一人で課題に取り組むこと
お!と思ったのは、チームワークや創造性、一人で課題に取組むことなど、いわゆる非認知スキルも範囲に入っていることでした。これを眺めているとこれからの時代にプログラミング学習が注目されている理由が分かるような気がします。単純にAIエンジニアを増やしたいということではないのです。
学び合う場をいかにデザインするか
ただ、やっぱり気になってしまうのが教え方です。
教える側の価値観が、正解至上主義みたいなものだとうまく行かないでしょうね。下手をすると、子どもたちがどこかでサンプルコードを見つけてきて、コピペしておしまい、なんてことが起きてしまいそうです。そういえば、BASICという言語の場合、80年代の伝説的な雑誌に『マイコンBASICマガジン』というのがありました。通称ベーマガです。読者が作ったゲームのプログラムコードが載っているんです。インターネットはまだまだ普及していなかった時代、紙媒体でプログラムコードを手に入れていたんですね。それを見ながらパソコンにコードを打ち込んでいくんです。子供には大変。打ち間違いがあると実行しても、エラーメッセージが出て動きません。半ベソ書きながら間違い探しして、実行を繰り返す。「あーやっと動いた~。けど、たいして面白くないぞこのゲーム」なんてなるんです。で、「こういうルールに変えたら面白いのに」となって、プラグラムを改編しはじめるんです。そう考えると、結構、非認知スキル鍛えられてましたね。ちょっと変わった子どもだと思いますけど。友達少なそうですよね(2回目)。
でも、チームワークなんて鍛えられるの? と思った方もいると思います。これは仕掛け次第だろうなと思います。複数人であーでもない、こーでもないと話しながらコードを書けば良いのです。これがプロトタイピングの良いところです。手を動かして物を操作するので、互いの考えが見える化されているのです。そして、もめたら動かしてみればよいのですね。そして、結果オーライではなくて、「何でうまく行ったんだろうね」と大人が介入する、そんなカリキュラムデザインになるんだと思います。
そうすると先生いないとダメなのかとなるんですが、そんなことはないと思います。オンライン上のコミュニティが今はありますよね。よく知っている人がちょっと自慢気に解説してたり、複数人が試行錯誤する様子を読めたり、ちょっとしたQ&Aに自分も参加することで学んでいけるのです。思えば、ベーマガも「読者からの投稿媒体である」というところがミソだったと思うのです。つまり、コミュニティなのですね。
普遍的な「知恵を創発する原理原則」
このように書きながら振返ってみると、テクノロジーが進化しても変わらないものがあるのだなと改めて思います。
・身体を持つわたし達は、言語だけでなく、手を使って考え、他者との違いを感じながら、自らの知恵を生んでいく。
・時に誰かの違いに葛藤することを乗り越えながら、互いのための知恵を発見していく。
・そうしたことに貢献できている主体的な参加の感覚が動機づけになっていく。
こうした原理原則を活用すれば、職場は創造的で働きがいのある場所になると思います。
よかったら、こちらも参照ください
この記事が気に入ったらサポートをしてみませんか?