【メタエンジニアの戯言】「写経」と「ティンカリング」
2024.10.11松林弘治の連載コラム先日、仕事絡みで、小学高学年向けの「テキスト」プログラミング体験教室を訪問する機会がありました。及川卓也さんが代表を務めるTably社が提供する中高生向けプログラミング学習環境、「Jasmine Tea」を使ったものです。
今回開催された地域では、小学校で配布されている端末はiPad(=タッチ入力が主)とのことで、物理キーボードはあまり経験がなさそうでした。また、ブロックプログラミング環境のScratchを学校の授業で使ったことはあるものの、テキストプログラミングとなると、子どもたちにとって結構なチャレンジになると想像されました。
体験教室で実施されるカリキュラムの内容や進行の仕方、伝え方など、今回は私は関与していませんでしたので、あくまでスタッフの方がどのように進めていくか、そして子どもたちがどのように反応していくか、それらを注意深く観察すると共に、スタッフと一緒に子どもたちのサポート役を務めることとなりました。
Scratchのようなイベント駆動でのコーディングスタイルでもなく、かといってProcessingのような(Javaをラッピングした)スタイルとも異なる、少し独自のコンセプトで作られた仕様という印象を受けましたが、お子さんをサポートしながら、私も自分のPCで今回の課題であるゲーム制作を楽しみました。
そして子どもたちの反応です。今回は小学校4年生と5年生の10人前後で、キーボードやトラックパッド/マウスの習熟レベルはさまざまでしたが、会場に映し出されたスライドをみながら、一本指でポチポチと根気よく入力していました。
ローマ字は学校で習っているとはいえ、キーボード上の刻印は大文字、スライドのコードは小文字、この両者の対応で苦労する子もいましたし、括弧やカンマ、ピリオドなど各種記号の入力方法で戸惑う子もいました(JISキーボードでは、「マイナス」と「アンダースコア」の区別も、初めてだと難しいようですね)。とはいえ、「難しくて意味は分からないけど、やったことがない『なんかすごいこと』を今まさにやっている」という高揚感が、黙々とキーボードに向かう子どもたちの背中から伝わってきました。
ここまでは、いわゆる「写経」タイムです。いちおう各命令や引数の意味は講師の方が子どもたちに解説しながらではあるものの、間違えないように入力することに必死で、細かい意味や全体構成までは理解が追いついていないように感じられました。それはそうですよね、初めてのテキストプログラミング、しかも初めて触れるプログラミング言語なんですから。
そして、写経を数十行、まがりなりにもゲームとして遊べる状態まで完成し、ひとしきりゲームを楽しんだあと、思い思いにゲームを改造する時間帯となりました。
「登場するキャラを2つ以上に増やしたい」「画面に出すメッセージを変えたい」「背景を工夫したい」「動きを早くしたり遅くしたり変化をつけたい」、お子さんごとにこだわりポイントが違い、夢中になってどんどん自分好みのゲームに変化させていました。
この子どもたちは、コードの細かい意味が分からないなりに「ここの数字を変えたらどうなるんだろう?」「同じコードを2回繰り返したら何が起こるんだろう?」と試行錯誤を繰り返し、引数の意味など「勘どころ」の体感の連続により、個々の理解を少しずつかたちづくっているようでした。
まさに「ティンカリング」です。ここでもっとも感銘を受けたのは、このティンカリングがコードの理解を圧倒的に促進していたことです。ティンカリングの効能についてはもちろん以前から承知していましたが、目の前で子どもに起こっていく変化を目の当たりにし、感じ入りました。最後には個々の命令の意味もスラスラと説明するお子さんもいたくらいです。
コード全体の論理構成を考え、それをより細かいパーツに分割し、最終的に個々の命令群に落とし込んでいく。そのようなトップダウン的思考の獲得自体ももちろん重要なのですが、失敗を伴う試行錯誤、そして内発的動機とあわせることで、全体的な理解がますます加速する、そのことを改めて認識できました。
このことは、「永遠の学習者」であるわれわれ大人にも言えることでしょう。「正解と言われているもの」に簡単にアクセスできる便利な環境にあるわれわれは、ともすれば試行錯誤と理解の深化の過程をスキップしてしまいがちかもしれません。近年のさまざまなテクノロジやサービスも、「考えずに楽をする」ためではなく、あくまで「理解を深めるため」に活用したいものですね。
会場撤収時間の制約などから、及川さんやスタッフの皆さんとじっくり話し込む時間をとれなかったのが残念でしたが、今回の見学を通じて非常に多くの示唆を得られ、また多くの新しいアイデアが頭をめぐるようになったのは大きな収穫でした。また改めてお話しする機会を持てれば、と強く思いました。
松林 弘治 / リズマニング代表
大阪大学大学院基礎工学研究科博士前期過程修了、博士後期課程中退。龍谷大学理工学部助手、レッドハット、ヴァインカーブを経て2014年12月より現職。コンサルティング、カスタムシステムの開発・構築、オープンソースに関する研究開発、書籍・原稿の執筆などを行う。Vine Linuxの開発団体Project Vine 副代表(2001年〜)。写真アプリ「インスタグラム」の日本語化に貢献。鮮文大学グローバルソフトウェア学科客員教授、株式会社アーテックの社外技術顧問を歴任。デジタルハリウッド大学院講義のゲスト講師も務める。著書に「子どもを億万長者にしたければプログラミングの基礎を教えなさい」(KADOKAWA)、「プログラミングは最強のビジネススキルである」(KADOKAWA)、「シン・デジタル教育」(かんき出版)など多数。